Book a Demo
Book a Demo
Login

China Marketplace Inventory Reconciliation: Matching Stock Across Tmall, JD, and Douyin to Your ERP

Your Tmall dashboard says you have 4,200 units of a hero SKU. JD shows 3,850. Douyin reserved another 600 for a livestream drop. Your bonded warehouse in Zhengzhou reports 9,000 on hand, and your ERP — the single source of truth your CFO signs off on — says 8,100. Every one of those numbers was correct at some point. None of them agree right now. That gap is where oversells, stockouts, and quarter-end write-offs are born, and it is why inventory valuation so often unravels the moment an auditor asks “how many units do you actually have, and where?”

China marketplace inventory reconciliation is the process of matching physical stock quantities and their financial value across every Chinese sales channel — Tmall, JD, Douyin, Pinduoduo — and every warehouse (platform-operated, third-party, and bonded) back to a single figure in your ERP. It is distinct from valuation: valuation asks what is this stock worth, while reconciliation asks the prior question — how many units exist, where are they, and whose books already reflect them. For global brands running China operations, it is the control that keeps marketplace GMV, cost of goods, and balance-sheet inventory tied to the same underlying units.


The short answer

If you only remember five things about reconciling inventory across Chinese marketplaces, remember these:

  • Each platform runs its own inventory ledger with its own timing, reservation logic, and settlement lag — none of them is your system of record.
  • The hardest breaks are not missing units; they are timing differences — in-transit, reserved-for-promo, and returns-in-limbo stock that is real but sits in no clean bucket.
  • Bonded and cross-border warehouses add a customs dimension: units can be physically present but not yet legally imported, so they belong in a different ledger entirely.
  • Reconciliation must be tri-directional — quantity, location, and value — because a unit count that balances while landed cost does not is still a broken close.
  • Manual spreadsheet reconciliation breaks at roughly 3+ platforms or 500+ SKUs; beyond that you need automated, daily, unit-level matching.

Why China marketplace inventory reconciliation is harder than Western retail

Reconciling Amazon FBA to NetSuite is a solved problem with mature connectors. China is not the same problem wearing different logos. Four structural differences make it materially harder:

1. Every platform is its own warehouse operator

Tmall stock can sit in Cainiao fulfilment centres; JD famously operates its own nationwide warehouse network and often holds your inventory on a consignment or in-warehouse (FBP/JD Logistics) basis; Douyin routes through its own and third-party 3PLs. Each holds units you own but do not physically control, and each reports availability on its own clock. “Available to sell” on the platform is not “on hand” in accounting terms.

2. Reservation and pre-sale logic hides real units

Chinese marketplaces reserve stock aggressively for pre-sales (预售), deposit-and-balance campaigns, and livestream drops. Units get locked days before a sale and released unpredictably if deposits are not paid. A SKU can show zero “available” while thousands of units sit reserved — the same dynamic that distorts pre-sale deposit revenue. Reconcile on “available” and you will chronically undercount.

3. Bonded and cross-border stock lives in legal limbo

Under the cross-border (跨境) model, goods sit in a bonded warehouse inside China but are not yet customs-cleared. They are your asset, physically in China, but not domestically imported until an order triggers clearance. That distinction drives both duty timing and where the units belong on your books — the core of bonded warehouse accounting. A reconciliation that lumps bonded and domestic stock together will mislead every downstream tax and margin figure.

4. Returns re-enter inventory on a long, opaque delay

China’s generous 7-day no-reason return window (七天无理由退货) means a meaningful slice of “sold” units are in transit back to a warehouse at any moment. Until they are received, inspected, and re-graded, they are neither sold nor sellable — a limbo bucket that has to be modelled explicitly, exactly as it is in returns reconciliation.

The reconciliation chain: from platform ledger to ERP

A defensible China inventory reconciliation follows the same directional chain every close, so a break can be isolated to a single link rather than hunted across the whole estate:

  1. Platform on-hand pull — extract unit-level stock from each marketplace and 3PL API as of a fixed cut-off timestamp (not “now”).
  2. Bucket normalisation — map every platform’s status labels into one shared vocabulary: on-hand, reserved, in-transit, returns-pending, damaged.
  3. Location and legal-status tagging — flag each unit as domestic vs bonded, owned vs consigned, so customs and title differences survive the merge.
  4. SKU harmonisation — resolve platform SKU IDs, barcodes, and your internal item master to one canonical product identity.
  5. ERP comparison — match the normalised platform total against the ERP perpetual inventory balance, unit by unit and location by location.
  6. Value cross-check — confirm the reconciled quantities carry the correct weighted-average cost so the balance-sheet number ties out, not just the count.
  7. Exception routing — push unexplained variances above a materiality threshold to a named owner with an aging clock.

The three variances you will actually chase

Almost every real-world break falls into one of three categories. Naming them turns a vague “the numbers don’t match” into a triage you can automate.

Timing variances

The unit is real and correctly owned, but the two systems recorded it at different moments — a sale posted on the platform before the warehouse dispatch fed the ERP, or an inbound receipt logged in the ERP before the platform made it sellable. These self-clear and should never be written off; they should be aged and expected to reverse within a defined window.

Classification variances

The total units match but sit in the wrong bucket or location — bonded counted as domestic, consigned counted as owned, reserved counted as available. These do not change your total unit count but they corrupt tax, duty, and channel-margin reporting. They are the most dangerous variance because the top-line total still looks clean.

True shrinkage

Units that genuinely no longer exist: damaged in a platform warehouse, lost in 3PL transit, or pilfered. Only this category should ever hit a write-off, and only after timing and classification variances have been ruled out. Conflating the three is how brands either over-reserve or get blindsided at year-end.

Five failure modes that quietly break the close

  • Reconciling to “available” instead of “on hand.” Reserved and pre-sale units vanish from availability but still belong to you — the single most common undercount.
  • Snapshotting at different times. Pulling the platform at 9am and the ERP at midnight guarantees a phantom variance the size of a day’s sales and receipts.
  • Flattening bonded and domestic stock. It balances on quantity and silently misstates duty, VAT, and cost of goods — a classification landmine.
  • Ignoring consignment title. JD-held or platform-held stock you still own must stay on your balance sheet, or your group P&L understates assets.
  • SKU drift. A repackaged bundle or a platform re-listing spawns a new SKU ID; if your item master doesn’t map it, real units read as a mystery variance.

A monthly China inventory reconciliation checklist

Run this every month before you lock month-end close. If any line fails, the close is not ready — no matter how clean the summary dashboard looks:

  1. All platform and 3PL stock pulled at a single, documented cut-off timestamp.
  2. Every platform status mapped to the shared bucket vocabulary, with zero “unmapped” statuses remaining.
  3. Bonded vs domestic and owned vs consigned tagged on 100% of units.
  4. Reserved, pre-sale, and in-transit units included in the owned total — not just “available.”
  5. Returns-pending stock modelled as its own bucket, aged, and excluded from sellable.
  6. Platform SKU IDs reconciled to the internal item master with no orphans.
  7. Reconciled quantities revalued at current weighted-average cost and tied to the GL inventory account.
  8. Every variance above materiality assigned an owner, a root-cause category (timing / classification / shrinkage), and an aging date.

How Digate fits

Digate connects Chinese marketplaces and 3PL warehouses — Tmall, JD, Douyin, Pinduoduo, Cainiao, and bonded fulfilment — directly to Western ERPs such as NetSuite and SAP, and runs the reconciliation chain above automatically, every day, at unit level. Instead of a monthly spreadsheet scramble, brands get a continuously reconciled inventory position with timing, classification, and shrinkage variances already separated and routed. It is the same integration backbone that keeps settlement reconciliation and cost of goods aligned, so when your CFO asks how many units you own and where, there is one answer — and it survives an audit. If your team is still stitching platform exports together by hand, that is usually a sign the ERP integration itself is broken rather than a data-entry problem.

Frequently asked questions

What is the difference between inventory reconciliation and inventory valuation?

Reconciliation confirms how many units exist and where they are located; valuation determines what those units are worth on the balance sheet. Reconciliation comes first — you cannot value stock accurately until you have agreed the count and its location, ownership, and legal status.

How often should I reconcile China marketplace inventory?

At minimum monthly, aligned to your close. But because Chinese marketplaces move stock through reservations and returns daily, high-volume brands should reconcile daily at unit level and treat the monthly run as a formal sign-off rather than the first time anyone looks.

Why don’t my Tmall and JD stock numbers match my ERP?

Almost always a combination of timing (sales or receipts posted in one system before the other), classification (reserved or bonded stock excluded from “available”), and SKU-mapping gaps. Genuine shrinkage is usually the smallest slice — chase timing and classification first.

Does bonded warehouse stock count as my inventory?

Yes — if you own it, it is your asset even while it sits uncleared in a bonded warehouse. But it must be tagged distinctly from domestic stock, because its customs, duty, and VAT treatment differs and only crystallises when an order triggers import clearance.

Can I reconcile China marketplace inventory in spreadsheets?

For one platform and a few hundred SKUs, yes. Past roughly three platforms or 500 SKUs, manual reconciliation cannot keep pace with daily reservation and return movements, and the error rate overtakes the effort — which is the point where automated, API-driven reconciliation pays for itself.


Further reading: the IFRS IAS 2 standard on inventories defines how stock is measured and when it is recognised; guidance on inventory counts and controls from PwC covers the audit expectations reconciliation is meant to satisfy; GS1 GTIN standards underpin the SKU/barcode harmonisation step; and Alibaba’s Cainiao logistics network illustrates how platform-operated fulfilment separates ownership from physical control.