← Prototypes·Customer health score — v2 proposal
DETMUSNATSPD
NS
National Speed
NATSPD \u2014 14 seats, 11 active \u2014 Mature tenant
Score: 78 \u2014 Healthy
National Speed is your most active and deeply embedded tenant. They run an 11-person operation across 7 feature areas, process $345K/month in payments through Speedpoint, and maintain a consistent ~6,500 actions/week cadence. Their weighted activity is down slightly (11% from prior 30 days) and WO throughput dipped to 60 from 71, but this is within normal seasonal variance for a shop of this size. They have an open Medium-priority bug (labor drag-and-drop) that needs attention, but their overall trajectory is strong. This is a retention-secure, expansion-ready account.
What's strong

National Speed is the benchmark tenant. 195 active user-days in 30 days means an average of 6.5 distinct people working in the system every day. With 27,276 total actions in 30 days and 140 actions per user-day, this team lives in Speedpoint. They use 7 of 10 sticky feature areas (WOs, quoting, scheduling, POs, payments, time tracking, leads) and process $345,513 in payments monthly through the platform. Checkout sessions (28 in 30 days) show active Finix integration. Checklist submits (34 in 30 days) show advanced feature adoption. All 11 active users of 14 seats = 79% utilization, which is healthy for a team this size.

195 user-days (30d)27,276 total actions$345K payment volume7 of 10 features active79% seat utilization28 checkout sessions
What to watch

WO throughput dipped to 60 this period from 71 last period (down 15%). Weighted activity is also down 11% (33,754 vs 37,768). Looking at the weekly breakdown, this isn't a decline \u2014 it's a return to baseline after a strong Feb 16\u2013Mar 2 spike (8,481 and 8,015 action weeks). The last 4 weeks have been stable at 5,800\u20136,400 actions/week, which is consistent with their long-term average. Payment count is steady (134 vs 145, -8%) but payment volume is actually up 22% ($345K vs $283K), indicating higher-value jobs.

WO throughput: -15% (60 vs 71)Weighted activity: -11%Stable weekly cadence (~6,300/wk)Payment volume up 22%
Bug history (90 days)

National Speed has filed 6 bugs in the last 90 days \u2014 the highest count of any tenant. The severity breakdown is notable: 2 Hotfix (quote duplication crash in Feb, email compose reset in Feb \u2014 both resolved), 1 Critical (checkout server error on specific parts \u2014 resolved Mar 31), and 3 Medium (quote assignment defaults, WO part status sync, and the currently open labor drag-and-drop issue). All but one are now resolved. The open SPD-1507 (labor line drag-and-drop with comments) was reported yesterday by Jordan with video evidence and is still in Needs Discussion. This is a power user hitting edge cases, not a frustrated tenant \u2014 but the volume warrants checking in on their overall satisfaction.

6 bugs in 90 days (highest)5 of 6 resolved1 open: SPD-1507 (Medium)2 Hotfix + 1 Critical (all fixed)
Expansion opportunity

They're not using shipping, documents, or approvals \u2014 3 of 10 feature areas. Given their volume (60 WOs/month, large multi-part quotes), document templates and entity approvals could streamline their closeout workflow. The customer portal checkout integration is already active, which is a strong foundation for document signing requests. This is the kind of conversation Joey could have during a regular check-in rather than a reactive outreach.

Missing: shipping, documents, approvalsAlready using checkout + checklists

Recommended next steps:

1. Follow up on SPD-1507 (labor drag-and-drop) \u2014 Jordan provided video evidence yesterday. Get it triaged and into a sprint quickly to maintain confidence.

2. Proactive satisfaction check \u2014 6 bugs in 90 days is high volume. Even though most are resolved, ask how they're feeling about platform stability overall.

3. Expansion conversation (non-urgent) \u2014 introduce document templates and approval workflows as a natural next step given their quote volume and checkout usage.

Generated Apr 2, 2026 \u2014 based on activity_log (27,276 actions), work_order_payments ($345K), Notion tickets (6 bugs, 5 resolved), and current system churn score 1.30 (healthy). Score components: Usage 88, Trend 82, Finance 95, Features 70, Support 55, Engagement 75.

Score components

Product usage (35%)
Measures the intensity of real work happening in the ERP, scoped to the features the tenant has actually adopted. This component answers: "Given what they use, how actively are they using it?" It never penalizes a tenant for features they haven’t adopted — that’s the job of Feature Adoption.
Active user-days — COUNT(DISTINCT causer_id, DATE(created_at)) from activity_log. A 2-person shop with 20 user-days/month means both users are in the system ~10 days each.
Seat utilization — active users / total enabled users. Measures what percentage of the team actually touches the system.
WO engagement — three sub-metrics that replace the old simple WO-created count: (1) WOs created measures new business intake, (2) distinct WOs edited measures breadth of active work — this catches restoration shops that create 3 WOs but work on 25 of them for weeks, and (3) WO-related edit density (parts added, labor ops updated, payments processed) measures the depth of work happening on each order.
Action density — total actions per user-day. Distinguishes someone who opens the app once from someone who lives in it all day.
Activity trend (15%)
Captures whether the tenant’s engagement is stable, growing, or declining — scored against the tenant’s own historical baseline, not against a growth target. A fully-adopted tenant whose activity holds steady at their normal level scores near-maximum. The goal state for a mature tenant is stability, not perpetual growth.
Per-tenant baseline — the tenant’s 90-day rolling average of weighted activity becomes their personal baseline. All trend scoring is relative to this number, so a 2-person shop at 300 actions/week and a 14-person shop at 6,300 actions/week are both measured against their own normal.
Stability band scoring — activity within ±15% of baseline scores 85–100 (this is the healthy steady state for a mature tenant). Above +15% scores 100 (growing — good, but not meaningfully better than stable). Between -15% and -40% below baseline, the score drops from 85 toward 40 (real decline starting). Below -40% scores under 40 (something has fundamentally changed).
Business-day inactivity — days since last activity counted in business days only (excludes weekends). Critical threshold at 14+ business days, not the current system’s 7 calendar days which falsely flags holiday weeks.
WO throughput trend — WOs created this period vs prior, as a secondary signal to detect whether new business is flowing in or drying up, independent of overall activity noise.
Design principle: stability is the goal state. A tenant like NATSPD fluctuating between 5,800 and 6,900 actions/week is perfectly healthy and should score 85–100 on trend. The old model would have scored this as "flat" or "slightly declining" — the baseline-band approach recognizes it as exactly where a mature tenant should be.
Financial health (10%)
Tracks whether the tenant is processing payments through the system. Intentionally lower-weighted because payment drop is a lagging indicator — by the time payments stop, the tenant has already disengaged.
Payment recency — days since last processed payment. Relaxed threshold: critical at 30+ days to accommodate shops that batch weekly or biweekly.
Payment volume vs baseline — 30-day total compared to tenant’s own 90-day monthly average, not a fixed dollar threshold.
Finix/checkout integration — whether they’re actively using Speedpoint’s payment processing via checkout sessions. Creates significant switching costs.
Feature adoption (15%)
The single home for measuring how deeply embedded Speedpoint is in the tenant’s operations. This is where breadth (how many features) and depth (how deeply integrated) are scored. A tenant that hasn’t adopted a feature is only penalized here — never in Product Usage or any other component.
Sticky feature checklist (10 areas) — binary active/inactive for: work orders, quoting, scheduling, purchase orders, payments, time tracking, leads, shipping, documents, approvals. Each scored from activity_log subject matches in the last 30 days.
Shop floor penetration (additive bonus, never penalizes) — a graded bonus for tenants that have adopted labor time tracking. Measures: tech adoption ratio (distinct techs clocking / total users), WO clock coverage (distinct WOs clocked / total active WOs), and labor log volume (hours/month). A tenant with zero labor logs simply gets no bonus here — they are NOT penalized twice. A tenant like NATSPD with 4 techs clocking 539 hrs across 62 WOs gets a meaningful boost because that level of shop floor integration represents dramatically higher switching costs. Only ~3 of 30+ tenants currently use labor logging.
Integration depth — whether the tenant has adopted platform services: Finix payment processing, Telnyx/Twilio telephony, QuickBooks sync, and the customer portal.
Advanced feature usage — activity in newer capabilities: checklist submissions, document templates, entity approvals.
Design principle: no double-counting. If a tenant hasn’t adopted time tracking, they lose points once in the feature checklist (4/10 instead of 5/10). They are NOT also penalized in Product Usage for having zero labor logs. Product Usage measures intensity of what’s used; Feature Adoption measures breadth and depth of what’s been adopted.
Support health (15%)
Gauges product experience quality by analyzing bug ticket history from the Notion issues database.
Production bug count — bugs filed against the tenant in 90 days, identified by tenant code in the "Customer / Team" field.
Priority-weighted score — Hotfix = 5, Critical = 4, High = 3, Medium = 2, Low = 1. Higher severity bugs carry more weight.
Open/unresolved bugs — count of bugs still in non-complete statuses. Each unresolved bug applies an additional penalty; any open Hotfix or Critical sitting 14+ days tanks the score.
Resolution velocity — average days from "Reported On" to "Done Date". Fast resolution (same-day Hotfix fixes) partially offsets high bug volume.
Engagement (10%)
Measures the communication relationship between Speedpoint’s team and the tenant. For a sticky ERP, lower communication generally means a healthier tenant — they’re self-sufficient.
Call volume and direction — outbound (Speedpoint-initiated) and inbound (tenant-initiated) calls from Close CRM in the last 90 days. High inbound volume may signal frustration; high outbound with low usage may signal disengagement outreach.
Days since last contact — how recently the success team has been in touch.
Usage cross-reference — the critical nuance. Low communication + high usage = "happy silence" (score 100). Low communication + declining usage = "giving up silence" (the most dangerous churn pattern). This cross-reference prevents the score from penalizing healthy self-sufficient tenants.
Lifecycle stage — onboarding (< 90 days), established (90 days–1 year), mature (> 1 year). Higher communication volume is expected and healthy during onboarding; thresholds adjust accordingly.