Every quarter, every active FTZ runs a reconciliation. The ERP says one thing about what was withdrawn from the zone. The FTZ inventory system says another. They have to agree, to the penny, before the quarterly recap goes to CBP.
For most of our customers, this used to take 8 to 12 working days. After moving to Mamora, the same exercise takes 3 to 5 hours. This post explains why the gap was so big, and what we built to close it.
Why reconciliation exists at all
An FTZ operates as a parallel inventory universe. Goods arrive, sit in a designated bonded space, get manipulated or kitted, and leave. Some leave into the United States (a withdrawal for consumption). Some leave the country entirely (re-export). Some get destroyed. Some get transferred to another FTZ.
CBP cares because duty is assessed at withdrawal. If your books are off, your duty is off. Your books and CBP's books have to agree.
The reconciliation is the act of proving that. On the surface it's a simple equation: opening + receipts - withdrawals - re-exports - destructions - transfers = closing. In practice, every term in that equation is generated by a different system.
The three buckets of mismatch
When you actually open a real customer's quarterly reconciliation, the variance falls into three categories. We've measured this across 84 customer zones over four years. The proportions are remarkably consistent.
Timing mismatches (about 60% of total variance). The WMS scans a withdrawal at 11:47 p.m. on March 31. The ERP posts the same transaction at 12:03 a.m. on April 1. Within the systems, both are correct. At the quarter cutover, they're in different quarters.
Unit-of-measure drift (about 25%). The ERP carries cases. The WMS carries eaches. The FTZ system carries kits. Whoever wrote the conversion logic ten years ago is no longer there, and the conversion factor for SKU 4421-A was updated in March 2024 but only in the ERP.
Classification drift (about 15%). The HTS code on the entry summary doesn't match the HTS on the SKU master. Sometimes because the classification was updated mid-quarter. Sometimes because two systems classify the same product two different ways.
For a mid-sized FTZ doing $300M annual throughput, reconciling 8 working days of two senior people quarterly is roughly $80k a year in direct labor. The bigger cost is opportunity: those are your two best people, and for two weeks every quarter, they're doing variance reconciliation instead of audit prep, broker management, or duty optimization.
The architecture choice
The default architecture in legacy FTZ software is "snapshot reconciliation." Every night, the software pulls a snapshot from the ERP, a snapshot from the WMS, and writes them to a local table. At quarter-end, you compare totals.
This is fast to build and slow to use. Every mismatch requires opening the underlying transactions across two systems, finding the one that's wrong, and writing a manual adjustment. With thousands of transactions per day in a typical zone, even small mismatches surface hundreds of investigations per quarter.
What we built instead is an event-sourced model. Every state change in the zone (receipt, manipulation, withdrawal, destruction, transfer) is an immutable event with a UTC timestamp, a source system reference, and a signed audit trail. The "current inventory" is a derived view, not a stored value.
Three things fall out of this:
- Timing mismatches disappear. Every event has the original source timestamp. We don't argue about whether March 31 11:47 p.m. is Q1 or Q2 because we don't store quarter-buckets. We compute them at read time.
- Unit-of-measure drift becomes detectable. Conversions are first-class. When a conversion factor changes, it generates an event. We can replay the inventory state as of any moment in the past with any conversion-factor set.
- Classification drift becomes auditable. Every SKU has a current HTS, a previous HTS, and the broker signature that authorized the change. At reconciliation, the system shows you the deltas in seconds.
The 4-hour reconciliation
In practice, here's what Q1 2026 looked like for a representative customer (consumer electronics, 9,400 SKUs, FTZ #185):
- System ran the period-close at 6:00 a.m. Eastern on the first business day after quarter-end. (Automated, 12 minutes.)
- 2,341 variance candidates flagged. Of those, 2,189 auto-resolved via timing reclassification. (Automated, 4 minutes.)
- 152 variance candidates required human review. Each came with the source-system links pre-fetched. Compliance team worked through them in about 3 hours.
- The remaining 4 cases needed a phone call to the WMS administrator. Resolved by lunch.
Total: under 4 hours of compliance time. Net variance after reconciliation: $312 across $74M of activity. That's a 0.0004% error rate, well inside CBP's expected range.
If you want to see what your quarterly reconciliation would look like running this way, we'll run a live model. We need 90 days of your ERP transaction history and your current FTZ inventory snapshot. Most customers see the gap close to zero on the first run.