Where demand ships to vs where inventory sits. Demand geography from Amazon Fulfilled Shipments (Haul); inventory geography from the monthly storage-fee proxy — not the Inventory Ledger, which is blocked on SP-API credentials.
docs/artifacts/w3-s7-ship-distance.json). Per the spec, NO soft-stockout dollar-costing is shown anywhere while this verdict stands.Share of trailing-90d shipped units by FC region (rows) → destination region (columns). The diagonal is in-region fulfillment; everything off-diagonal travelled across regions.
| FC region ↓ / ships to → | Northeast | Midwest | South | West | Unknown |
|---|---|---|---|---|---|
| Northeast | 15.6% | 0.3% | 1.1% | 0.2% | 0.0% |
| Midwest | 2.0% | 15.5% | 1.9% |
Demand share (ship-to) vs inventory share (storage-fee proxy, fee month 2026-05-01) per region. Coverage = Σ min(demand, inventory) over the four regions; UNKNOWN mass lowers it honestly.
| ASIN | Units 90d | Coverage (≤ B) | Cross-region | Northeastdemand / inv | Midwestdemand / inv | Southdemand / inv | Westdemand / inv | Unknowndemand / inv |
|---|---|---|---|---|---|---|---|---|
| B004LSQY7U | 2 |
| 1.3% |
| 0.1% |
| South | 1.8% | 0.8% | 27.4% | 1.6% | 0.2% |
| West | 0.2% | 0.4% | 0.6% | 25.9% | 0.1% |
| Unknown FC | 0.1% | 1.2% | 0.6% | 1.2% | 0.0% |
| no proxy inventory — not computable |
| 100% |
| 0% / — |
| 0% / — |
| 0% / — |
| 50% / — |
| 50% / — |
| B008796A0K | 2 | 29%B cap | 100% | 50% / 0% | 0% / 0% | 0% / 57% | 50% / 29% | 0% / 14% |
| B0C1PT9L6L | 2 | 0%B cap | 100% | 0% / 67% | 0% / 33% | 50% / 0% | 50% / 0% | 0% / 0% |
| B08GYH171P | 2 | 60%B cap | 50% | 50% / 40% | 50% / 20% | 0% / 0% | 0% / 40% | 0% / 0% |
| B071WXBH9B | 2 | 65%B cap | 50% | 50% / 33% | 0% / 0% | 0% / 35% | 50% / 33% | 0% / 0% |
| B000MSWNIW | 2 | no proxy inventory — not computable | 50% | 50% / — | 0% / — | 0% / — | 50% / — | 0% / — |
| B07X6VD8PX | 2 | 50%B cap | 50% | 0% / 50% | 100% / 50% | 0% / 0% | 0% / 0% | 0% / 0% |
| B002AN6OPU | 2 | 25%B cap | 50% | 0% / 0% | 0% / 75% | 0% / 0% | 100% / 25% | 0% / 0% |
| B0BLHYHBQX | 2 | 50%B cap | 100% | 0% / 33% | 50% / 0% | 50% / 67% | 0% / 0% | 0% / 0% |
| B0DJTGXF1W | 2 | 56%B cap | 50% | 50% / 6% | 50% / 53% | 0% / 24% | 0% / 17% | 0% / 0% |
| B0FMSCHVVG | 2 | no proxy inventory — not computable | 50% | 0% / — | 0% / — | 50% / — | 50% / — | 0% / — |
| B09ZXH7TWC | 2 | 50%B cap | 50% | 0% / 0% | 0% / 0% | 50% / 100% | 50% / 0% | 0% / 0% |
| B0DP3HW857 | 2 | 0%B cap | 100% | 0% / 0% | 0% / 39% | 100% / 0% | 0% / 61% | 0% / 0% |
| B07B1LMFJM | 2 | no proxy inventory — not computable | 0% | 50% / — | 0% / — | 50% / — | 0% / — | 0% / — |
| B003L1V2CU | 2 | 50%B cap | 100% | 0% / 0% | 0% / 0% | 50% / 50% | 0% / 50% | 50% / 0% |
| B00379KT66 | 2 | 40%B cap | 50% | 0% / 20% | 0% / 40% | 50% / 40% | 50% / 0% | 0% / 0% |
| B076MJG7QC | 2 | 100%B cap | 0% | 0% / 0% | 0% / 0% | 50% / 50% | 50% / 50% | 0% / 0% |
| B07WZV799T | 2 | 50%B cap | 50% | 50% / 0% | 0% / 0% | 0% / 0% | 50% / 100% | 0% / 0% |
| B0C5ZC59NK | 2 | 0%B cap | 100% | 50% / 0% | 0% / 100% | 0% / 0% | 50% / 0% | 0% / 0% |
| B0DDVVD4K4 | 2 | 50%B cap | 100% | 0% / 33% | 0% / 0% | 100% / 50% | 0% / 17% | 0% / 0% |
| B00VJM2MLI | 2 | 50%B cap | 50% | 0% / 0% | 0% / 0% | 50% / 100% | 50% / 0% | 0% / 0% |
| B07Z41DSFH | 2 | 0%B cap | 50% | 0% / 0% | 0% / 0% | 0% / 100% | 100% / 0% | 0% / 0% |
| B09QF61XW4 | 2 | 50%B cap | 0% | 0% / 0% | 50% / 66% | 0% / 34% | 0% / 0% | 50% / 0% |
| B003ODZMGC | 2 | 5%B cap | 0% | 0% / 1% | 0% / 0% | 100% / 5% | 0% / 94% | 0% / 0% |
| B0DJMLF1LP | 2 | 50%B cap | 50% | 50% / 67% | 0% / 33% | 50% / 0% | 0% / 0% | 0% / 0% |
| B0F4L328YM | 2 | 0%B cap | 100% | 0% / 50% | 0% / 0% | 100% / 0% | 0% / 50% | 0% / 0% |
| B0BWK7DYHT | 2 | 50%B cap | 50% | 50% / 0% | 50% / 100% | 0% / 0% | 0% / 0% | 0% / 0% |
| B07VHR2WNZ | 2 | 33%B cap | 50% | 100% / 33% | 0% / 33% | 0% / 0% | 0% / 33% | 0% / 0% |
| B0BDFB31WL | 2 | 0%B cap | 100% | 0% / 0% | 0% / 50% | 100% / 0% | 0% / 50% | 0% / 0% |
| B009F7J9GK | 2 | 0%B cap | 0% | 100% / 0% | 0% / 0% | 0% / 0% | 0% / 100% | 0% / 0% |
| B0F3YVD25B | 2 | 50%B cap | 100% | 50% / 50% | 50% / 0% | 0% / 50% | 0% / 0% | 0% / 0% |
| B0F9HDZTNX | 2 | 100%B cap | 0% | 50% / 50% | 50% / 50% | 0% / 0% | 0% / 0% | 0% / 0% |
| B07NXK6PJZ | 2 | no proxy inventory — not computable | 100% | 100% / — | 0% / — | 0% / — | 0% / — | 0% / — |
| B0DQWHRXG5 | 2 | 36%B cap | 100% | 0% / 9% | 50% / 0% | 0% / 55% | 50% / 36% | 0% / 0% |
| B01MDON7H9 | 2 | no proxy inventory — not computable | 50% | 50% / — | 0% / — | 0% / — | 50% / — | 0% / — |
| B0CLPPZZJL | 2 | 100%B cap | 0% | 0% / 0% | 0% / 0% | 100% / 100% | 0% / 0% | 0% / 0% |
| B0FCHB1ZC3 | 2 | 50%B cap | 50% | 0% / 50% | 0% / 0% | 50% / 50% | 50% / 0% | 0% / 0% |
| B004IYRO9Y | 2 | 0%B cap | 100% | 0% / 0% | 0% / 100% | 50% / 0% | 50% / 0% | 0% / 0% |
| B07X7KRFFB | 2 | 50%B cap | 50% | 50% / 0% | 0% / 0% | 50% / 100% | 0% / 0% | 0% / 0% |
| B0DFZTZC3T | 2 | 100%B cap | 0% | 0% / 0% | 0% / 0% | 50% / 50% | 50% / 50% | 0% / 0% |
| B0FS9WJQVG | 2 | no proxy inventory — not computable | 100% | 0% / — | 50% / — | 0% / — | 50% / — | 0% / — |
| B0D7ZCBWDB | 2 | 50%B cap | 50% | 50% / 0% | 0% / 50% | 0% / 0% | 50% / 50% | 0% / 0% |
| B07V8W7Q3C | 1 | 0%B cap | 100% | 0% / 0% | 0% / 100% | 100% / 0% | 0% / 0% | 0% / 0% |
| B07V6VJB1J | 1 | no proxy inventory — not computable | 100% | 0% / — | 0% / — | 100% / — | 0% / — | 0% / — |
| B006TUBRF2 | 1 | no proxy inventory — not computable | — | 0% / — | 0% / — | 0% / — | 0% / — | 100% / — |
| B001EKKHNA | 1 | 0%B cap | 100% | 0% / 0% | 0% / 100% | 100% / 0% | 0% / 0% | 0% / 0% |
| B0GFBWBN17 | 1 | 31%B cap | 0% | 0% / 0% | 0% / 69% | 0% / 0% | 100% / 31% | 0% / 0% |
| B0DJTHLW5Q | 1 | 34%B cap | 0% | 0% / 0% | 0% / 39% | 100% / 34% | 0% / 21% | 0% / 5% |
| B07V8WQJTK | 1 | 0%B cap | 100% | 0% / 0% | 0% / 100% | 100% / 0% | 0% / 0% | 0% / 0% |
| B00UHU4644 | 1 | 50%B cap | 0% | 100% / 50% | 0% / 50% | 0% / 0% | 0% / 0% | 0% / 0% |