Signals, scoring and confidence.
States without scoring are opinions. This chapter turns the lens into a repeatable measurement system a data team can build, and adds the discipline most frameworks skip: knowing how much to trust each classification.
The signal rule
A signal only enters the system with a clear definition, a known source, a cadence, a directionality, a caveat, and a link to a decision or action. If nobody can name the action a signal drives, it does not get collected.
The minimum viable set (16 signals)
- Do: recency, frequency (12 months), spend value (12 months), direct channel share, browse or search intent.
- Feel: NPS, CSAT, review sentiment, complaint rate, resolution satisfaction, feedback theme tags.
- Connect: repeat after service failure, referral or advocacy behaviour, offer independence, preference-sharing depth, consent breadth.
Start here. The full inventory (40 Core and Advanced signals with per-signal specifications) comes later; the minimum set classifies a base credibly.
How scoring works
- Score each signal 0 to 100 as a percentile within a peer cohort. Cohorts follow a fixed hierarchy: brand, then market, then lifecycle stage (new 0 to 90 days, early 91 to 365, established 365 plus), then customer type. Too-small cohorts roll up a level.
- Combine signals into Do, Feel, and Connect scores using declared weights. Invert negative signals. Drop non-applicable signals and reweight.
- Decay older evidence in three bands: full weight to 90 days, medium to 180, lighter to 365.
- Band each dimension: Low (0 to 39th percentile), Medium (40th to 74th), High (75th plus). No blended single score, ever.
Example starting weights
These are configurable pilot defaults, not locked rules. Declare them before the first run, version-control them, and change them only through change control (chapter 7).
| Dimension | Signal | Example weight |
|---|---|---|
| Do | Recency | 30% |
| Do | Frequency (12 months) | 25% |
| Do | Spend value (12 months) | 20% |
| Do | Direct channel share | 15% |
| Do | Browse or search intent | 10% |
| Feel | CSAT | 25% |
| Feel | Complaint rate (inverted) | 25% |
| Feel | Review sentiment | 20% |
| Feel | NPS | 15% |
| Feel | Resolution satisfaction | 15% |
| Feel | Feedback theme tags | Diagnostic only, not scored |
| Connect | Repeat after service failure (where applicable) | 30% |
| Connect | Offer independence | 25% |
| Connect | Referral or advocacy behaviour | 20% |
| Connect | Preference-sharing depth | 15% |
| Connect | Consent breadth | 10% |
Theme tags stay diagnostic: they explain a score, they do not move it. Where a signal is not applicable (no service failure on record, for example), drop it, reweight the remaining signals proportionally, and let confidence reflect the thinner evidence.
A worked example
Take an established guest with six visits in the last 12 months. Within their cohort (same brand, same market, established lifecycle), six visits sits at the 82nd percentile, so frequency scores 82. Their complaint rate is worse than 70% of the cohort, so the inverted score is 30. Every signal scores the same way, the declared weights combine them into Do, Feel, and Connect scores, and each score lands in a band. Nothing here needs machine learning; it needs clean data and rules everyone can see.
The scoring model workbook
The facilitated engagement includes a working workbook that implements this chapter end to end: a peer cohort, raw value to percentile score, weighted dimension scores that drop missing signals and reweight, bands, the confidence check, and the state call. Two worked guests, Sam and Priya (visual brief 5), are built in with every number live, and a blank "Your guest" column classifies any guest you enter. Its thresholds and weights match this chapter's pilot defaults. Working self-serve, this chapter and Worksheet 4 contain everything needed to build the same model in your own stack.
Confidence: the honesty layer
Every dimension score carries a confidence score built from coverage (40%), freshness (25%), consistency (20%), and bias risk (15%). Two locked rules:
- A state is Firm only when confidence passes on all three dimensions; otherwise it is Provisional, and Provisional states get enrichment, not expensive action.
- High Connect requires two or more observed proxies including at least one behavioural one. Tenure or consent alone never proves trust.
Confidence bands and sector lookbacks
- Confidence bands: High 75 to 100, Medium 50 to 74, Low below 50, scored per dimension.
- Hotels and resorts: Do over 12 months, Feel over 6 to 12, Connect over 12 to 24.
- Restaurants and bars: tighter windows; frequency and visit-interval stability carry more weight.
- Travel operators: longer windows; low Do does not always mean weak loyalty when purchase cycles are long.
What good looks like
The data team has a buildable specification. The first scoring run classifies the base, shows Firm versus Provisional share honestly, and nobody pretends the blind dimension is not blind.
Chapter checklist
- Confirm a source and owner for each of the 16 minimum signals.
- Define your cohort hierarchy and lifecycle bands.
- Set the confidence thresholds and the Firm gate before the first run.
The signal specification sheet.
Purpose: specify the 16 minimum viable signals so a data team can build the first scoring run. A signal without every column filled does not enter the system.
Dimension weights are configurable pilot defaults. Start from the example starting weights in chapter 4 and record any change as a version-controlled decision.
In facilitated engagements, the scoring model workbook pre-builds this specification: raw values in, state call out, a fast way to test signal choices before the first scoring run.
The sheet
| Signal | Dimension | Source system | Cadence | Directionality | Caveat | Action it drives |
|---|---|---|---|---|---|---|
| Recency | Do | |||||
| Frequency (12 months) | Do | |||||
| Spend value (12 months) | Do | |||||
| Direct channel share | Do | |||||
| Browse or search intent | Do | |||||
| NPS | Feel | |||||
| CSAT | Feel | |||||
| Review sentiment | Feel | |||||
| Complaint rate | Feel | |||||
| Resolution satisfaction | Feel | |||||
| Feedback theme tags | Feel | |||||
| Repeat after service failure | Connect | |||||
| Referral or advocacy behaviour | Connect | |||||
| Offer independence | Connect | |||||
| Preference-sharing depth | Connect | |||||
| Consent breadth | Connect |
Cohort and confidence settings
- Cohort hierarchy for this business (brand, market, lifecycle, type):
- Lifecycle bands (default: new 0 to 90 days, early 91 to 365, established 365 plus):
- Confidence thresholds and the Firm gate, agreed before the first run:
Completion check
You are done when no row has an empty column and every signal names the action it drives. If nobody can name the action, remove the signal.