Packing and tender readiness

Complete contents and a measured weight before verification, and verification before labels and tender.

Request with "decision": "pack" and one of these operations: verify, tender, label.

Clauses applied

  • pack.label: The configured CarrierRequests operation is stable for that verified revision.
  • pack.verify: Complete PackVerify or PalletVerify records Picked −q / Packed +q on the verified output with no quantity movement; an incomplete carton remains Picked and cannot be tendered.
  • pack.weight: Allowed absolute weight deviation is max(policy pounds, planned positive gross weight × policy percent / 100); missing scale/weight/geometry never yields a pass.
  • pack.external: Document an independently checked external-scale measurement when the station scale is unavailable.
  • handover.manifest: Manifest close freezes a batch; actual tender alone authorises the warehouse issue, and delivery confirmation does not issue again.

Evidence questions

weight_measured@1

This note explains the actual weight recorded for one packed carton. Does it show the weight was measured on a scale for this carton?

AnswerMeaning
trueThe weight was read from a scale for this carton: the station scale, or another scale whose reading a second person checked.
falseThe weight was planned, estimated, copied from another carton, or typed in without a scale reading.

Examples

Tendering a shipment with a partly packed carton

{
  "decision": "pack",
  "proposal": {
    "operation": "tender",
    "shipment": "SH-30512"
  },
  "cartons": [
    {
      "id": "CTN-30512-1",
      "stage": "Verified",
      "planned": [
        {
          "line": "OL-1",
          "qty": "6"
        }
      ],
      "packed": [
        {
          "line": "OL-1",
          "qty": "6"
        }
      ]
    },
    {
      "id": "CTN-30512-2",
      "stage": "Unverified",
      "planned": [
        {
          "line": "OL-2",
          "qty": "6"
        }
      ],
      "packed": [
        {
          "line": "OL-2",
          "qty": "2"
        }
      ]
    }
  ]
}

Response from the rules with no model loaded, so every question abstains.

{
  "verdict": "reject",
  "next": {
    "action": "verify_first",
    "text": "1 carton(s) are not verified (CTN-30512-2 first). Only verified cartons can be tendered."
  },
  "questions": []
}

Download the request

Verifying a carton with an estimated weight

{
  "decision": "pack",
  "proposal": {
    "operation": "verify",
    "carton": "CTN-40917"
  },
  "policy": {
    "weight_tolerance_lb": "0.5",
    "weight_tolerance_pct": "3"
  },
  "cartons": [
    {
      "id": "CTN-40917",
      "stage": "Unverified",
      "planned": [
        {
          "line": "OL-1",
          "qty": "3"
        }
      ],
      "packed": [
        {
          "line": "OL-1",
          "qty": "3"
        }
      ],
      "planned_weight_lb": "8.2",
      "actual_weight_lb": "8.2",
      "weight_note": "Station 4 scale down since 2pm, used the planned weight so the carton could go."
    }
  ]
}

Response from the rules with no model loaded, so every question abstains.

{
  "verdict": "review",
  "next": {
    "action": "confirm_weight",
    "text": "It is not certain the weight recorded for carton CTN-40917 was measured. Hold the carton until a measured weight is confirmed.",
    "role": "Warehouse Manager"
  },
  "questions": [
    {
      "ask": "cartons/0",
      "question": "weight_measured@1",
      "status": "model_unavailable",
      "evidence": [
        "/cartons/0/weight_note"
      ]
    }
  ]
}

Download the request

Request schema

{
  "type": "object",
  "required": [
    "decision",
    "proposal",
    "cartons"
  ],
  "additionalProperties": false,
  "properties": {
    "decision": {
      "const": "pack"
    },
    "proposal": {
      "type": "object",
      "required": [
        "operation"
      ],
      "additionalProperties": false,
      "properties": {
        "operation": {
          "type": "string",
          "enum": [
            "verify",
            "tender",
            "label"
          ]
        },
        "carton": {
          "type": "string",
          "minLength": 1,
          "maxLength": 200
        },
        "shipment": {
          "type": "string",
          "minLength": 1,
          "maxLength": 200
        }
      }
    },
    "cartons": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "stage",
          "planned",
          "packed"
        ],
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          },
          "stage": {
            "type": "string",
            "enum": [
              "Open",
              "Unverified",
              "Verified",
              "Hold"
            ]
          },
          "planned": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "line",
                "qty"
              ],
              "additionalProperties": false,
              "properties": {
                "line": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 200
                },
                "qty": {
                  "type": "string",
                  "format": "decimal"
                }
              }
            },
            "maxItems": 500
          },
          "packed": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "line",
                "qty"
              ],
              "additionalProperties": false,
              "properties": {
                "line": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 200
                },
                "qty": {
                  "type": "string",
                  "format": "decimal"
                }
              }
            },
            "maxItems": 500
          },
          "planned_weight_lb": {
            "type": "string",
            "format": "decimal"
          },
          "actual_weight_lb": {
            "type": "string",
            "format": "decimal"
          },
          "weight_note": {
            "type": "string",
            "minLength": 1,
            "maxLength": 4000
          }
        }
      },
      "minItems": 1,
      "maxItems": 500
    },
    "policy": {
      "type": "object",
      "required": [
        "weight_tolerance_lb",
        "weight_tolerance_pct"
      ],
      "additionalProperties": false,
      "properties": {
        "weight_tolerance_lb": {
          "type": "string",
          "format": "decimal"
        },
        "weight_tolerance_pct": {
          "type": "string",
          "format": "decimal"
        }
      }
    }
  }
}