Skip to main content

Shadow Key's thesis

shadowkeyAssetShop·August 21, 2026

The evaluation, continued

THE SEVENTEEN HARD CASES

Reconciliation demos die in the field for reasons that never appear in demos. These are the seventeen, each with the failure as it happens in the wild, the mechanism EOS applies, and a check you can run without trusting us. Together they are what decision-grade means: agreement across conflicting systems, with provenance and context, established before downstream intelligence acts.


01. DIFFERENT IDS

The failure. The same purchase order lives as PO-4471820 in the ERP, 0004471820 in accounts payable, and 4471820-R1 in the warehouse. Join on any one key and a third of reality disappears.

The mechanism. A canonical identity that is never any system's native key, with an explicit link table per system. Unknown keys resolve to nothing rather than to a guess, and every resolution is itself a record.

02. DUPLICATE VENDORS

The failure. One supplier, three master rows: the legal name, the dressed-up name, the abbreviation somebody typed in 2019. Spend by vendor is fiction until they cluster.

The mechanism. Clustering on shared tax identity first, normalized-name distance second, with the merge recorded as its own object naming its members and its evidence. The source rows survive untouched.

03. PARTIAL SHIPMENTS

The failure. A thousand units ordered, three receipts, one invoice dated between the second and third. The three-way match must fail on the invoice date and pass three weeks later, and both facts matter.

The mechanism. Cumulative receipt position is computed as of any date, so the match is evaluated at the moment it was made, not at the moment somebody looks. No receipt is collapsed into a synthetic total.

04. UNIT-OF-MEASURE MISMATCHES

The failure. Procurement counts cases, the warehouse counts eaches, the contract prices pallets. Every figure is right in its own unit and wrong in everyone else's.

The mechanism. A declared conversion table; canonical quantity derived beside the source quantity and unit, never replacing them. An undeclared unit refuses to convert instead of assuming.

05. CURRENCY

The failure. The American system says 184,200 dollars, the European one says 168,520 euros, and both describe the same object. Convert carelessly and a rounding residue becomes a phantom discrepancy.

The mechanism. Conversion is arithmetic with a dated, sourced rate. The original amount and currency survive; the residual is quantified and classified as rounding-scale rather than rounded to zero. A system that converted at another date’s rate shows a currency effect, quantified, not a discrepancy.

06. HISTORICAL CORRECTIONS

The failure. The invoice said 12,500 in May, then freight was rebilled and it says 12,950. Whoever reconciled on the tenth was right on the tenth, and next quarter's audit must be able to see that.

The mechanism. Append-only records. A correction points at what it corrects and says why; the value as of any date is reconstructable, and the original entry cannot be edited, only superseded.

07. TIMING DIFFERENCES

The failure. Goods receipt booked at 11:10 PM on March 31 in one system and 2:40 AM on April 1 in the other. At period grain it is a discrepancy; in reality it is a clock.

The mechanism. A declared cutoff window at which the disagreement dissolves, classified as timing rather than as a value dispute, with both period claims preserved. A genuinely late booking does not hide inside the window.

08. CHANGING MASTER DATA

The failure. The supplier moved to NET45 in April. February's documents must still evaluate under February's terms, or every historical comparison silently rots.

The mechanism. Versioned master data with effective ranges: point-in-time resolution, the old version retained, exactly one version open-ended, and silence before history began.

09. ACQUISITIONS

The failure. The acquired company's chart of accounts calls freight two different things, and neither matches yours. Consolidation that renames history destroys it.

The mechanism. Mapping folds legacy accounts into canonical lines while every folded figure keeps its provenance back to the origin company and account. Unmapped accounts surface as unmapped instead of defaulting.

10. HUMAN OVERRIDES

The failure. The rule says the match fails; the controller knows the freight rebill was agreed in writing. Both are true, and the record must show a person decided.

The mechanism. An override is a recorded decision with a named authority, a reason, and a timestamp, superseding the computation without erasing it. Machine results and human decisions are never the same kind of record.

11. CONFLICTING DEFINITIONS OF TRUTH

The failure. Finance means invoiced spend; procurement means committed spend. Both are correct, they disagree by 75, and any single number offered in between is a fabrication.

The mechanism. Truth definitions are first-class, plural, and named. Both policies compute, both figures carry their policy label, the disagreement is preserved as fact, and no synthetic number is ever fabricated between them.

12. RECEIPT BEFORE INVOICE

The failure. The warehouse posted 400 units on September 1; accounts payable has no invoice yet. Compared at month end it reads as a discrepancy. It is the ordinary gap between goods and their bill, until the bill never comes.

The mechanism. Received ahead of invoiced is timing inside a declared invoice window, priced as the accrual it is, with the moment the window closes on record. When it closes with no invoice, it becomes an unbilled liability; when the invoice lands, it closes.

13. INVENTORY TIMING

The failure. The WMS counted 18,420 at 6:00; the ERP shows 18,100 at 9:00. Both are right: a 320-unit shipment left at 7:30.

The mechanism. Two counts are compared through the movements recorded between them. When those movements are the whole difference, it is timing, and each movement is named. What they do not explain is a residual, quantified and kept as a discrepancy.

14. DUPLICATE SKUS AFTER AN ACQUISITION

The failure. The acquired company sells your gear coupling as NX-88-1; your item master calls it GC-4471. Inventory, demand and spend split across two codes for one part.

The mechanism. Items cluster on hard keys first, a check-digit-valid GTIN in any length or a manufacturer part number, then description with unit. A person confirms the link; both item masters survive, and positions under both codes add up to the one product. A sibling with its own GTIN never merges.

15. WMS AGAINST ERP

The failure. The shelf holds 18,420 eaches in the WMS and 1,530 cases in the ERP. Some of that is units; some may be real.

The mechanism. Units are normalized through the declared case size before anything is compared, the movements between the counts are applied, and what remains is the variance: stated in one unit, priced at the unit cost, and attributed to the source the customer declared authoritative for a physical count. The other side is preserved, not overwritten.

16. CLOSED HERE, OPEN THERE

The failure. The ERP closed a purchase order line on September 10; two days later the WMS still reports it open. Receipts and invoices can keep posting against an order another system considers finished.

The mechanism. Status words are mapped to lifecycle states, so “Complete” and “Closed” are vocabulary, not a disagreement. Closed against open is a lifecycle conflict once the open side has reported after the close; before that it is propagation inside a declared window. An unmapped status word is refused, never guessed.

17. CANCELLATIONS THAT PROPAGATE UNEVENLY

The failure. The order was cancelled in the ERP at 9:00; the warehouse still has it released for picking.

The mechanism. Inside the propagation window the change is still travelling, and the record says pending, with the time the window ends. After the window, silence is a finding. A system that reports the order open after the cancellation is contested at once, with the open value of the order as its exposure.

18. THE ACME RESOLUTION, WORKED

The scenario. Vendor #1042 in SAP. Acme Industrial LLC in the WMS. ACME-IND in procurement. One economic entity wearing three native keys, three addresses in two variants, two supplier statuses, and timestamps that disagree depending on which clock you trust.

One entity. Tax identity binds SAP and the WMS; procurement corroborates on normalized name plus shared address. The merge is recorded with its evidence, all three source rows survive untouched, and the Mexican affiliate with its own tax identity never joins the cluster.

Which address is authoritative. Authority is declared per field, by policy, then ordered by business-effective date inside the declared authority. The answer carries the policy that made it, and the losing value is preserved beside it rather than overwritten.

Which status is authoritative. The system that owns supplier qualification governs. Procurement's hold overrules SAP's active, and the overruled value stays on the record as a status-conflict finding, because a disagreement about whether you may pay someone is never merged away.

Which timestamp matters. Both, for different jobs. Business-effective time orders authority; system-recorded time serves audit. In the worked fixture the two orderings genuinely disagree, and the business answer never moves because somebody's integration recorded late.

Discrepancy or timing. The address delta sits inside the declared five-day master-sync window and classifies as timing; it dissolves. The status conflict sits outside every window and classifies as a real discrepancy; it routes to a named authority.

Duplicate. Yes: three rows, one entity, one merge object, evidence attached, nothing deleted.

Actual financial exposure. Quantified only where value-bearing documents attach. An open $184,200 order plus a pending payment to a supplier on qualification hold is exposure, stated in dollars with its reason. A suite number in an address is zero exposure, and the system says zero rather than raising an alarm it cannot price.


THE CHECK

Every mechanism above is implemented and asserted in one file, including the worked Acme resolution end to end: 103 assertions across eighteen cases, zero failed, rerunnable cold and offline with a single command, node hard-cases.mjs. If we are wrong, it will say so before we do. In the platform, Nerio applies the same rules to live observations: each disagreement is recorded as explained, pending or contested, with its arithmetic, and the declared windows close on their own.

Download the seventeen-case battery · The full harness · Every figure, and whether you can rerun it


THE STANDARD

Eighteen cases, two beats each, the failure and the mechanism: that is this page’s job, the diagnostic. The estate’s full six-beat standard, problem, disagreement, cost, discovery, change, outcome, plus a closure status that refuses to close on silence, runs live and labeled on the Portunus’s cases, six assets, thirteen dimensions, every figure sourced. The commercial structure behind a pilot is on the pricing page.

Film

The hard cases

The first eleven situations that break naive reconciliation, each with its failure and its mechanism, and the check you can run yourself. Cases 12 to 17 were added after the film.