Wave membership
One active planning claim per order revision, including the same order received twice under two numbers.
Request with "decision": "wave" and one of these operations: claim.
Clauses applied
reserve.upstream: Upstream changes do not overwrite claimed scope.wave.one: Each order revision has at most one active planning/released membership.wave.reuse: The planner first atomically claims each order revision into one active WaveOrders membership and Orders.ActiveWave; repeated schedule runs reuse it.
Evidence questions
same_order@1
These two orders are both open in the warehouse. Are they the same customer order received twice?
| Answer | Meaning |
|---|---|
true | One is a resend, re-import or copy of the other: the same purchase received twice. |
false | They are separate purchases, even with identical lines, such as a replacement shipment, a reorder or a customer's deliberate split. |
Examples
The same PO received twice
{
"decision": "wave",
"proposal": {
"operation": "claim",
"wave": "WV-0418"
},
"order": {
"id": "SO-88231",
"revision": 0,
"source_record_id": "edi-850-552190",
"customer": "Brightline Home",
"customer_po": "PO-4471",
"ship_to": "Brightline Home DC 3, 1200 Commerce Pkwy, Joliet IL",
"received_at": "2026-10-02T09:14:00-05:00",
"lines": [
{
"sku": "LMP-ARC-BRS",
"qty": "24"
}
],
"notes": "Resent by EDI provider after 997 timeout"
},
"open_orders": [
{
"id": "SO-88207",
"source_record_id": "edi-850-552188",
"customer": "Brightline Home",
"customer_po": "4471",
"ship_to": "Brightline Home DC 3, 1200 Commerce Parkway, Joliet, IL",
"received_at": "2026-10-02T08:51:00-05:00",
"lines": [
{
"sku": "LMP-ARC-BRS",
"qty": "24"
}
],
"active_wave": "WV-0417"
}
]
}Response from the rules with no model loaded, so every question abstains.
{
"verdict": "review",
"next": {
"action": "confirm_not_duplicate",
"text": "Order SO-88231 may be a second copy of SO-88207, which is already in an active wave, and the comparison is not certain.",
"role": "Warehouse Manager"
},
"questions": [
{
"ask": "open_orders/0",
"question": "same_order@1",
"status": "model_unavailable",
"evidence": [
"/order",
"/open_orders/0"
]
}
]
}
Request schema
{
"type": "object",
"required": [
"decision",
"proposal",
"order"
],
"additionalProperties": false,
"properties": {
"decision": {
"const": "wave"
},
"proposal": {
"type": "object",
"required": [
"operation",
"wave"
],
"additionalProperties": false,
"properties": {
"operation": {
"type": "string",
"enum": [
"claim"
]
},
"wave": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
}
},
"order": {
"type": "object",
"required": [
"id",
"revision"
],
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"revision": {
"type": "integer",
"minimum": 0
},
"source_record_id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"customer": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"customer_po": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"ship_to": {
"type": "string",
"minLength": 1,
"maxLength": 4000
},
"received_at": {
"type": "string",
"format": "date-time"
},
"lines": {
"type": "array",
"items": {
"type": "object",
"required": [
"sku",
"qty"
],
"additionalProperties": false,
"properties": {
"sku": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"qty": {
"type": "string",
"format": "decimal"
},
"description": {
"type": "string",
"minLength": 1,
"maxLength": 4000
}
}
},
"maxItems": 200
},
"notes": {
"type": "string",
"minLength": 1,
"maxLength": 4000
}
}
},
"memberships": {
"type": "array",
"items": {
"type": "object",
"required": [
"order",
"revision",
"wave",
"status"
],
"additionalProperties": false,
"properties": {
"order": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"revision": {
"type": "integer",
"minimum": 0
},
"wave": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"status": {
"type": "string",
"enum": [
"Planning",
"Released",
"Closed",
"Cancelled"
]
}
}
},
"maxItems": 500
},
"open_orders": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"active_wave"
],
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"revision": {
"type": "integer",
"minimum": 0
},
"source_record_id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"customer": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"customer_po": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"ship_to": {
"type": "string",
"minLength": 1,
"maxLength": 4000
},
"received_at": {
"type": "string",
"format": "date-time"
},
"lines": {
"type": "array",
"items": {
"type": "object",
"required": [
"sku",
"qty"
],
"additionalProperties": false,
"properties": {
"sku": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"qty": {
"type": "string",
"format": "decimal"
},
"description": {
"type": "string",
"minLength": 1,
"maxLength": 4000
}
}
},
"maxItems": 200
},
"notes": {
"type": "string",
"minLength": 1,
"maxLength": 4000
},
"active_wave": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
}
},
"maxItems": 200
}
}
}