A two-system stack does not lose the truth once. It loses it in four specific places: timing, detail, mapping, and reversals. Each one is a consequence of keeping two systems in agreement, which is the work the reconciliation tax pays for, and none of them is fixed by trying harder.
The setup
The common arrangement for a multi-channel product brand is a storefront and marketplaces on one side, an accounting system on the other, and a bridge tool between them that summarizes sales activity into journal entries.
It is a sensible arrangement. It was assembled by competent people. It also fails in four predictable ways, and the four are worth naming precisely, because a brand that can name them can check its own books this afternoon.
Break one: timing
The two systems learn things at different moments. The storefront knows a sale happened now. The marketplace settles days later, netting fees and adjustments together. The bank sees the deposit later still. The accounting system learns whichever version arrives first and then gets corrected, or does not.
Every gap between those moments is a window in which the two systems disagree and someone has to decide which is right. That decision is manual, it happens monthly, and it is a judgment call rather than a computation.
Break two: detail loss
The bridge posts a summary. One entry, standing in for hundreds of events. Once the summary is written, the detail underneath it is gone from the accounting system’s point of view.
That matters the moment anyone asks a question the summary cannot answer, which is most useful questions. Margin by product. Margin by channel after fees and freight. Which specific units drove a move in cost. The detail existed once, upstream, and the entry that made it into the books cannot reach back to it.
Break three: mapping drift
Somewhere there is a table that says what things mean. This product maps to that account. This word in the processor means that word in the storefront. Someone built the table once, correctly.
Then a product gets renamed. A channel adds a field. A discount type is introduced. The table does not know, and it does not complain. It keeps producing entries that are structurally valid and quietly wrong.
One brand Focal works with had a month of books missing $664,868 in discounts, 27.5 percent of gross, because a single word meant one thing in the processor and something else in the storefront. The collision ran for a year without surfacing. Nothing alerted, because from each system’s own perspective nothing was broken.
Break four: reversals
Anything that is not a clean sale is the hardest case. A return. Breakage. A sample sent out. A transfer between warehouses.
These events move units without behaving like sales, and a pipe built to carry sales either misses them or carries them in a form the other system interprets differently. One system hears the reversal. The other does not. The gap persists until a physical count forces a large adjustment, usually at year end, booked as a single number that explains nothing about where it came from.
Where cost of goods sold actually comes from
The four breaks converge most visibly on one number, so it is worth walking a single transaction end to end.
In the conventional stack. A brand sells one hundred candles. The storefront pays out. The bridge tool multiplies one hundred units by a cost it has stored in a table, and posts one summary entry.
Three things just went wrong.
The cost was a maintained lookup rather than a figure derived from the receipt. If a container landed at $7.40 per unit instead of $6.00 because freight moved, margin is overstated until a human notices and updates the table.
The entry moved dollars, not units. The inventory count becomes a running subtraction that decays continuously, which is why the shelf and the system have not agreed in a year.
And anything that was not a sale never entered the pipe at all. Returns, breakage, samples, and warehouse transfers are invisible to it.
In Focal. The order posts already knowing the SKU, the units, the receipt those units came from, and the real cost paid for them including allocated freight and duty. Cost of goods sold is a consequence of the movement rather than a lookup performed against it. The inventory asset equals units on hand times real cost, because it is the same record rather than two records held in agreement.
Why a third tool makes it worse
The instinct after recognizing these breaks is to add something. A better bridge. An inventory tool. A reporting layer on top.
Each addition creates another boundary, and every boundary reproduces all four failure modes. Three systems have three boundaries to maintain, not one. The reconciliation tax is the cost of keeping systems in agreement, and it scales with the number of pairs, which is why a stack that felt manageable at two channels feels unmanageable at four.
The tax is not reduced by better tools at the boundaries. It is removed by not having the boundaries.
What one record changes
In Focal the mapping happens once, into a single structured model of how the brand’s facts relate. There is no product-to-account table sitting in a bridge tool waiting to drift. There is no summary standing in for detail, because the detail is what got recorded. There is no reversal that one system hears and another misses, because there is no second system to miss it. The only outside intermediary is the bank connection, and it carries transactions rather than translations.
The four failure modes do not get managed better. They have nowhere left to occur.
The thirty-second self-check
Three questions. A brand with latency present cannot answer any of them cleanly.
Where does cost of goods sold actually come from, and is anyone matching product names by hand to keep it right?
Does the word “discount” mean the same thing in every system that uses it?
What did the business actually make on a given channel last month, net of fees and freight, and how confident is that number?










