Loading
Loading
Royalty collection at most franchises is a spreadsheet, a chase-list, and an awkward call on the 15th of every month. SalesThumb automates the math: on the 1st of the month, a cron walks every shop in the chain, sums its paid invoices, applies that shop's rate rule (tiered brackets, marketing fund %, tech fee), and generates an itemized statement — no one has to kick it off. What it doesn't do is move money. There's no automatic ACH debit: HQ either generates a NACHA file and originates it through their own bank, or records payments by hand as they come in. Disputes are a franchisee typing a reason on one statement, reviewed and resolved by a human — not an automated retry queue.
Royalty + Marketing Fund · April 2026
Period closes Apr 30 · 5 shops · auto-generated from sales data
Royalty formula
Tiered brackets
Marketing fund
Collected alongside royalty · spent on network-wide ad campaigns
Collection method
Statement preview · Houston · Memorial
STMT-APR26-001Period: Apr 1 – Apr 30, 2026
Due May 5, 2026 — HQ originates the ACH batch or records payment by hand
All shops · this period
| Shop | Gross | Royalty | Mkt | Total |
|---|---|---|---|---|
| Houston | $113,680 | $4,921 | $1,705 | $6,626 |
| San Antonio | $88,560 | $3,886 | $1,328 | $5,214 |
| Dallasreview | $75,520 | $3,298 | $1,132 | $4,430 |
| Austin | $62,240 | $2,801 | $933 | $3,734 |
| Fort Worth | $36,720 | $1,836 | $551 | $2,387 |
Network payout
Total due
$22,391
+21% vs March
Schedule
Matches to the penny
Every shop sees the same sales data this calc is built from. Once a payment is recorded, the statement balance updates automatically.
Features, zoomed in
Three capabilities built specifically for the day-to-day of a working shop.
Deep dive · 01
On the 1st of every month at 02:00 UTC, an Inngest cron walks every franchise org, then every shop in it: sums that shop's paid invoices for the prior month, applies its rate rule (a shop-specific override if one exists, otherwise the org default — including tiered brackets, marketing-fund %, and technology fee), and inserts an itemized statement. The close date itself isn't configurable — it's always the 1st. A separate daily cron (09:00 UTC) emails any statement that hasn't gone out yet, so delivery can land up to a day after the close.
Monthly closeautomated
Inngest cron · royalty/monthly-close · 1st of month · 02:00 UTC
Close day
1st of month
fixed, not configurable
Default rate
6.0%
3 legacy overrides
Statement delivery
Separate daily cron
09:00 UTC
▸ walking 38 shops · period Apr 1 – Apr 30 · paid invoices only
✓ Shop A $84,210 × 6.0% → $5,052.60 statement generated
✓ Shop B $61,480 × 5.0% (shop-level rate override) → $3,074.00 statement generated
↷ Shop C statement 2024-04 already exists — duplicate run, skipped
✓ Shop D $47,932 × 6.0% → $2,875.92 statement generated
… 34 more shops · one lump gross-revenue figure per shop
done · 37 statements generated · 1 skipped · sending is a separate daily cron
Nothing to kick off. Walk in on the 1st and the numbers are already computed — collection is still a manual step (NACHA file or recorded payment), not automatic.
Deep dive · 02
SalesThumb stores each franchisee's bank details (encrypted) so HQ can generate a NACHA-format ACH file for a period and originate the debit batch through their own bank's ACH portal — the platform never initiates a debit itself. The alternative (or the fallback when a franchisee pays another way) is recording the payment by hand against the statement. Nothing auto-reconciles beyond that manual entry.
Collecting · April statementsmanual
Bank on file per shop · SalesThumb never debits it automatically
Recorded this period
2 of 4 shown recorded
$8,126.60 / $15,120.77
Shop A
Bank on file · Payment recorded May 8 · check
Shop B
Bank on file · Payment recorded May 9 · included in NACHA batch
Shop C
Bank on file · Statement sent · no payment recorded yet
Shop D
Bank on file · Franchisee disputed the statement — see Raise dispute
Two ways money gets marked collected: HQ generates a NACHA file and originates it through your own bank, or HQ types in a payment (check, wire, portal) — either way, a human records it. Nothing debits a franchisee's account on its own.
What's included
Everything that ships on day one. No feature-gating surprises inside a single plan.
See every angle
Every meaningful view, the path through it, and the moments that matter — so you know exactly what you're buying.
Statement PDF (franchisee view)
No auto-debit; collection notes explain how payment actually happens.
Sample Shop LLC
Franchise royalty statement
Statement 2024-04
Period Apr 1 – Apr 30 · issued May 1
Franchisee
Sample Shop LLC
Tampa · Westshore
Royalty rate
5.0%
shop-level rate override
| Line | Amount |
|---|---|
| Collected revenue (basis) | $61,480.00 |
| Royalty @ 5.0% | $3,074.00 |
| Marketing fund @ 2.0% | $1,229.60 |
| Technology fee | $99.00 |
| Credits applied | -$0.00 |
| Total due | $4,402.60 |
How this gets collected
Nothing debits automatically. HQ will either include your bank details in a NACHA batch they originate through their own bank, or record a payment once it’s received (check, wire, portal).
Questions about this statement? Raise a dispute from your franchisee portal.
Disputed statements
Disputed statements2 open
A franchisee raised a dispute with a free-text reason — no automated resolution
Seattle · Bellevue
$4,118.25Statement 2024-04 · raised May 9
Gross includes returns that were voided — recalculate.
Nashville · Berry Hill
$3,866.40Statement 2024-03 · raised Apr 28
One invoice was double-counted after a refund + rebook.
No retry, no processor codes, no auto-resolve — HQ follows up directly with the franchisee, then either issues a manual royalty credit (applied at the next close) or corrects the recorded payment.
Who it's for
What it replaces
How it works
Set a tiered or flat royalty rate per org, with shop-level overrides for legacy contracts. Marketing fund % and technology fee are configured as separate line items.
1st of the month, every shop's prior-month revenue is rolled up and an itemized statement is generated. You review any disputed statements (usually none).
Generate a NACHA file and originate it through your own bank, or record payments as they come in. Nothing debits a franchisee's account automatically.
What this looks like in a shop
Illustrative scenario: a 14-location PPF franchise used to spend the first week of every month reconstructing what each shop owed from raw POS exports. With the close cron doing that math automatically on the 1st, the owner's remaining work each month is generating a NACHA file for the shops paying by ACH and following up on the couple that don't — down from a week of spreadsheet work to about an hour.
Questions
Fits in with
Your bank's ACH portal
HQ originates the debit batch there — SalesThumb only generates the NACHA file
QuickBooks Online
One-way royalty-invoice push (no GL mapping)
Inngest
Schedules the monthly-close + daily-send crons
Explore more
Server-enforced brand-color locks, network-wide minimum pricing, and a structured visit-checklist runner that turns every failed item into a tracked corrective action — not a spreadsheet note.
A single org-level marketing fund: each shop's contribution is calculated automatically from revenue at monthly royalty close (no bank-level auto-debit — collection is manual, same as royalty payments), HQ-run campaigns logged by hand, and a franchisee-submitted claim queue HQ reviews and pays manually — with an AI suggestion chip to speed triage, never to auto-decide.
Whether you're a solo operator or a franchisor with hundreds of locations, every shop rolls up into one HQ view with consolidated KPIs, centralized catalogs, and push-to-shop pricing and templates.
Revenue, installer performance, per-job material margin, quote-to-paid counts, customer LTV — organized as individual reports you pick from a sidebar, not one mega-dashboard.