Open Stripe, filter payments for last month, and read the count. Then count the rows your sync wrote into the warehouse for the same period. Then read the number your accounting system reports. The three differ, and the instinct is to hunt for duplicates.
Almost nothing is duplicated. Stripe's balance transactions are its recommended starting point for reporting on balance activity, and Stripe creates one for every transaction that comes into or flows out of the account balance, which includes payouts, refunds, disputes and reserve holds, not just customer charges per the Stripe reference. A charge is one kind of movement among many.
Then there is the fee. The processing fee on a card charge is not its own balance transaction. It is a field on the charge's own transaction, and net is computed as amount minus fee, as the balance transaction walkthrough explains when describing the amount, fee and net fields. Your general ledger wants revenue and fee as two facts in two accounts, so a tool that produces a usable fee expense line turns one Stripe row into at least two accounting events. A count roughly double the payment count is the expected shape of a healthy month, not a symptom, as the Acodei analysis of payment counts versus balance transactions lays out.
So the disagreement is real but structural. The question is not which number is right. It is which number is the metric, and what happens to the others.
That framing has a useful habit behind it: in a sales pipeline you define stages and a gate for each stage so a deal's position is unambiguous rather than a matter of opinion, which is how the OpenVC pipeline guide structures a raise. Metrics need the same discipline: a named state, a named owner, and a gate that says when the state changes.



