Scott — thinking this through before I build it →

Historical Cost Cleanup:
what is this feature, really?

Scott — this is me making sure I fully understand the cost-cleanup idea from our Nov 11 call before I decide (1) whether to build it and (2) how it should work. I've written up the concept, the dynamics, and the competitive picture as I see them. Where I've got it wrong or thin, push back — the questions for you are at the end.

TL;DR — my current read

Cleaning up costs is the means; the goal is a trusted, audit-defensible starting point for inventory value & COGS. But there's a real scoping tension I want your gut-check on: a lot of sellers may only need a good opening balance, not a full reconstruction of the past (§7). So the build question is really "how big is the segment that genuinely needs the past fixed?"

👇 Scott — this is what I need from you Jump to “Questions for you, Scott” Feedback on anything in here is welcome — but the questions at the bottom (should I build it & how big the segment is) are the whole point of this doc.
Source call: Scott Scharf & Kalvin Mizzi — Nov 11, 2025 · cost-cleanup segment ≈ 11:45–18:00 · Fireflies recording ↗
Plus competitive + accounting research (SellerVue, Finaloop, A2X, Cin7/DEAR, Settle, Ordoro, Finale, NetSuite…).

The three high-level questions, answered

❓ Is it to "clean up costs," or something else?

Both — but reframe it. The feature recomputes accurate landed cost & COGS from a customer's history, but cleaning costs is just the lever. The actual purpose is to manufacture trust: e-commerce sellers who've been on moving-average cost (or just did it wrong for years) don't believe their own financials. This gives them — and their accountant — numbers they can stand behind, and it gives SKU a correct foundation to post accounting forward.

❓ Is it based on importing data from before they adopted SKU?

Yes. This is fundamentally an onboarding / migration exercise. It ingests pre-SKU history — primarily purchase orders + landed costs and period-end inventory balances — and replays it through SKU's costing engine. You named the two pillars exactly: purchase orders and ending inventory balances.

❓ What is the end result / end goal?

End result (the deliverable): a rebuilt FIFO cost ledger → accurate inventory valuation & COGS per period, a change summary (CSV), and an "accounting report" of ins/outs + per-month adjustments the customer hands to their accountant to true-up their books.
End goal (the why): make SKU the single trusted source of truth for inventory accounting — which is the precondition for everything Scott wants on top: asking questions of the data, demand planning, real profitability analysis.

1The problem it solves

Scott's framing: when a seller comes to SKU, their cost history is almost always broken in one of two ways.

① They're on moving-average cost

A single blended unit cost that re-averages on every receipt. It smooths over cost spikes — which feels nice until tariffs hit.

With tariff wars & volatile freight, a late duty bill silently re-blends the average going forward and misstates the margin on units already sold. You can't see which sales actually carried the tariff. Scott: "if you're not on FIFO with tariff wars… you have to go back."

② They "never did it right"

POs entered wrong, costs missing, landed costs ignored, books a mess.

Result: inventory quantities, landed cost and COGS are all untrustworthy. Scott had a seller who "totally didn't trust their financials." Without a clean base, nothing downstream (margins, forecasting, valuation for a sale/exit) can be believed.

Either way the customer arrives with contaminated history. The feature exists to hand them back a clean one — and to make SKU the system that keeps it clean.

2How it works — data in, truth out

Two paths to the same destination, depending on how much history the customer actually has.

Path A — Rebuild COGS from origin already built

If the customer's full event history is in SKU (or importable), SKU replays every event from the beginning — receipts, transfers, sales — and re-derives the entire FIFO layer flow. Kalvin: "it does the whole thing from the initial events… fix all those errors for the past four, five years all in one shot." Ends with an on-screen summary + downloadable CSV of every COGS change.

Path B — Historical import wizard ~2 days to build

When they don't have full event history, import POs + month-end balances. SKU "manufactures" a stock-take each month that performs the implied usage (negative) events, establishes the FIFO usages, and recomputes COGS + inventory value per month — then cross-checks against their old numbers and flags adjustments.

3What's essential to make this work

Scott's one-line test: "You just need one starting point — what they purchased on a purchase order and landed costs — and then you can figure it all out." In practice it's three pillars + a comparison baseline.

① Purchase orders anchor

  • Quantity & buy cost
  • Landed cost — freight, duties, tariffs, indirect/late bills
  • PO date & receive date
  • Cost-by-timeframe (cost $X from date A→B)

"POs are the great source of truth for establishing COGS." This is the non-negotiable input.

② Period-end inventory anchor

  • Month-end (and year-end 12/31) on-hand quantities
  • Trusted stock counts — "whatever they did accurately at 12/31"

These become reconciliation anchor points that catch drift between the rebuilt layers and physical reality.

③ Comparison baseline to find adjustments

  • Old COGS numbers / trial balances per month
  • Prior inventory valuation (accounting software often has $ value, not counts)

"What we thought was the truth" — the before, so SKU can compute the delta to fix.

Optional — for higher fidelity

Historical Shopify / Amazon sales & fulfillment Warehouse mapping

Pulling in real sales shows how fast they shipped and can prove their month-ends were off. The hard part: in a multi-warehouse setup, SKU doesn't know which warehouse historically fulfilled each order — so events need warehouse mapping, or you keep it simple and reconstruct usage purely from POs + month-end counts (single-warehouse is trivial; multi needs mapping).

4The end result — what comes out

🧾 Trusted cost ledger

Rebuilt FIFO layers → accurate inventory valuation and COGS per period. SKU becomes the source of truth for the inventory asset account going forward.

📊 Change summary (CSV) built

On-screen + downloadable summary of every COGS change and the items impacted — old vs new. The audit trail of what the rebuild did.

📁 The "accounting report"

The headline deliverable. A report of ins / outs + per-month adjustments that the customer hands to their accountant, who posts the adjustments into the financials. Scott: "that'd be huge… give it to their accountants and they post the adjustments."

🚩 Discrepancy flags

Where reconstructed numbers don't reconcile to the old ones: "you have 50,000 units disappear — where'd they go?" Turns a cleanup into a diagnostic.

5The end goal — why Scott cares so much

Late in the call Scott laid out the whole stack. Cost cleanup is step 1 — without it, nothing above it is trustworthy. This is also the thread that connects to the "let users analyze their accounting data in SKU" idea you remembered.

  1. Accurate financials — outsourced bookkeeping, books closed & locked.
  2. An IMS that stabilizes the data — accurate qty, landed cost, COGS. ← this feature
  3. A data warehouse across sources — "to ask questions about your business."
  4. Demand planning on top of trusted data.

Scott: "Every e-commerce business is a data business." The cleanup isn't an accounting chore — it's the foundation that makes SKU's analytics, reporting and forecasting believable.

6The golden rule (how NOT to build it)

This is the most important design constraint Scott repeated — and it's where the incumbents fail.

✗ Don't recreate history (the DEAR/Cin7 trap)

DEAR / Cin7 Core re-pushes a flood of historical journal entries into Xero/QBO — and if you unlock a closed period to fix something, it "dumps all this crap." Scott: "Deer was the worst." It corrupts closed periods and breaks reconciliations. SKU must never blindly dump transaction-level history into the accounting system.

✓ Post the delta, keep closed periods intact (the A2X pattern)

Compute what the inventory/COGS accounts should be, compare to what's posted, and produce summarized per-period adjustments. The accountant decides how to book them — spread per month, or one true-up journal entry. This is exactly how Scott fixed a seller's books with A2X: set up a separate account, reconcile, "do the math for a journal entry to fix their income."

Accounting terms for this, if useful: opening balances, adjusting journal entry (AJE), prior-period adjustment, inventory-to-GL reconciliation, retained-earnings true-up. The universal pattern is "book one summarized entry for the difference — don't re-key every transaction."

7Do you even need it? — opening balance vs. full reconstruction

Scott — this is the section I most want your read on, because it's the heart of the build decision. There's a much cheaper alternative to reconstruction, and for a lot of sellers it's good enough. So the real question isn't "can we build it" — it's "how big is the segment that genuinely needs the past fixed?"

The cheap alternative: just set an opening balance

Physical count at cutover → assign a reasonable cost per unit → that's your opening inventory layer → move forward. This is the standard migration default (it's literally what Cin7/DEAR do). And there's a second self-healing effect on top of it:

✓ Why it's often "good enough"

  • Going-forward accuracy is solved immediately — every unit received after cutover is SKU-costed correctly.
  • It self-corrects with turnover. Once the old opening layer sells through (FIFO consumes it first), every remaining unit on hand was SKU-costed → the balance-sheet inventory value becomes clean within ~one inventory turn.
  • For fast, uniform turners who know their costs, the residual error is small and gone in weeks.

⚠ The three things self-correction does not fix

  • The P&L heals only prospectively. The bad opening cost still flushes through COGS once as those units sell (e.g. opening valued at $8 vs. true $10 → profit overstated by $2 × qty during sell-through). Fast turns make it brief, not smaller.
  • It heals unevenly. Seasonal goods, safety stock, dead stock and long-tail SKUs carry the wrong cost for years. Blended turn rate hides them — it's per-SKU.
  • It never touches the past. Prior-year P&L / margins stay wrong. Self-correction = operations, not historical record.

The reframe that decides everything: two different problems

Problem A — be accurate going forward.
Solved by opening balance + turnover. No reconstruction required.

Problem B — trust / correct the past.
Only the full reconstruction solves this. Opening balance throws the past away.

The whole value of the reconstruction feature lives in Problem B. So the build case rests entirely on: how many sellers have a real reason to fix the past? (exit/sale due diligence, raising debt/equity, tax restatement, tariff-broke-the-averages, or simply "I don't trust my financials" — Scott's seller).

When to use which

Just set an opening balance (cheap)Do the full reconstruction (the feature)
Fast, uniform inventory turnsSlow turns / lots of dead stock → error persists for years
They know their costs well enough to value opening stockCosts are unknown/garbage → reconstruct from POs to derive a trustworthy cost
Nobody relies on the historical financialsExit / sale, fundraising, lender, or tax restatement needs clean history
Costing wasn't distortedTariffs retroactively broke moving-average (Scott's trigger)
"Move forward, don't look back"Founder explicitly doesn't trust their numbers
↳ The neat consequence (and a possible MVP)

These aren't strictly either/or. When a seller can't even tell you "roughly what the goods cost," the historical PO reconstruction is how you derive a trustworthy opening cost — even if they don't care about fixing the past. That suggests a staged build: v1 = "smart opening balance" (use PO history to compute an accurate opening cost basis — broad appeal, lower effort), v2 = "fix the past" (the full per-period adjustment report — premium, for the exit/tariff/distrust segment). Scott — does that segmentation match what you see in the market?

8Who else does this — competitive landscape

Scott name-dropped several. Here's what they actually do for historical cost cleanup, and where SKU sits. The big takeaway: almost nobody rebuilds FIFO COGS from origin — they migrate balances or post forward.

Tool What it is Retroactive cleanup? Costing Notes for us
SKU.io Full IMS w/ inventory accounting (v2 ledger) Yes — rebuild from origin FIFO (real layers) Replays full movement history → re-derives layered COGS; produces change CSV + accountant adjustments. The differentiator: does what incumbents punt on.
SellerVue Landed-cost / COGS software for Amazon sellers Backfill, not reconstruct Landed cost The "seller view" Scott meant. Self-serve; computes true per-unit landed cost (factory+freight+duty+tariff). Forward-accuracy, not a fix-the-past engine. Markets to exit/acquisition prep.
Finaloop Real-time bookkeeping (software + human team) Yes — explicit catch-up Avg default; FIFO landed (InventoryIQ) Closest "software does retroactive cleanup." Bulk-edit historical unit cost → recompute prior COGS. But it's a books product, not an IMS. ~$245–995/mo + per-month catch-up fees.
A2X Channel settlement → accounting summarizer Catch-up + reconcile delta $ COGS only (no units) The model for "post the delta." Splits sales/fees/COGS by channel via Xero tracking categories; debit COGS / credit inventory. Tracks dollar values, NOT unit quantities — not a real IMS. $29–~$1,000/mo.
Settle AP + procurement + landed cost No — prospective Landed cost (nightly recalc) Recalculates landed cost as bills arrive; posts JEs via A2X. Forward-looking. ~$199/mo.
Cin7 Core / DEAR Inventory ERP (sub-ledger → Xero/QBO) Constrained; floods GL FIFO actual cost Migrates balances, not history. Back-dated changes are gated; unlocking a period + "load historical data" re-dumps journals. The anti-pattern to avoid.
Finale Inventory Inventory management Back-dated cost change Weighted average Supports a back-dated "Average Cost Change" to retroactively fix costs — but average, not FIFO layers. Proof the demand is real.
Ordoro · Linnworks/SkuVault OMS / WMS-lite Manual only Moving average No automated retroactive recompute; cost corrections are manual/CSV. COGS depth offloaded to the accounting system.
Done-for-you firms LedgerGurus, Bean Ninjas, EcomBalance, Acuity / Catching Clouds Yes — by hand Manual This is Scott's "pay a couple grand and they clean it up." ~$500–2,000 per messy month; inventory adds $300–1,500/mo. SKU automates what they bill hourly for.
NetSuite · ApparelMagic · ChannelAdvisor Enterprise ERP / channel mgmt Gated, consultant-only FIFO/LIFO/Avg Why Scott says "avoid like the plague": 4–6 month implementations, $75K–200K fees, multi-year contracts. The heavyweight end SKU undercuts.
↳ Where SKU wins

The market splits into forward-accurate software (SellerVue, Settle, Bookkeep) and human cleanup services (LedgerGurus, Bean Ninjas… and the couple-grand crowd). The middle — a system that automatically rebuilds accurate FIFO COGS from origin (POs + month-end counts) and emits accountant-ready adjustments — is essentially empty. Finaloop comes closest but it's a books product, not an IMS. That gap is the feature's wedge: it makes onboarding a sales weapon ("give me your data → here's your corrected historical report → now sign").

9Questions for you, Scott

These map to the two things I'm trying to decide. Strategic ones tell me whether to build it; design ones tell me how it should work. Your gut on the strategic block matters most.

Decision 1 — should I build this at all?

  • Segment size: Of the sellers you see, what % genuinely need the past fixed (Problem B) vs. would be fine with a clean opening balance? That's the whole ROI question.
  • The trigger: Is the buying moment usually an exit/sale, a tariff shock, or just chronic distrust of the numbers? Which is most common — it shapes who we sell to.
  • Feature vs. service: Is this a self-serve module, or a high-touch onboarding deliverable you/we run? You mentioned firms charging "a couple grand" by hand — do we automate that, or partner with them (LedgerGurus, Catching Clouds)?
  • Sales weapon? Is "give me your data → here's your corrected historical report → now sign" a real way to win deals, or a nice-to-have after they've already chosen SKU?
  • Staged build: Does the v1 "smart opening balance" → v2 "fix the past" split (§7) match how you'd sequence it?

Decision 2 — how should it work?

  • The deliverable: What does the "accounting report — ins/outs + adjustments, ready for an accountant to post" actually look like to you? This is the thing you'd demo, so I want to design it to your spec.
  • Inputs they'll really have: Will sellers more often have POs + landed costs, month-end counts, or just an accountant's monthly valuation? Determines which path we lead with.
  • Stock-take-less fallback: When there are no physical counts, is a pure valuation-comparison enough? ("Accounting doesn't need to count — just the valuation.")
  • Multi-warehouse: The hard part — historical orders don't say which warehouse fulfilled them. OK to require single-warehouse (or PO + month-end only) for v1?
  • Adjustment granularity: Per-month figures vs. a single as-of-date true-up — you said "up to the accountants," so I'd output per-month and let them choose. Agree?

Receipts — the key quotes

Scott (~11:45): "How can we help clean these up and go back in time… if you're not on FIFO with tariff wars and tariff fluctuations you have to go back."
Kalvin: "You could rebuild COGS from origin… it does the whole thing from the initial events and runs it through the usages… fix all those errors for the past, like four years, five years, all in one shot."
Scott (~14:56): "Do you have an ability for me to import a historical month-over-month inventory quantity?… If I put those in and costs, and you have how things sold… could you redo the math to say here are your COGS and inventory values per month?"
Scott (the crux): "They never did it right in the past, and people entered POs wrong… if I know there's a module and you can generate this accounting report, that'd be huge — it'll look like ins and outs and the adjustments, and then give it to their accountants and they post the adjustments into the financials. And then going forward, SKU posts it."
Kalvin: "SKU is going to be the source of truth for inventory accounts."
Scott (the vision): "Detailed accurate financials… an IMS that stabilizes the data… then a data warehouse that pulls data across sources… being able to ask questions about your business. And then demand planning. Every e-commerce business is a data business."