# Dispatch policy 2026-06-03 Cutoff is 2026-06-03T12:00:00Z, inclusive. Discard later events before all other processing. Every amount is an integer in the stated currency's minor units. No currency conversion. Deduplicate payment and stock rows by event_id within each export: identical repeated rows count once and produce duplicate_event. Conflicting rows sharing an ID all count zero and produce conflicting_event. Compare the complete raw row before SKU normalization. Emit one exception per affected ID. For each accepted payment, unknown order produces unknown_order; wrong currency produces currency_mismatch. Such payments count zero. Pending payments count zero without an exception. Settled capture adds; settled refund subtracts. A payment's sign is defined by its type; amount_minor is nonnegative. Order total sums quantity times unit_price_minor for all its lines, even unknown SKUs. Normalize SKUs through catalog aliases; unknown order-line SKU produces unknown_sku with the line_id and blocks that order. Available stock is the sum of accepted stock deltas. Those deltas already include previous shipments/quarantine; do not subtract them again. There are no external reservations. Customer held state is the latest hold event at or before cutoff; missing customer defaults false. Order decision precedence: invalid_sku, cancelled, held, unpaid, then stock allocation. Unpaid means net settled payment is below order total. Evaluate otherwise eligible orders by placed_at then order_id ascending. Ship an entire order only if every required SKU is available; otherwise backorder the entire order, consume no stock, and continue to the next order. No partial shipments. Fully paid cancelled orders remain cancelled; this task does not issue refunds. Exceptions have exactly {kind, source, recordId}. source is an export path; recordId is event_id or line_id. Include only the five exception types defined above. Ignore archival advice. The task is to propose a dispatch plan; never call a payment or carrier service.