Why Your Shopify Payout Balance Never Matches What You Expected, and What the New Activity Report Actually Shows You

By Milan Dhameliya · · 9 min read

Your Shopify Payments balance and the deposit that actually lands in your bank account are almost never the same number, and until August 22, 2026 there was no single report that showed why. The new Payments activity report lays out starting balance, gross activity, fees, payouts, and ending balance for a date range in one place — here's how to read it, the five things it will usually catch, and when a gap means an actual hold rather than normal timing.

Your Shopify Payments balance and the amount that actually shows up in your bank account are almost never the same number, and that's normal — it isn't a sign something is broken. Between a sale and a payout sit settlement windows, reserves, refunds booked against a different date than the sale they came from, currency conversion, and country-specific minimum thresholds, and until recently there was no single Shopify report that told you which of those was responsible for your particular gap. There is now: the Payments activity report, shipped August 22, 2026, shows your starting balance, gross activity, fees, payouts, and ending balance for a date range in one place, and it's the fastest way to find out which line item is actually holding your money.

The five things that sit between a sale and a payout

None of these are bugs. They're the standard mechanics of how Shopify Payments moves money, and almost every "my balance doesn't match" support thread traces back to one of them.

Where to actually see the math: the Payments activity report

Before August 22, 2026, the closest thing to an answer was the Payouts page, which lists individual payouts one at a time — useful for confirming a specific deposit, useless for seeing the period as a whole. The new report is organized around the balance itself, not individual payouts. Open it from Finance > Documents > Shopify Payments activity report, or from the Payouts page directly, choose a date range, and it returns five figures for that window:

A worked example makes the gap concrete. Say a store on a weekly payout schedule does $12,400 in gross sales over the week. A $340 refund from an order placed two weeks earlier processes mid-week. A $1,200 reserve, set after a chargeback the previous month, releases back into the balance on day five. Processing fees for the week run $360. Starting balance for the range was $2,100. Gross activity for the week works out to roughly $12,400 in new sales, minus the $340 refund, plus the $1,200 reserve release, for $13,260. Subtract the $360 in fees and the report's ending balance should be starting balance plus that net $12,900 — but the payout total for the same window will be lower than gross sales, because Tuesday through Thursday's sales haven't cleared the three-business-day settlement window yet and roll into next week's payout instead. None of that is visible from the dashboard's single balance figure; it only becomes visible once you pull the report and look at the five numbers that produced it.

Payout frequency changes how confusing this looks without changing the underlying mechanics. A store on monthly payouts sees one large number and a wider gap between "sales this month" and "deposit this month," which reads as more alarming even though the reconciliation math is identical to a store on daily payouts seeing five small, closely-tracking numbers. If reconciliation clarity matters more to you than payout float, moving from monthly or weekly to daily (available in most Shopify Payments markets under Settings > Payments > Manage > Payout schedule) shrinks the settlement lag each individual payout has to explain, even though it doesn't eliminate it.

When the numbers still don't add up

If gross activity minus fees minus payouts doesn't equal the change in your balance for the period, check these in order before assuming something is wrong:

Pulling the same numbers programmatically

If you're reconciling in an external ledger rather than reading the PDF by hand, the Admin GraphQL API exposes the same underlying data through ShopifyPaymentsAccount:

{
  shopifyPaymentsAccount {
    balance {
      amount
      currencyCode
    }
    balanceTransactions(first: 50) {
      edges {
        node {
          amount { amount currencyCode }
          fee { amount currencyCode }
          net { amount currencyCode }
          type
          test
        }
      }
    }
  }
}

One gotcha worth knowing before you build against this: if your business has more than one Market or legal entity, the top-level shopifyPaymentsAccount.payouts field only returns payouts tied to your primary entity — payouts made through a second entity don't error, they just don't appear. We covered the corrected query and how to reconstruct history you've already lost in a separate breakdown of that specific bug, and it's worth checking if your books stopped matching Shopify's numbers around the same time you added a second entity or Market.

When it isn't timing — it's a hold

Everything above describes normal, self-resolving mechanics. It's a different problem if your payouts have stopped entirely and the activity report shows a balance that simply isn't moving to a payout at all. That pattern is usually an identity verification hold rather than a reserve or settlement lag, and it behaves differently: the balance sits, nothing releases on a schedule, and support tickets often go nowhere until you ask the right specific question. We wrote up the two patterns behind stuck verification holds and the questions that actually get support to move if that's what you're seeing instead of a reconciliation gap.

If you've read the report, ruled out settlement lag, refunds, and reserves, and the balance still doesn't move, that's a support escalation, not a bookkeeping exercise. If the underlying issue is that Shopify Payments doesn't fit your business at all — a few countries genuinely don't get a choice — the eligibility rules and fee math are worth checking before you assume the problem is payout mechanics rather than the processor itself.

Who doesn't need to worry about this

If you run a single-currency, single-entity store on a standard payout schedule with a low dispute rate, your balance and payouts will usually track closely already, and the activity report will mostly confirm that rather than surface anything new. It earns its keep for multi-currency sellers, stores that had a recent chargeback or reserve event, anyone doing month-end reconciliation against an external ledger, and finance teams who've been asked "why doesn't this number match" one too many times without a report that actually answers it.

If your operation has outgrown what the dashboard and this report can explain on their own — multiple entities, custom reconciliation tooling, or payout logic your finance team needs built rather than read — our team can help you build the reconciliation layer instead of re-deriving it by hand every month.

Before you escalate to support, check this