The "Compare with previous period" toggle allows you to benchmark your current metrics against the same period in the previous month, previous year, or both. This guide explains how the toggle works across different reports and details how comparison data is matched, calculated, and displayed.
Things to know:
- The 'Compare with previous period' toggle filter is displayed in the following reports:
- Once enabled, you can select Last Month, Last Year, or Last Month & Last Year from the comparison dropdown menu. The system will then apply the following universal rules:
- Green Text: Indicates the current metric is higher than the previous period.
- Red Text: Indicates the current metric is lower than the previous period.
- Rounding: All comparison values are rounded to the nearest whole number.
- No Data (N/A): An N/A is displayed if the comparison period has no matching data to calculate against.
- Green Text: Indicates the current metric is higher than the previous period.
- The system calculates differences (deltas) between your selected periods. Depending on the report, these comparisons will appear in one of two ways:
- Full Comparison Reports (Per-Row + Footer): Comparisons appear on every individual row as well as in the totals footer.
- Reports: Bookings by Date, Bookings by Location, Bookings by Staff Member, Bookings by Service, Daily Payments, Daily Revenue, Clients by Type, and Client Revenue.
- Data Matching Rule: For the Bookings by Service report, rows are matched by the service’s unique variation ID. This means if a service was renamed between the two periods, the system will still accurately line it up and calculate the delta.
- Reports: Bookings by Date, Bookings by Location, Bookings by Staff Member, Bookings by Service, Daily Payments, Daily Revenue, Clients by Type, and Client Revenue.
- Totals / Footer Only Comparison Reports: Comparisons are displayed exclusively in the totals row at the bottom of the report.
- Reports: Product Sales Details and Service Sales Details.
- Full Comparison Reports (Per-Row + Footer): Comparisons appear on every individual row as well as in the totals footer.
- Important Exceptions & Technical Rules
- The "Client Revenue" Visibility Condition: To display per-row comparisons, the system requires a stable Client ID. Because this identifier changes across location boundaries, per-row deltas for the Client Revenue report will only display when viewing the default By Client view on a standalone (parent/non-child) account.
- The report will automatically drop back to a Footer-Only comparison state if:
- You switch to the By Location view.
- You are logged into a Child/Location account.
- Note: Even in the correct view, a row delta will only generate for a client who generated revenue in both compared periods.
- Sales Details View Dynamic Upgrades: While Product Sales Details and Service Sales Details are normally "Footer Only" reports, they will dynamically upgrade to show per-row deltas when you specifically switch them to their By Location view.
- Location Adjustments for Full Reports: Unlike the client report, other "Full" comparison reports do not drop back to footer-only when you change your perspective. When switched to a By Location view, they will simply shift their data-matching criteria to the location level instead of their default dimension.
Comparison of "Compare Previous Period" Toggle Across Reports
The following table highlights how the period-over-period comparison toggle dynamically alters its behavior based on the report type and selected view axis.
| Report Name | View Type / Filter Axis | Row-by-Row Data? | Footer / Totals Data? | Matching Metric / Logic | Non-Comparison Exceptions |
| Daily Revenue | By Date | Yes | Yes | Matches strictly by calendar date, daily, weekly, month, or custom date ranges (shifts 4 weeks back for Month, 52 weeks back for Year). If a date doesn't exist in the past period (e.g., March 31 vs. February), the system automatically compares it to the last valid day of that month (Feb 28 or 29). | N/A |
| By Location | Yes | Yes | Groups data by Location ID to track historical growth or decline over time | Expands to reveal individual data by daily, week, or monthly depending on the selection | |
| Daily Payment | By Date | Yes | Yes | Matches strictly by calendar dates across all custom payment-type columns. | N/A |
| By Location | Yes | Yes | Pairs location profiles against their own historical payment data. | Expands to reveal individual appointments, but breakdown rows display no deltas. | |
| Booking by Date | By Date | Yes | Yes | Matches rows strictly by calendar dates (e.g., matching day-of-week boundaries). | N/A |
| By Location | Yes | Yes | Pairs location profiles against their own historical booking data. | Expands to reveal individual appointments, but breakdown rows display no data. | |
| Booking by Location | By Location Only | Yes | Yes | Tracks stores securely using a unique hidden Location ID rather than store name string. | Compares only financial metrics. Deeper expanded appointment rows display no deltas. |
| Booking by Service | By Service | Yes | Yes | Tracks services via a unique Service ID. Prevents misalignment if a service was renamed. | Data only show up for main service totals; expanded staff rows display no deltas. |
| By Location | Yes | Yes | Disables service grouping; shifts to comparing specific location performance against its own past data. | New locations or services with no prior history display as N/A. | |
| Booking by Staff Member | By Staff Member | Yes | Yes | Tracks individuals via a permanent Employee ID, preventing data breaks if names are edited. | Only tracks core financial values; expanded booking/time breakdown rows display no deltas. |
| By Location | Yes | Yes | Groups transaction metrics sequentially by location using unique Location IDs. | N/A | |
| Client Type | By Client | Yes | Yes | Breaks data into exactly two structural rows: New Clients and Existing Clients using a hidden code. | Expanded child views showing individual client names or specific appointments do not show deltas. |
| By Location | Yes | Yes | Shifts focus to display how each individual location is performing across these client types. | Text properties (client name strings) are ignored. | |
| Client Revenue | By Client | Yes (Conditional) | Yes | Tracks clients via Client ID to stay stable through name changes/typo fixes. | Pet/Family accounts fallback to Footer-Only deltas. Non-numeric fields (emails, phones) are excluded. |
| By Location | ❌ No | Yes | Fallback State: Changes to location view drop all individual row deltas. | Individual location rows will display entirely blank/no comparison data. | |
| Service Sales Detail | By Date | ❌ No | Yes | Displays itemized ticket transactions. Because every ticket is unique, row-level historical matches are impossible. | Individual transaction rows will not show any comparison metrics. |
| By Location | Yes | Yes | Groups individual ticket data dynamically by store Location ID to show store growth. | Brand new locations or locations without historical sales in that timeframe show as N/A. | |
| Product Sales Detail | By Date | ❌ No | Yes | Displays individual transaction line items. Because every transaction is unique, row-level historical matches are impossible. | Individual transaction rows will not show any comparison metrics. |
| By Location | Yes | Yes | Groups product line item data dynamically by store Location ID to show store growth. | Brand new locations or locations without historical sales in that timeframe show as N/A. |
Related Articles:
Was this article helpful?
That’s Great!
Thank you for your feedback
Sorry! We couldn't be helpful
Thank you for your feedback
Feedback sent
We appreciate your effort and will try to fix the article