Where three systems report three different numbers — and what the reconciled figure actually is.
Ridgeline runs a Shopify + Amazon storefront, a third-party warehouse, and QuickBooks. Each reports March net revenue differently, and none of them is right. Below is the reconciled figure and the three defects that move the most money — the full register follows in §5.
The reconciliation starts by naming, for every number, which system is the system of record — and where a second system is quietly reporting the same thing on a different basis.
| System | Role | System of record for | Reports revenue as | Where it breaks |
|---|---|---|---|---|
| Shopify | DTC storefront | Orders, customers, discounts | Gross, at order date | Gross of refunds, discounts & tax; UTC timestamps |
| Amazon | Marketplace | Marketplace orders & fees | Net settlement, ~14-day cycle | Straddles month-end; net of referral/FBA fees |
| 3PL / WMS | Fulfillment | Physical on-hand, ship-confirm | Ship-confirmed units × price | Excludes unshipped-at-cutoff; no landed cost |
| QuickBooks | Finance / GL | Recognized revenue, COGS, tax | Net, at deposit date | Refunds mis-dated; landed cost in opex; tax in revenue |
| Payment processors | Settlement | Fees, chargebacks, reserves | Net payout, batched | Collapsed into one deposit line |
Every source flows into one reconciled layer. The marked breaks (◆) are where a number is lost, double-counted, or mis-timed on the way in — each is addressed in §4 and §5.
Each headline number is walked from the conflicting sources to the true figure — the mechanism, the steps, the durable fix, and what trusting the wrong number would have cost.
The systems disagree for one reason and then all miss the truth for a second. Commerce still shows original sales at full value. Finance has already netted $0.18M of refunds against March — which is why it sits below Commerce — but it booked them on the processor’s settlement date instead of matching each to its original order’s period, so the contra-revenue landed in the wrong month. Fulfillment’s $4.06M is on a ship-confirmed basis, so it excludes orders unshipped at the 3/31 cutoff. And none of the three has stripped $0.34M of phantom volume: duplicate marketplace-connector re-imports, internal stock-transfer records posted as orders, and unshipped-at-cutoff orders the storefront counted as sales. Correcting the period match and removing the phantom volume brings every source to $4.19M.
Inventory is received at supplier PO price only. The freight-forwarder, customs-duty, and brokerage invoices for the same inbound shipments arrive later, from different vendors, and are coded straight to an opex “Freight-in / Import expense” line instead of riding on the units. Because those landed costs never capitalize into inventory, COGS is understated and reported margin looks artificially clean — until the CPA capitalizes them at year-end and forces the number back down. GAAP requires inbound freight, duty, and brokerage to be capitalized into inventory and released to COGS as the units sell.
The storefront’s available number was computed as on-hand plus a 150-unit inbound transfer that has not yet been physically received and scanned at the 3PL. The channel treated in-transit stock as sellable for the whole window between origin decrement and destination receipt, so it advertises 1,240 while the shelf holds 1,090. Available-to-sell should equal destination on-hand minus open allocations, per fulfillable location — never on-hand plus in-transit.
The three headline reconciliations above sit inside a broader register. Each finding names the systems in conflict, the mechanism, and the directional exposure; severity reflects dollar impact and how often it distorts a decision.
| # | Finding | Systems | Category | Exposure | Sev. |
|---|---|---|---|---|---|
| 1 | Landed cost not in COGS | 3PL/customs vs GL | Margin | 3–8 pts margin | High |
| 2 | Net deposits booked as revenue | Processors vs GL | Revenue | ~3–5% of GMV | High |
| 3 | In-transit counted as available | Channels vs 3PL | Inventory | 1–4% oversells | High |
| 4 | Month-end cutoff / timezone | Channels vs GL vs 3PL | Ops | 1–4% mis-timed | High |
| 5 | Refund period + no restock | Channels vs GL vs 3PL | Margin | 1–4% rev · 1–3% inv | High |
| 6 | Sales tax booked as revenue | Channels vs GL vs filer | Revenue | 3–6% of revenue | Med |
| 7 | Margin omits fees + fulfillment | Fee/carrier vs ERP | Ops | 8–20 pts SKU margin | High |
| 8 | No canonical product master | All systems | Ops | 2–6% unit variance | Med |
| 9 | Gift cards booked on issuance | Shopify vs GL | Revenue | 3–8% of Q4 | Med |
| 10 | Bundles not decomposed to BOM | Channels vs 3PL vs GL | Margin | 2–5% COGS | Med |
| 11 | Discounts/promos gross vs net | Channels vs GL | Revenue | 8–15% of gross | Med |
| 12 | 3PL shrink not booked to GL | 3PL vs GL | Inventory | 0.5–2% shrink | Low |
The audit is the diagnosis; this is the prioritized path to a warehouse everyone trusts — highest-dollar reconciliations first, then the durable pipelines that keep them true.
This document, for your own systems — ~15–20 pages, delivered in about three weeks, yours to keep whether or not you build with us.
Every system, what it’s authoritative for, and exactly where it diverges from the others (§2).
Revenue, margin, and inventory walked to the true figure with the root cause of every gap (§4).
The fix sequence and a fixed-price build quote — highest-dollar reconciliations first (§6).