Predictika · Food lot release and shipment

An AI agent's lot release or shipment, checked before it reaches the warehouse system

An AI agent in a food and beverage quality or warehouse workflow proposes one action: release a finished lot to saleable stock, or ship a lot to a customer order. Before it is executed, the agent sends it to Predictika, which checks it against a declarative model of the lot release policy and returns a verdict, every reason and the figures it computed.

Scope: Tallgrass Foods (a fictional food and beverage maker) lot releases and lot shipments: lab, traceability, allergen, temperature, shelf life, storage and rotation rules. See everything this validator covers

This validator models the Tallgrass Foods lot release policy, not just the scenarios shown below.

  • Releasing a lot — the lab result, whether every ingredient lot is released, allergen cross-contact after the line's previous run, the temperature log against the product limit, and a sign-off guideline for lots already old at release.
  • Shipping a lot — the lot status, the quantity in the lot, the remaining shelf life at delivery against the customer's minimum, storage capability and nut-free segregation at the site and for the customer, and first-expired-first-out rotation.
  • Stated figures — the shelf life remaining and the open ingredient lots that the agent states against the figures the validator computes.

Any release or shipment that touches these rules is in scope, not only the scenarios pictured here. All SKUs, customers, sites, lots and policy figures are invented for illustration and are not any real company's policy; the model does not cover recalls, partial lot splits, labelling or regulatory release.

The AI quality and warehouse agentBuilds the release or shipment from the conversation and says it is ready.
Predictika validatorChecks every rule at once and returns the verdict, each finding, and the computed figures.

8 scenarios in 4 groups · each group runs from the agent’s first attempt to the outcome · click one to switch

What the agent proposes

The AI quality and warehouse agent says

Illustrative agent statement. The validator receives the structured request below.

Proposing agent: AI quality and warehouse agent (scripted)

Before sending, the agent must call Recorded run

Predictika validator


      
Waiting for the call.

Where rules-based CPQ gets it wrong

Click to expand

Our assessment of what a typical rules-based CPQ (product rules, price rules and validation rules, as in Salesforce CPQ) does with the same cases. It is a judgment about effort and reliability, not a claim that nothing can be built.

What the validator caughtTypical rules-based CPQPredictika
Shelf life at delivery that depends on lot age, transit and the customerOnly with workarounds
Remaining shelf life is computed from the lot age, the transit days and the product, then compared with a different minimum for each customer, so the calculation and every customer threshold live in separate rules.
Lot age, transit time and the customer are in one request; the remaining shelf life is computed and compared on every call.
Allergen rules that depend on the previous run, the cleaning check and the productOnly with care
Cross-contact needs the allergen of the last run, the allergen of this product and the cleaning record together, which a rule list handles as a growing matrix of combinations.
The previous run, the cleaning check and the product allergen are fields of one request, and a single rule covers every combination.
Approvals beside outright holdsOnly with care
An old lot at release and a rotation exception route to sign-off while the rest are holds, so they are separate rules that must not be mistaken for blocks.
Approvals and blocks are different findings in the same answer; the verdict is block if any hold exists, otherwise needs_approval.
Fixing one issue changes the inputs of the nextOnly with workarounds
Choosing a younger lot changes the shelf life, the customer minimum check, the rotation gap and the stated figure together; rules fire in a fixed order, so a planner fixes one error and meets the next.
Every rule is checked on every call, in whatever order the choices arrive, so the full list of holds returns at once.
Figures the agent states itselfOnly with workarounds
The shelf life remaining and the open ingredient lots are computed from several fields, so a separate rule must recompute them and compare them with the stated figures.
The stated figures are fields of the request and are compared with the computed ones on every call.

What this validator catches: findings from its test cases

Click to expand

Every rule is checked on every call, in any order the choices arrive; one problem never hides another. Blocking findings stop the request; approval findings need a person to sign off; everything else is computed.

1Ingredient lots still open: 1 of 5 ingredient lots have not been released; the finished lot cannot be released until all of them are.
2Allergen cross-contact risk: the line last ran a nut product and the cleaning check is not recorded, so Oat Milk 12-pack cannot be released.
3Stated open ingredient lots do not match: the agent stated 0 open; the validator counts 1.
4Quality test not passed: the lab result for this lot is pending; a lot can only be released after it passes.
5Temperature excursion: the lot reached 7.5 degrees C; Greek Yogurt 4-pack must stay at or below 4.0 degrees C.
6Lot is older than the release guideline: 82.9 percent of shelf life remains at release; sign-off is needed below 85.0 percent.
7Stated shelf life at release does not match: the agent stated 90.0 percent remaining; the validator computes 82.9 percent.
8Lot is not released: the lot status is on_hold; only released lots can be shipped.
9Quantity exceeds the lot: 2,400 cases requested but the lot holds 1,800.
10Not enough shelf life for this customer: the lot would arrive with 65.7 percent of its shelf life left; Harborside Markets requires at least 70.0 percent.
11Stated shelf life at delivery does not match: the agent stated 78.0 percent remaining; the validator computes 65.7 percent.
12Not first-expired-first-out: the chosen lot is 3 days newer than the oldest eligible lot; sign-off is needed beyond 2 days.
13Allergen conflict for the customer: Almond Granola Bars 24ct contains nuts and BrightStart School Foods has a nut-free contract.
14Allergen conflict at the site: Almond Granola Bars 24ct contains nuts and Atlanta DC (certified nut-free) is a certified nut-free site.
15Storage mismatch: Orange Juice 12 x 12oz is a chilled product and Columbus DC has no chilled storage.

Scenarios and results

Click to expand

The recorded result of the validator for each scenario on this page: the request the AI agent sent, the verdict, and every finding, in the order they appear above.

1. Shipping granola to a school customer: Shipment of 2,400 cases of almond granola bars to BrightStart at the Atlanta DC from a lot on hold

The agent's request. Please ship 2,400 cases of Almond Granola Bars 24ct from this lot to Atlanta DC (certified nut-free) for a BrightStart School Foods order. The lot is on hold and holds 1,800 cases, it is 100 days old, transit takes 3 days and the oldest eligible lot is 106 days old, stating 80.0 percent shelf life remaining at delivery. It is ready to execute.

Verdict: Blocked.

  • Lot is not released. Lot is not released: the lot status is on_hold; only released lots can be shipped.
  • Quantity exceeds the lot. Quantity exceeds the lot: 2,400 cases requested but the lot holds 1,800.
  • Not enough shelf life for the customer. Not enough shelf life for this customer: the lot would arrive with 57.1 percent of its shelf life left; BrightStart School Foods requires at least 60.0 percent.
  • Nut allergen at a nut-free site. Allergen conflict at the site: Almond Granola Bars 24ct contains nuts and Atlanta DC (certified nut-free) is a certified nut-free site.
  • Nut allergen for a nut-free customer. Allergen conflict for the customer: Almond Granola Bars 24ct contains nuts and BrightStart School Foods has a nut-free contract.
  • Stated shelf life at delivery does not match. Stated shelf life at delivery does not match: the agent stated 80.0 percent remaining; the validator computes 57.1 percent.
  • Not first-expired-first-out. Not first-expired-first-out: the chosen lot is 6 days newer than the oldest eligible lot; sign-off is needed beyond 2 days.

2. Shipping granola to a school customer: The agent resubmits after fixing the errors

The agent's request. Please ship 1,200 cases of Oat Milk 12-pack from this lot to Dallas DC for a BrightStart School Foods order. The lot is released and holds 2,400 cases, it is 20 days old, transit takes 3 days and the oldest eligible lot is 20 days old, stating 87.2 percent shelf life remaining at delivery. It is ready to execute.

Verdict: Allowed.

  • Computed figures. Shelf life remaining at delivery 87.2 percent; age gap to the oldest eligible lot 0 days.

3. Releasing a yogurt lot: Release of a 2,400 case Greek yogurt lot with the agent's own figures

The agent's request. Please release a lot of 2,400 cases of Greek Yogurt 4-pack to saleable stock. The lab result is pending, the lot is 6 days old, its warmest recorded temperature is 7.5 degrees C, 4 of 5 ingredient lots are released, the line last ran nut and the cleaning check is not recorded, stating 90.0 percent shelf life remaining and 0 open ingredient lots. It is ready to execute.

Verdict: Blocked.

  • Quality test not passed. Quality test not passed: the lab result for this lot is pending; a lot can only be released after it passes.
  • Ingredient lots still open. Ingredient lots still open: 1 of 5 ingredient lots have not been released; the finished lot cannot be released until all of them are.
  • Allergen cross-contact risk. Allergen cross-contact risk: the line last ran a nut product and the cleaning check is not recorded, so Greek Yogurt 4-pack cannot be released.
  • Temperature excursion. Temperature excursion: the lot reached 7.5 degrees C; Greek Yogurt 4-pack must stay at or below 4.0 degrees C.
  • Stated shelf life at release does not match. Stated shelf life at release does not match: the agent stated 90.0 percent remaining; the validator computes 82.9 percent.
  • Stated open ingredient lots do not match. Stated open ingredient lots do not match: the agent stated 0 open; the validator counts 1.
  • Lot is old at release. Lot is older than the release guideline: 82.9 percent of shelf life remains at release; sign-off is needed below 85.0 percent.

4. Releasing a yogurt lot: The agent resubmits after fixing the errors

The agent's request. Please release a lot of 2,400 cases of Greek Yogurt 4-pack to saleable stock. The lab result is passed, the lot is 5 days old, its warmest recorded temperature is 3.5 degrees C, 5 of 5 ingredient lots are released, the line last ran nut and the cleaning check is recorded, stating 85.7 percent shelf life remaining and 0 open ingredient lots. It is ready to execute.

Verdict: Allowed.

  • Computed figures. Shelf life remaining at release 85.7 percent; ingredient lots still open 0.

5. Shipping juice to a site: Shipment of orange juice to the Columbus DC from a quarantined lot

The agent's request. Please ship 1,200 cases of Orange Juice 12 x 12oz from this lot to Columbus DC for a Greenleaf Natural Grocers order. The lot is quarantine and holds 2,400 cases, it is 10 days old, transit takes 2 days and the oldest eligible lot is 10 days old, stating 70.0 percent shelf life remaining at delivery. It is ready to execute.

Verdict: Blocked.

  • Lot is not released. Lot is not released: the lot status is quarantine; only released lots can be shipped.
  • Not enough shelf life for the customer. Not enough shelf life for this customer: the lot would arrive with 57.1 percent of its shelf life left; Greenleaf Natural Grocers requires at least 75.0 percent.
  • Storage mismatch at the site. Storage mismatch: Orange Juice 12 x 12oz is a chilled product and Columbus DC has no chilled storage.
  • Stated shelf life at delivery does not match. Stated shelf life at delivery does not match: the agent stated 70.0 percent remaining; the validator computes 57.1 percent.

6. Shipping juice to a site: The agent resubmits after fixing the errors

The agent's request. Please ship 1,200 cases of Orange Juice 12 x 12oz from this lot to Fresno DC for a Greenleaf Natural Grocers order. The lot is released and holds 2,400 cases, it is 2 days old, transit takes 1 days and the oldest eligible lot is 2 days old, stating 89.3 percent shelf life remaining at delivery. It is ready to execute.

Verdict: Allowed.

  • Computed figures. Shelf life remaining at delivery 89.3 percent; age gap to the oldest eligible lot 0 days.

7. First-expired-first-out rotation: Shipment of Greek yogurt from a lot newer than the oldest eligible lot

The agent's request. Please ship 2,400 cases of Greek Yogurt 4-pack from this lot to Dallas DC for a Harborside Markets order. The lot is released and holds 2,400 cases, it is 4 days old, transit takes 3 days and the oldest eligible lot is 7 days old, stating 80.0 percent shelf life remaining at delivery. It is ready to execute.

Verdict: Needs approval.

  • Not first-expired-first-out. Not first-expired-first-out: the chosen lot is 3 days newer than the oldest eligible lot; sign-off is needed beyond 2 days.
  • Computed figures. Shelf life remaining at delivery 80.0 percent; age gap to the oldest eligible lot 3 days.

8. First-expired-first-out rotation: The agent resubmits after fixing the errors

The agent's request. Please ship 2,400 cases of Greek Yogurt 4-pack from this lot to Dallas DC for a Harborside Markets order. The lot is released and holds 2,400 cases, it is 7 days old, transit takes 3 days and the oldest eligible lot is 7 days old, stating 71.4 percent shelf life remaining at delivery. It is ready to execute.

Verdict: Allowed.

  • Computed figures. Shelf life remaining at delivery 71.4 percent; age gap to the oldest eligible lot 0 days.

Narration transcript

Click to expand

The text of the narrated walkthrough, step by step.

  1. Welcome to a demo of Predictika's Validator. An AI agent in a food and beverage quality or warehouse workflow proposes one action: release a finished lot to saleable stock, ship a lot to a customer order. Before it is executed, the agent sends it to Predictika, which checks it against a declarative model of the lot release policy and returns a verdict, every reason and the figures it computed.
  2. I will start with the first request by the agent.
  3. The agent says. Please ship 2,400 cases of Almond Granola Bars 24ct from this lot to Atlanta DC (certified nut-free) for a BrightStart School Foods order. The lot is on hold and holds 1,800 cases, it is 100 days old, transit takes 3 days and the oldest eligible lot is 106 days old. The rest of the request is on screen.
  4. Before it goes out, the agent calls the validator.
  5. Blocked, with six findings and one approval, all in one answer. Lot is not released: the lot status is on_hold; only released lots can be shipped. Quantity exceeds the lot: 2,400 cases requested but the lot holds 1,800. Not enough shelf life for this customer: the lot would arrive with 57.1 percent of its shelf life left; BrightStart School Foods requires at least 60.0 percent. The other three are on screen.
  6. The validator returned six blocking findings and one approval in one answer. A check that reads one field at a time would pass most of this; it shows only when the choices in the request are checked against each other.
  7. What this shows: for shelf life at delivery that depends on lot age, transit and the customer, a rules-based CPQ can do this only with workarounds.
  8. Now the agent resubmits.
  9. The corrected request. It changes the product to Oat Milk 12-pack, the destination to Dallas DC, the cases to ship to 1,200, the lot status to released and the stated shelf life at delivery to 87.2 percent. Three more changes are on screen.
  10. It calls the validator again.
  11. This time the validator clears it.
  12. All seven earlier findings are cleared.
  13. Seven problems caught in one call, fixed in one pass, and a clean request. That is the value of Predictika's validator: catching mistakes before the action runs.