field notes 2026-04-18 9 min read the multiflow desk

How to reconcile revenue across 8 brands monthly — the 90-minute close

3-minute scan
  • Revenue reconciliation across multiple brands is the job that tends to eat a full day every month and generate errors that only surface at tax time.
  • With the right pipeline it is a 90-minute process, automated end-to-end except for the variance review.
  • What reconciliation actually means across 8 brands You are matching four independent data sources per brand, per month:Storefront orders — Shopify, WooCommerce, or custom platform showing what customers paid.
On this page

    Revenue reconciliation across multiple brands is the job that tends to eat a full day every month and generate errors that only surface at tax time. With the right pipeline it is a 90-minute process, automated end-to-end except for the variance review. This guide covers the build.

    1. What reconciliation actually means across 8 brands

    You are matching four independent data sources per brand, per month:

    1. Storefront orders — Shopify, WooCommerce, or custom platform showing what customers paid.
    2. Processor settlements — Stripe, Adyen, Authorize.Net showing what got authorized and captured.
    3. Bank deposits — what actually landed in the brand's LLC bank.
    4. Accounting ledger — QuickBooks, Xero, or NetSuite showing what was booked.

    A clean month means all four sources agree within acceptable variance (usually <1% on fee allocation). An unclean month means fraud, bugs, refund timing mismatches, or bank holds you need to investigate.

    2. The pipeline

    Per brand, build four extractors that dump to a shared data warehouse or spreadsheet:

    • Orders extractor: Shopify GraphQL orders query (or WooCommerce REST /wp-json/wc/v3/orders) filtered to the close month.
    • Settlements extractor: Stripe Balance Transactions API, Adyen settlement details report, etc. Pull fees, refunds, chargebacks, net payout.
    • Bank extractor: Plaid or manual CSV from bank. Match deposits against processor expected payouts.
    • Ledger extractor: QuickBooks API or Xero API, pull the revenue account balance for the brand.

    Dump all four into one table with columns: brand, source, date, amount, txn_id. Then reconcile by txn_id and date.

    3. The four variance reports you actually need

    Automate these and the close becomes review-only:

    Report A: orders vs captures

    Which storefront orders do not have a matching processor capture? Reasons:

    • Authorized but not captured (held order, manual review)
    • Capture failed
    • Order was refunded before capture
    • Test order on production store

    Report B: captures vs settlements

    Captures that have not yet settled. Usually 1-2 day lag. Anything older than 7 days is a problem.

    Report C: settlements vs bank deposits

    Processor says it paid $127,430 on the 15th. Bank says $127,385 landed on the 16th. $45 variance is usually a wire fee or a micro-deposit verification. Anything above $500 needs investigation.

    Report D: bank deposits vs ledger

    Did accounting book the revenue correctly? Common errors:

    • Double-booked the deposit (once from Stripe sync, once manually)
    • Booked gross when should be net of fees, or vice versa
    • Wrong brand entity on the JE

    4. Variance thresholds — what to investigate

    • Under 0.5%: accept as fee rounding, move on.
    • 0.5%-1%: log, investigate next month if it recurs.
    • 1%-5%: investigate now. Usually a batch of unmatched refunds or a fee structure change.
    • Over 5%: stop the close and find the cause. Either a genuine fraud/data issue or a broken data pipeline.

    5. The 90-minute close process

    1. Minute 0-10: trigger the four extractors for all 8 brands. Parallel. Wait for completion.
    2. Minute 10-20: auto-generate the four variance reports per brand.
    3. Minute 20-60: review any brand with variance above the 1% threshold. Usually 1-2 brands per month.
    4. Minute 60-75: post month-end JEs in the accounting system for any timing adjustments.
    5. Minute 75-90: produce consolidated P&L across the 8 brands. Review top-line vs budget.

    Working example: 8-brand nutra portfolio, $12M annual

    Operator runs:

    • 5 brands on Stripe standalone accounts
    • 2 brands on a high-risk acquirer (CBD vertical)
    • 1 brand on Adyen (international expansion)

    Before automation: 8-10 hours per month, usually $2-4k of variance carried forward as "to investigate."

    After automation: 75 minutes average close time. Variance carried forward typically under $500. Year-end audit time reduced by ~40 hours.

    Tools that save time

    • Fivetran or Airbyte for pulling processor + bank + storefront data into a warehouse.
    • QuickBooks Online Multi-Entity or NetSuite for brand-level consolidation.
    • Plaid for bank reconciliation.
    • multiflow orchestration surfaces the four variance reports out of the box — one dashboard per brand plus consolidated view.

    See the full multi-brand reconciliation playbook and consolidated close for 20 brands.

    FAQ

    Do I need a data warehouse? Above 4-5 brands, yes. Spreadsheets stop scaling.

    What about refund timing across month-end? Book refunds to the original sale month, not the refund month. This is GAAP and matches your processor 1099-K reporting.

    How do I handle chargeback timing? Chargebacks post in the month filed, not the month of the original transaction. Keep a separate chargeback aging report.

    What if a brand uses multiple processors? Extract each processor independently, consolidate at the brand level before comparing to bank.

    CTA

    If your monthly close is taking more than 4 hours across your portfolio, we can build the pipeline. Apply to multiflow or see pricing.

    Found this useful? Share it X LinkedIn Reddit HN Email

    Running multiple brands?
    multiflow was built for this.

    The Operator Briefing

    Twice-monthly. No fluff.

    Processor shutdowns, reserve-hold playbooks, reconciliation lessons, and the merchant-account decisions that save operators six-figure years. Delivered to your inbox — never spam.

    No spam. Unsubscribe in one click.

    We use essential cookies · Privacy