2. Design a 5-Star Rating Threshold Table with Weighted Injury Categories

Why a Threshold Table Needs Weights First

A 5-star rating is only as trustworthy as the score it consumes. Before any star boundary can be drawn, the scorecard must express that a fatality is not "one more injury" than a minor one. The threshold table therefore sits downstream of a weighted injury category model: each injury category carries a multiplier, and the total weighted score per incident is the sum of category counts times their weights. The threshold table then maps that continuous score onto five discrete bands.

For this case we use a compact, auditable weight set. Weights are chosen so that a single fatal injury dominates the scale, severe injuries cluster in the upper bands, and minor injuries alone can never reach the top stars. The weights are deliberately round numbers so that reviewers can sanity-check any incident by hand.

Category codeInjury categoryWeightRationale
FFatal10One fatality should push an incident into the lowest star band on its own.
SSevere (hospitalized / life-altering)4Two severe injuries approach the fatal weight.
MMinor (treated, released)1Baseline unit; many minors accumulate slowly.
NNo injury (property damage only)0Contributes nothing to injury score.

With these weights, a weighted score is computed per incident as Score = 10·F + 4·S + 1·M. The threshold table's job is to convert that score into a star rating and to prove the resulting distribution is balanced rather than collapsed into one or two bands.

Designing the Threshold Bands

Thresholds should be derived from the score distribution, not guessed. The practical method is to compute the weighted score for every incident, sort the scores, and place cut points at target percentile boundaries. For a balanced 5-star scheme, a common target is roughly 10% / 20% / 40% / 20% / 10% across stars 1 through 5, but the exact split is a policy decision. What matters is that the cut points are explicit, monotonic, and validated against the actual data.

Assume a teaching dataset of 40 incidents with the following weighted-score summary (illustrative example values, not measured results):

StarScore band (inclusive lower, exclusive upper)Target shareExample incident countExample share
★≥ 1010%410.0%
★★5 – 920%820.0%
★★★2 – 440%1640.0%
★★★★120%820.0%
★★★★★010%410.0%

Note the direction: lower score = safer = more stars. This is a deliberate convention and must be stated once and held everywhere — in the table, in formulas, and in any chart. Reversing it silently is the most common source of misread dashboards.

Keep the band boundaries as a small lookup table on its own sheet (e.g., Thresholds!A2:B6) rather than hard-coding numbers inside formulas. When policy changes, you edit one cell range and every rating recalculates.

Building the Table in Excel

Lay out the threshold table with the lower bound of each band in ascending order, because LOOKUP and VLOOKUP(..., TRUE) require sorted ascending keys. Store the minimum score that qualifies for each star, then use an approximate match.

Thresholds sheet:
A1: MinScore   B1: Stars   C1: Label
A2: 0          B2: 5       C2: 5-Star (Safest)
A3: 1          B3: 4       C3: 4-Star
A4: 2          B4: 3       C4: 3-Star
A5: 5          B5: 2       C5: 2-Star
A6: 10         B6: 1       C6: 1-Star (Most Severe)

Incident sheet (row 2 example):
D2: Fatal count   E2: Severe count   F2: Minor count
G2 (weighted score): =10*D2 + 4*E2 + 1*F2
H2 (stars):          =LOOKUP(G2, Thresholds!$A$2:$A$6, Thresholds!$B$2:$B$6)

The LOOKUP form is intentional: it finds the largest MinScore that does not exceed the incident score, which is exactly the band definition above. Because the keys are ascending and the bands are contiguous, no gaps or overlaps are possible. If you prefer VLOOKUP, use =VLOOKUP(G2, Thresholds!$A$2:$B$6, 2, TRUE) with identical results.

Validating a Balanced Distribution

A threshold table is only acceptable once you have counted how many incidents land in each star. Build a small validation block using COUNTIFS against the star column, then compare actual share to target share.

Validation block:
J1: Stars  K1: Count  L1: Share  M1: Target  N1: Delta
J2: 5      K2: =COUNTIF($H$2:$H$41, J2)
           L2: =K2/COUNTA($H$2:$H$41)
           M2: 0.10
           N2: =L2 - M2
(repeat for stars 4,3,2,1 with targets 0.20, 0.40, 0.20, 0.10)

Read the Delta column as the tuning signal. A large positive delta on 1-star means the top band is too wide (threshold too low); a large negative delta means it is too narrow. Adjust the MinScore cut points by one or two points and re-read the deltas. Two or three iterations usually converge. A practical acceptance rule: every star band is non-empty, and no band's share deviates from target by more than about 5 percentage points.

Do not tune thresholds until the distribution "looks nice" by moving cut points arbitrarily. Each move changes the meaning of a star. Record the final cut points and the validation snapshot (counts and shares) alongside the table so the rating is reproducible and auditable.

How the Pieces Fit Together

The diagram below shows the data path from raw category counts through weighting, scoring, and threshold lookup to the validated star distribution. It is the mental model to keep while editing the workbook: weights feed the score, the score feeds the lookup, and the lookup output is what the validation block counts.

Weighted Score → Threshold Lookup → Star Distribution Category counts Fatal (F) Severe (S) Minor (M) per incident row Weights F × 10 S × 4 M × 1 N × 0 Weighted score 10F + 4S + M continuous value per incident Threshold lookup (ascending) 0 → ★★★★★ 1 → ★★★★ 2 → ★★★ 5 → ★★ 10 → ★ Validation: COUNTIFS per star vs. target share ★ 10% ★★ 20% ★★★ 40% ★★★★ 20% ★★★★★ 10% Acceptance: every band non-empty, |delta| ≤ 5 pp Adjust MinScore cut points → re-read deltas → converge tune

Common Failure Symptoms and Fixes

  • All incidents land in one star. The score range is too narrow relative to the cut points, or weights are too small. Check the min/max of the score column; if the spread is under 5, the bands cannot separate.
  • #N/A from LOOKUP. The threshold keys are not sorted ascending, or the incident score is below the smallest key. Ensure MinScore starts at 0.
  • Stars inverted. The lookup returns 5 for the highest score. Confirm the band direction: lower score must map to more stars.
  • Distribution drifts after data refresh. Thresholds were tuned to an old dataset. Re-run the validation block and re-tune cut points against the current population.
Deliverable checklist: (1) weight table with F/S/M/N multipliers; (2) ascending MinScore → Stars lookup range; (3) per-incident score and star formulas; (4) validation block with counts, shares, targets, and deltas; (5) recorded final cut points and validation snapshot for audit.

Once this table is stable, the star rating becomes a deterministic function of the weighted score, and any downstream comparison — by region, by year, or by vehicle type — inherits a rating whose boundaries are explicit and whose balance has been demonstrated rather than assumed.