The Potential Gap
What 10,200 outfits reveal about the distance between the score and the ceiling
OutfitScore has always shown a score. It also shows a quieter second number most people read once and forget: the potential. This report is about the distance between the two — how big it is, what it is made of, and why the number above the score behaves the way it does.
The tempting headline is that the model is telling you that you have fifteen points of room. The honest headline is more specific. The gap is not a promise and it is not a plan. It is a second model output, measured on the same frozen snapshot as the first, and on this data it has a shape: wide at the bottom, narrow at the top, and bounded almost never by a downside.
Section 1Methodology
The unit of analysis is one row in the OutfitScore analyses table. I keep a row if
analysis_type is fashion or complete, a numeric overall
score can be read from overall_score, score, or total_score
under the same numeric-regex guard used by seo_stats_service, and a numeric
potential_score is present and falls between 0 and 100. Roast, makeup, body-type,
color-season, and accessory-only analyses are excluded. Soft-deleted rows are not filtered: a
deleted analysis is still a real observation of how the model labelled an upload.
The window is every qualifying row then in production:
27 September 2025 through 14 October 2026. The scored corpus on that window is
21,778 rows. Only 10,200 of them (46.8%) carry a potential score, and the coverage
is not random: every row in this report is a fashion analysis. The complete
pipeline does not emit a potential field on this snapshot. That asymmetry is a property of the
product, not a filter I applied, and it bounds every claim below.
The gap is defined as potential_score − score, in points, on the same 0–100 scale as
the headline. It is a signed number. It is not clamped at zero, which matters in Section 5: a
handful of rows do carry a potential below the current score, and the report keeps them.
gap = potential_score - score
keep the row when score ~ '^[0-9]+$'
and potential_score ~ '^[0-9]+$'
and 0 <= potential_score <= 100
Section 2The shape of the gap
Start with the distribution, not the mean. The mean gap is 14.9 points, but a mean hides whether the corpus is a tight cluster or a long spread. It is neither. Half the rows sit between 10 and 19 points, and the single most populated bucket is 15–19.
| Gap (points) | Rows | Share | Cumulative |
|---|---|---|---|
| 0 or less | 103 | 1.0% | 1.0% |
| 1–4 | 111 | 1.1% | 2.1% |
| 5–9 | 1,329 | 13.0% | 15.1% |
| 10–14 | 3,464 | 34.0% | 49.1% |
| 15–19 | 3,608 | 35.4% | 84.5% |
| 20 or more | 1,585 | 15.5% | 100.0% |
The gap is unimodal and sits just above the middle of a 0–100 scale. A row is far more likely to carry a gap between 10 and 19 points (69.4% of the corpus) than to carry one under 10 (15.1%) or over 20 (15.5%). The tails are thin. The 15-point distance you see on a typical result is not an outlier — it is the mode.
Advertisement
Section 3The higher you score, the smaller the distance
Split the 10,200 rows by the current score and the gap sorts itself. It is monotone: every step up the score ladder cuts the distance to the ceiling. An outfit scoring below 60 sits 19.2 points from its potential. At 85-plus the distance is 5.8 points — less than a third.
| Current score band | Rows | Mean score | Mean potential | Mean gap |
|---|---|---|---|---|
| Below 60 | 2,896 | 50.4 | 69.6 | 19.2 |
| 60–74 | 6,121 | 65.8 | 79.9 | 14.1 |
| 75–84 | 901 | 78.4 | 87.4 | 9.0 |
| 85 and above | 282 | 88.6 | 94.4 | 5.8 |
Across the full corpus the correlation between the current score and the gap is −0.58: a moderate, negative, and very stable relationship. The higher the score, the smaller the gap, and the relationship is not driven by a handful of extremes. This is the opposite of a vanity number. A weaker outfit is the one carrying the loudest "you could do better," and a strong outfit is the one the model has almost nothing left to add to.
Section 4Potential is not a fixed ceiling
The most common reading of a "potential" number is that it is a ceiling anyone could reach if they did everything right — a flat 90 for everyone. The data say otherwise. Potential tracks the outfit. Below-60 outfits are told they could reach an average of 69.6. Outfits at 85-plus are told 94.4. The model is not offering the same ceiling to everyone; it is offering a ceiling scaled to what it can already see.
| Potential band | Rows | Share |
|---|---|---|
| 70–79 | 815 | 8.0% |
| 80–89 | 4,847 | 47.5% |
| 90–100 | 4,311 | 42.3% |
| Below 70 | 227 | 2.2% |
Two things follow. First, potential clusters high — 89.8% of rows are told their ceiling is 80 or above. Second, the correlation between potential and the gap is −0.016: essentially zero. A high potential tells you almost nothing about how far away it is. The distance you would have to travel is set by the current score, not by the ceiling. A 55-scoring outfit with a 90 potential has the same 35-point gap whether the potential is 90 or 95; the score is what moved.
Section 5The one-directional rule
Of the 10,200 rows, just 28 — 0.3% — carry a potential below the current score. In practice the field behaves like a maximum: potential is almost always greater than or equal to the score. That is worth stating plainly, because it is a design fact, not a finding. The gap has a floor near zero by construction. A report that reads a positive gap as "room to improve" is reading a number the model is structurally reluctant to let go negative.
Section 6Stable across groups, drifting across time
The gap barely moves between the two largest gender groups. Female-labelled rows average 14.8 points (n = 4,716); male-labelled rows average 15.1 (n = 4,760). A half-point difference on a six-point SD is not a finding; it is noise at the published precision.
Across months the gap does move, and this is the one place a reader should be cautious. Monthly means on cells of 100-plus rows range from 16.3 points in March 2026 down to 12.3 in July, then back to 14.2 by September. A drift that small, on a corpus that is also changing size and mix, is exactly the kind of series that invites a story it cannot support. I report it so a reader does not reinvent it as a trend. It may be model-version drift, cohort mix, or both. This snapshot cannot separate them.
| Month (2026) | Rows | Mean gap |
|---|---|---|
| March | 1,541 | 16.3 |
| April | 2,135 | 17.4 |
| May | 1,510 | 15.2 |
| June | 1,198 | 13.2 |
| July | 982 | 12.3 |
| August | 1,063 | 13.5 |
| September | 1,145 | 14.2 |
| October (partial) | 626 | 12.6 |
Section 7What this report is not
It is not a promise. The potential score is a model output on a single photograph, not a human stylist's ceiling and not a guarantee of what a different photograph would score.
It is not a coaching plan. This report counts the distance; it does not say which change closes it. The hem, colour, and context reports study single levers. This one is about the size of the number the model adds, not how to move it.
It is not causal, and it is not a live figure. Nothing here says "fix X and gain Y points." The frozen snapshot is the whole claim.
Section 8Limitations
The corpus is voluntary. People who upload to an AI rater are not a random sample, and the fashion
subset that carries a potential score is a further self-selection: complete analyses
are entirely absent, so this report describes the fashion pipeline only.
Potential is free text from the model, guarded to 0–100 by a numeric regex. A non-numeric or out-of-range value drops the row rather than being coerced. That is conservative but it means the 46.8% coverage could under- or over-represent whatever the model does when it declines to emit a potential.
The gap is a difference of two model outputs that share an underlying estimate. When the current score and the potential move together — and they correlate at 0.82 — their difference is a partial re-measurement, not two independent judgements. The gap is real as model output; it is not an independent second opinion.
The 0.3% negative-gap rate is small but not zero. Those rows are kept. Dropping them would flatter the one-directional reading in Section 5.
Section 9Conclusion
On 10,200 fashion analyses carrying both numbers, the current score averages 63.2 and the potential 78.0. The gap averages 14.9 points (median 15.0, Q1 12.0, Q3 17.0, SD 6.6), is unimodal, and puts 69.4% of rows between 10 and 19 points. It shrinks as the score rises — 19.2 points below 60, 5.8 points at 85-plus — at a correlation of −0.58. Potential is not a flat ceiling: it tracks the outfit (69.6 for below-60 rows, 94.4 for 85-plus) and correlates with the gap at −0.016. Only 0.3% of rows carry a negative gap. No causal lift is claimed.
The honest sentence for a journalist is: this model keeps a second number roughly fifteen points above the first, and the better the first, the closer the two sit. If you want the engine to look at your own frame, the tool is the same as it was: the free AI outfit rater. This page is the study. Pitch this URL.