Composite satisfaction and retention score
A customer health score is a composite metricMetricStrategyA unified metric that measures progress, health, or behaviour across the productView reference → that estimates how likely an account is to renew, expand, or churn, built from signals about how the customer actually behaves. It exists to turn a vague feeling ("this account seems shaky") into something a team can act on before the renewal date arrives. Its usefulness rises and falls on whether the signals inside it genuinely predict the future.
The health score is a native artefact of the subscriptionSubscriptionSales & RevenueA recurring subscriptionView reference →-software era. When recurring revenue depends on renewal, the cost of a silent, drifting customer becomes a central business riskRiskComplianceA risk to the product or businessView reference →, and someone has to watch for it at scale. Customer success platforms codified the answer. Gainsight, founded in 2009, is widely credited with turning health scoring from a spreadsheet habit into a managed discipline, blending product usage, support history, adoption depth, and qualitative inputs such as a manager's read of the relationship into one account-level measure.
The thinking has matured around a hard problem: which signals are leading and which are lagging. Gainsight's own writing on the indicators of churn makes the uncomfortable point that almost every signal is both. A drop in logins has already happened by the time you detect it, which makes it lagging; it may also forecastForecastSales & RevenueA revenue forecastView reference → a cancellation months out, which makes it leading. The current frontier is sentiment. Gainsight's 2025 research reports that health scores incorporating analysed sentiment from calls and tickets show materially lower gross churn than usage-only models.
There is a well-documented failure mode too: the composite-score trap. Blend enough inputs into a single green-amber-red badge and the number can look healthy while predicting nothing. One analysis found that a large share of health scores in the wild fail to predict churn at all, usually because the weights were set by intuition and never validated against who actually left.
A 400-account SaaS company builds a health score from four weighted inputs: weekly active users against licensed seats (40%), featureFeatureProduct SpecificationA product capability or featureView reference →-adoption breadth (25%), support-ticket sentiment (20%), and executive-sponsor engagement (15%). An enterprise account renewing in ninety days slips from 82 to 61. The decomposition matters more than the headline: usage held steady, but adoption breadth fell as the customer collapsed back to a single feature, and the sponsor stopped replying. That pattern, narrowing usage plus a quiet champion, has preceded three of the last five churns. The score triggers an intervention while there is still time to act, and the renewal closes.
In the Unified Product Graph, a customer health score sits in the customer success domain and binds to the thing it watches through Producthealth scored viaCustomer Health Scorehierarchy. It draws survey signal from product_health_scored_via_customer_health_scoreCustomer Health Scoretracked byNPS Campaignhierarchy and holds the value markers it counts through customer_health_score_tracked_by_nps_campaignCustomer Health ScorecontainsSuccess Milestonehierarchy. Operationally, a service design model references it via customer_health_score_contains_success_milestoneService BlueprintcontainsCustomer Health Scorehierarchy, and intervention fires through service_blueprint_contains_customer_health_scorePlaybooktriggered byCustomer Health Scorecross-domain. Modelling the score as a node with explicit inbound signals and an outbound trigger resists the composite-score trap by construction: the inputs are named and traceable, so a score that drifts out of sync with recorded churn reasons can be audited at the input level and corrected.playbook_triggered_by_customer_health_score
Type-specific fields on BaseNode
metricsobjectIndividual metrics that compose the health score
overall_scorenumberAggregate health score (0-100)
risk_levelstringCurrent risk classification
trendstringDirection the health score is moving
idstringrequiredUnique identifier (UUID)
typeNodeTyperequiredDiscriminator for the entity type
titlestringrequiredDisplay name
descriptionstringOptional detailed description
statusstringLifecycle status
tagsstring[]Freeform tags for filtering
5 phases — initial: monitoring
8 edge types connected to this entity.
product_health_scored_via_customer_health_scoreservice_blueprint_contains_customer_health_scorecustomer_health_score_tracked_by_nps_campaigncustomer_health_score_contains_success_milestoneplaybook_triggered_by_customer_health_scorenps_campaign_tracks_customer_health_scorecustomer_health_score_informs_playbookcustomer_health_score_composed_of_metric