One page, plain English: what each metric measures, how a person's score is built, why we changed the model — and why a score can still move a little when someone's off shift.
Every team member's headline score is built from two things — how well they upsell across their recent work, and how much recognition they've had lately. Nothing else.
We look at the window of transactions covering each person's most recent 300 main courses — not the last week or month. For a busy server that's a couple of weeks of shifts; for a part-timer it's a longer stretch. Everyone is judged over the same amount of work, not the same amount of calendar.
Within that window we work out each behaviour — sides attached to mains, premium wine, coffees, and so on (full list below) — and compare it to the target we've set for that behaviour.
Each behaviour has three settable numbers per pub — Collar (score 0 at/below), Target (earns the on-target score) and Cap (score 100 at/above). Hitting target earns the on-target score; climbing toward the Cap climbs toward 100; falling toward the Collar drops toward 0. (Full curve in the table below.)
Each behaviour matters more or less, so we take a weighted average — the behaviours we care about most count for more. A behaviour we can't measure yet (no data in the window) is left out of the average rather than scored as a zero, so it never unfairly drags someone down. That blended number is the sales score.
The precise version of the four steps above — the same logic that runs in the engine, in the order it runs. Useful when someone asks “but how, exactly?”
For each member we find the span of transactions covering their most recent 300 mains sold (the window size is tunable — we can trial 300 / 600 / 1000 without a redeploy). Sell your 301st and the oldest main drops off the back. Under 300 mains in your whole history and you're flagged provisional — the score shows but isn't yet firm.
Within the window we calculate the member's real figure for every switched-on metric — sides %, ASPH, drinks per cover, premium wine, coffee %, and so on. Productivity is the exception: it's their own sales ÷ their own rota hours over 28 days. Any metric we can't calculate for that person (no data, or no rota hours) is skipped, never counted as a zero.
Each actual is mapped onto the curve using the three numbers set for that metric at that pub: at/below Collar → 0; straight line up to the on-target score at the Target; straight line on to 100 at the Cap; at/above Cap → 100. (Leave Collar/Cap blank and it defaults to Collar 0 and Cap = double the target — so nothing changes until a value is set.)
base = round( Σ(metric score × weight) ÷ Σ(weight) ) — a weighted average across only the metrics that actually produced a score. The behaviours we care about most carry more weight; unmeasurable ones are out of the denominator entirely, so they can't drag anyone down.
Test Player score = min( 100, base + shout-outs in the last 28 days ). Each signed-off shout-out received in the rolling 28-day window adds a point. There is no blunt overall floor — the flooring is done per-metric by each Collar, which is where it belongs.
Weights, Targets, Collars and Caps are all set in The Selector Simulator as a draft you preview against real team data. Nothing moves for anyone until you press Save & apply, which publishes the same numbers to the league, Coach, Analytics and the Test Player app at once — one source of truth, everywhere.
Every behaviour is scored 0–100 against three numbers we set for it — Collar, Target and Cap. Each one is settable per metric, per pub, so a bar the Griffin can reach and a bar the Tap can reach don't have to be the same.
| Where the actual lands | Score earned |
|---|---|
| At or below the Collar | 0 |
| Between Collar and Target | climbs 0 → on-target |
| On the Target | the on-target score |
| Between Target and Cap | climbs on-target → 100 |
| At or above the Cap | 100 |
Collar — the floor for that behaviour: at or below it you score 0 on that metric (it does not hide the person from the league — it only shapes this one metric).
Target — meeting it exactly earns the on-target score (the pass-mark: 50/60/65/70/75, chosen once for the whole estate — see below).
Cap — where full marks (100) begin. This fixes the old problem where you had to double the target to max a metric, which was impossible for some. Set the Cap to where genuine excellence actually sits for that behaviour.
The on-target figure is a choice, not a fact. Set it at 50 and a team hitting every target reads as 50 — making solid people look average. Set it at 75 and hitting the targets we've agreed reads as our “Test Player” standard, with only beating them pushing toward 100.
Nobody's actual selling changes when we move this dial — we're only deciding where the pass-mark sits. Collar and Cap shape each metric's difficulty; the on-target dial sets what hitting-target is worth.
This is the key one, and the answer is reassuring: your best servers are in the 60s because the pass-mark is 50, not because they're short of a genuine 75.
Remember what a 63 means on today's scale. When “on-target = 50,” the only way to score in the 60s is to be beating your targets on balance. Your best people are already performing at a Test Player level — the old scale just capped “meeting target” at 50 and hid it.
Move the on-target dial to 75 and the same performance — same selling, nothing changed — re-maps like this:
| How they're performing | Score today (pass-mark 50) | Score at pass-mark 75 |
|---|---|---|
| Nothing sold | 0 | 0 |
| Halfway to target | 25 | 38 |
| On target | 50 | 75 |
| Beating target (1.5×) | 75 | 88 |
| Double the target | 100 | 100 |
The lift is biggest exactly where your best people sit — at and just above target. So a server sitting at 63 today lands in the high-70s once the pass-mark is 75. Their due, without touching how they sell.
Moving the dial doesn't make 75 easier to reach — it sets what hitting-target is worth. Whether hitting-target is realistic is entirely the targets question. The dial sets the reward; the targets set the difficulty. Set them together and 75 means “genuinely good and reachable,” not “unrealistic.”
And it doesn't flood everyone to the top. Because you only reach 75 by being at-or-above target on your weighted metrics, your middle moves up into the low 60s and developing servers into the 50s. The ranking is untouched — you're relabelling the scale, not reshuffling the people.
“Our best people were already performing at a Test Player level — the old scale just capped ‘meeting target’ at 50 and hid it. We've set meeting-target to 75, so the score finally shows what they're doing.”
Everything below is a live preview. Nothing changes for anyone until you press Save & apply, and it's reversible.
It has On-target and Window size buttons, a live estate average, and every person's score.
On-target 75 does most of the work. Window 600 (or 1000) lets occasional upsells — premium wine, named reviews — actually land, which lifts your best sellers fairly. Watch every number update instantly.
This is your reality check on the targets. If the estate is at ~85–95% of target, 75 is a healthy stretch. If it's down at ~60% on a metric, that target is too high — nudge it down to where good (not perfect) performance sits.
If anyone lands in the 90s, a target is soft — nudge it up so 75 stays earned. When it looks right, Save & apply pushes it to the league, Coach, Analytics and Test Player at once.
The dial (75) sets the reward; the targets set the difficulty. Preview both together until your best sit in the high-70s and 75 reads as “does everything we ask” — earned, not given.
These are the upsell behaviours that can make up the sales score. Which ones are switched on, their targets, and their weights are all set on the Metrics screen — so this list is the vocabulary, and that screen is the live settings you can show on-screen.
How often a side dish is sold alongside a main.
How often a main is turned into two or three courses.
Olives, bread and pre-meal nibbles attached to a table.
After-dinner coffees — the natural end-of-meal upsell.
Drinks sold to guests who are also eating.
Revenue from premium bottles — trading guests up, not just selling more.
250ml over 175ml — the by-the-glass upsell.
Doubles over singles on spirit serves.
Offering (paid) still or sparkling to the table.
Average food spend per head — the sum of good food upselling.
Average drinks spend per head.
Guest reviews that name this person — service that got noticed.
How likely guests are to recommend the pub. Shared by the whole team at that pub — everyone rows together on guest experience.
Productivity is scored per person: their own sales ÷ their own rota hours over the last 28 days, against a £-per-hour target — so it rewards how much each individual sells for the hours they worked, not the whole team's staffing. If someone has no rota hours in the window we simply leave the metric out for them rather than score it as a zero, so it never drags a person we can't measure. (The pub-wide revenue-per-hour view still lives on the pub dashboards for Lee's labour model.)
The old score measured everyone over a fixed calendar window — the last 7, 30 or 90 days. That had one real flaw, and it's the flaw that started all this.
In one sentence for the room: we now judge people on a fixed amount of work, not a fixed amount of time — so a quiet spell can't quietly move your score.
This is the subtle one, and there's a clean answer. Split the score into its two halves and it's obvious which part can move.
While someone is off shift they ring no new mains, so their “last 300 mains” are exactly the same mains as before. Every calculation lands on the same numbers. The sales score cannot move on selling while they're off — that's the whole point of the change.
So the only thing that can move is the recognition bonus — the shout-outs from the last 28 days. And that can go either way, which is exactly what you're seeing:
Someone gives them a new shout-out, or a manager signs off one that was pending. Recognition doesn't require being on shift — you can be praised for last week's brilliant service today. Bonus rises, score rises.
A shout-out they earned more than 28 days ago rolls off the back of the window. Because they're not on shift, they're not earning fresh ones to replace it. Bonus falls, score falls.
That's the honest, complete answer: the selling part is frozen while you're off; the recognition part keeps breathing over a rolling 28 days, so it can tick up when you're praised and down when old praise expires. It's a feature, not a glitch — recent recognition is meant to be recent.
No. The scores dropped because the new window is measured over a fixed amount of work and the pass-mark was left low. The selling is the same — we're re-setting where “good” sits so the numbers reflect it honestly.
Because a month punishes people who work less and flatters people who work more. 300 mains is a fixed amount of work, so everyone is measured on the same footing — and a quiet week can't move it.
Yes — everyone is scored on the same behaviours, the same targets and the same 300-main yardstick. The only per-pub piece is Group NPS, which the whole team shares.
A headline score of 75 or more, once they've sold their first 300 mains (until then they're still ‘building’ and we don't rank them). With the pass-mark set at 75, that means: consistently doing everything we ask.