Franchise Revenue By Report
The Revenue By report shows revenue and job counts across your franchise, grouped by Location or Postal Code, split between recurring and one-time work. It answers where a franchise's revenue is concentrated and which territory it isn't working — without needing outside census or territory-boundary data.
Who Can Access This
| Role | Access Level |
|---|---|
| Super Administrator | Full access |
| Host Administrator | Full access |
Access also requires permission to view reports.
Where to Find It
From the Franchise Portal sidebar, open Reports and select Revenue By.
Toolbar Controls
| Control | What It Does |
|---|---|
| Group by | Switch the table between Postal Code (default) and Location |
| Date range | Sets the reporting period (defaults to Year to Date) |
| Revenue basis | Toggle between Royalty, Bill Rate, or Both |
Your selections are saved in the page URL (?groupBy, ?basis, ?from, ?to), so refreshing the page, using your browser's back button, or sending the link to someone else preserves the exact view you were looking at — for example, "Atlanta locations by postal code, royalty basis, year to date." Default selections are left out of the URL so it stays clean; if a link contains an unrecognized value, the report falls back to the default for that control instead of showing a blank page.
Revenue Basis: Royalty, Bill Rate, or Both
- Royalty — the royalty-basis revenue figure, matching the basis used on the Franchise KPI report so the two reports never disagree on a total.
- Bill Rate — the customer-facing bill rate revenue figure.
- Both — shows Royalty and Bill Rate side by side as separate columns for every revenue figure in the table. Job counts don't change with revenue basis, so Both only doubles the revenue columns, not the Jobs columns.
There is no "royalty gap" column. The difference between bill rate and royalty basis includes discounts and non-royalty fees, so MaidCentral Pulse shows both figures and leaves the subtraction to you rather than presenting an unverified derived number.
Reading the Table
Each row is a location or postal code (depending on Group by), with columns grouped as:
| Column Group | Contains |
|---|---|
| Recurring | Revenue and job count for recurring service in the period |
| One-Time | Revenue and job count for one-time service in the period |
| Total | Combined revenue, total jobs, and average revenue per job |
The table sorts by total revenue (highest first) by default.
KPI Summary
Above the table, four summary tiles show:
- Revenue — total revenue for the selected basis
- Recurring — recurring service's share of total revenue
- Jobs — total jobs in the date range
- Locations or Postal Codes — the count of distinct locations or postal codes with activity in the range (matches your Group by selection)
Incomplete Results
If a date range returns more rows than the report can load, a banner reads "These totals are incomplete" above the table. When you see this, every figure on the page is understated — narrow the date range to get complete numbers.
Troubleshooting
| What you see | Solution |
|---|---|
| "Revenue By report unavailable" | This report isn't enabled for your account, or your role doesn't include report access. Contact your administrator. |
| "These totals are incomplete" | The date range has too many rows to load in full. Narrow the date range. |
| "No revenue in this range" | No jobs fall inside the selected date range. Widen the date range. |
| A link someone sent me shows different filters than they described | The link may contain an unrecognized filter value, which falls back to the default. Confirm the group-by, basis, and date range in the URL. |