Synthetic Industry

Inspectable example · updated 2026-10-11

Synthetic monthly drift list: one duplicate, one missing refund and one timing item

An invented month shows how matching by identifier turns two differing totals into three itemised, explained or open differences with a named next step.

An example, not a customer case study. Scope and evidence limitations are described below.

Invented month, three flows

Everything below is made up: identifiers, amounts and the single currency (GBP). The processor reports four payouts and six refunds; the ledger holds four payout entries dated in this period, one of them twice, and five refund entries. Comparing totals alone shows two differences, and the payout difference of 329.66 matches no single payout. Matching on identifiers explains the two differences as three items.

If the matrix is wider than the box, scroll horizontally to read every column. Keyboard: focus the matrix and use Left/Right.

flow     source      items   total      ledger items  total      difference
payouts  processor   4         3212.40  4              3542.06    +329.66
refunds  processor   6          412.50  5               362.50     -50.00

item   flow     id          amount    status      cause
D-1    payout   PO-SYN-2     +1150.40 open        duplicate: two ledger entries, one processor payout
D-2    refund   RF-SYN-6       -50.00 open        missing: no ledger entry carries this refund id
D-3    payout   PO-SYN-4      -820.74 explained    timing: ledger entry is dated in the next period; offsets D-1 in the total

How each item is read

D-1 is a duplicate: one processor payout has two ledger entries, so the ledger total is higher by that payout's amount, 1,150.40. D-3 is timing: another payout's ledger entry is dated in the following period, so the ledger total is lower by its amount, 820.74, which is explained by the date rule. The two partly offset, leaving +329.66, a figure that corresponds to no single payout. D-2 is a missing entry: no ledger entry carries the refund identifier, so the ledger refund total is lower by that refund. Without identifiers the payout difference could not have been traced to its two causes.

  • Open items name the next step: investigate the duplicate source, link the missing refund to its sale, none for the timing item.
  • Totals are a consistency check; identifiers are the evidence.
  • A difference that falls in a locked period is escalated, not corrected by software.

What was and was not exercised

The numbers were recomputed independently and nothing else was run: no Stripe or PayPal account, no ledger and no export. Stripe documents that payouts are grouped by estimated arrival date and PayPal that executed transactions can take up to three hours to appear, which are the kinds of timing effects item D-3 stands for. A real list would have more flows, currencies and fees.

Using the example

If your month-end looks like this, the standing service "Detect reconciliation drift between your payment processor and ledger every month" is £295 a month, an untested published price with billing under written terms agreed first. It is a data comparison, not an audit, and never posts or edits in your systems. Send invented examples and counts first, never credentials, bank details, invoices or customer records; real records are handled only after written agreement through a secure handoff.

Sources and limits

  • Stripe: payout reconciliation report Checked 2026-10-11.
    • The report groups each automatic payout's transactions by reporting category and offers summary and itemised downloads, and is not available to manual or instant payout users in the same way.
    • The report groups a payout by its estimated arrival date, not the date the bank posts the deposit, and report data follows a separate processing schedule so a payout can arrive before its data is ready.
  • PayPal: Transaction Search API Checked 2026-10-11.
    • The list transactions call supports a maximum date range of 31 days, requires an end date, and can take up to three hours for executed transactions to appear.
    • Page size defaults to 100 and can be up to 500, and the call covers the previous three years.
    • Each transaction carries an event code, an amount and a fee amount.
    • A transaction identifier is not unique in the reporting data: the response can list two records with the same identifier, one affecting the balance and one not.
  • Xero: lock dates Checked 2026-10-11.
    • Lock dates stop changes to past transactions, and the article names administrators as the users who can set or change them.