Sample · Root-Cause Diagnostic Report
Why the studio's numbers didn't add up
These findings are real. At SweatSet they were found and fixed one at a time during the studio's first month, not in a single paid two-week engagement. They are written up here in the format a diagnostic report takes, so you can see what you would get.
01Summary
The studio's dashboard was answering three questions wrong: who is in a trial, how much sold today, and how many members there are. None of these were software bugs anyone would notice from the screen. Each one only showed up when the dashboard's numbers were checked against the raw records underneath.
| Rank | Finding | Value | Effort | Status |
|---|---|---|---|---|
| F1 | Trial end dates wrong for 100 of 111 active trials; 31 paid customers never came in and appeared nowhere | High | Small | Fixed |
| F2 | Evening sales counted on the next day | Medium | Small | Fixed |
| F3 | 18 staff, vendor, and partner accounts counted as members | Medium | Small | Fixed |
02Findings
Finding F1
Trials that ended before they started
- Question
- Who is in their 14-day intro trial right now, when does each trial end, and who needs a follow-up?
- Evidence
-
Comparing each intro purchase against that person's first check-in: 100 of 111 running trials had a different end date than the dashboard showed. Most intro buyers bought before opening day on August 15 and didn't come in until it opened.
Bought July 31, first class August 15.The same comparison turned up 31 people who had paid for the intro and never checked in at all. They had no end date, so no list included them.
Dashboard said trial ends: August 14
Actual trial ends: August 29 - Root cause
- The trial clock started on the purchase date. The trial really begins at the first visit.
- Fix
- The trial clock now starts at first check-in everywhere: the dashboard, the studio's nightly 6 PM email, and the query both read from. The 31 got their own list, "Paid the intro, never checked in," sorted oldest purchase first, since the longer one sits unused, the more likely it becomes a lost customer.
- Why it ranks first
- These are the warmest leads the studio has. They already paid. The follow-up window is when a trial turns into a membership, and the old dates were telling staff that window had closed before it opened.
Finding F2
Tonight's sales landed on tomorrow
- Symptom
- Daily sales on the dashboard were off from what the studio expected for the day.
- Evidence
- The booking system stores every timestamp in UTC, a universal clock four or five hours ahead of Eastern time. The dashboard grouped sales by day without converting to Eastern time, so anything sold in the evening counted toward the next day. Separately, the date picker in the browser asked for tomorrow's data once it was evening on the East Coast.
- Root cause
- Two places, the reports on the server and the date picker on the page, both treated UTC as local time.
- Fix
- Every date the dashboard groups or filters on is now converted to Eastern time, with daylight saving handled. The conversion is tested at all four moments a year when the clocks change. Date-only fields like expense dates were deliberately left alone, since there's no time of day to shift.
Finding F3
Members who weren't members
- Symptom
- Member lists and signup counts were padded with names that weren't customers.
- Evidence
- 18 accounts in the member data belonged to the studio's own front desk, the booking software vendor and related tools, a retail partner, and a test account. All of them were counted in member activity and signups.
- Root cause
- Nothing separated customer accounts from service and partner accounts.
- Fix
- Non-customer accounts are excluded from member lists and signup counts by email domain, so new staff or vendor accounts are filtered automatically.
03How each finding was checked
- Every number on the dashboard was traced back to the raw records it came from, and recomputed from those records directly.
- Where the two disagreed, individual customers were checked by hand (like the July 31 buyer above) until the pattern behind the gap was clear.
- Each fix was re-run against the live data before it shipped, and the before and after numbers were compared.
Your two weeks end with a report like this one, built on your data and ranked by what each fix is worth. $4,500 fixed.