Team Score · Briefing

How the Team Score Works

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.

The whole model in one line

Score = selling behaviour + recognition

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.

Sales score + Recognition bonus = Headline score (max 100)
Sales score — a weighted average of upsell habits, measured over each person's last 300 mains sold.  Recognition bonus — one point for each signed-off shout-out received in the last 28 days.  The total is capped at 100.
Building the sales score

Four steps, the same for everyone

1

Take the last 300 mains they sold

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.

2

Measure each upsell habit against its target

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.

3

Turn each one into a 0–100 score on the Collar/Target/Cap curve

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.)

4

Blend them by weight

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 algorithm in full

Exactly how the number is built

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?”

last 300 mains score each metric 0–100 weighted average = sales base
sales base + 28-day shout-outs Test Player score (cap 100)
1

Define the window: their last 300 mains

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.

2

Compute each metric's actual over that window

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.

3

Score each metric 0–100 against this pub's Collar / Target / Cap

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.)

4

Blend into the sales base by weight

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.

5

Add recognition and cap it

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.

Everything above is per-pub and reversible

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.

The scoring curve · Collar · Target · Cap

What a number actually means

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 landsScore earned
At or below the Collar0
Between Collar and Targetclimbs 0 → on-target
On the Targetthe on-target score
Between Target and Capclimbs on-target → 100
At or above the Cap100

What each of the three does

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 score is the “get us back to 75” dial

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.

The question you'll get asked

“Is 75 even realistic — our best only reach the 60s?”

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 performingScore today
(pass-mark 50)
Score at
pass-mark 75
Nothing sold00
Halfway to target2538
On target5075
Beating target (1.5×)7588
Double the target100100

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.

The difficulty is in the targets, not the 75

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.

The honest line for the room

“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.”

Before the meeting · live, reversible

How to set it — and see the real numbers first

Everything below is a live preview. Nothing changes for anyone until you press Save & apply, and it's reversible.

1

Open the Rolling-score check page

It has On-target and Window size buttons, a live estate average, and every person's score.

2

Set On-target to 75, Window to 600

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.

3

Check the “% of target” column

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.

4

Sanity-check the top, then apply

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.

One-sentence rule of thumb

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.

Every metric, plainly

What we measure

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.

Food attachment
Sides% of mains

How often a side dish is sold alongside a main.

Starters & Desserts% of mains

How often a main is turned into two or three courses.

Nibbles% of mains

Olives, bread and pre-meal nibbles attached to a table.

Coffee% of mains

After-dinner coffees — the natural end-of-meal upsell.

Drinks
Drinks with food% of mains

Drinks sold to guests who are also eating.

Premium Wine£ per 100 mains

Revenue from premium bottles — trading guests up, not just selling more.

Large Wine% of mains

250ml over 175ml — the by-the-glass upsell.

Double Spirits% of mains

Doubles over singles on spirit serves.

Bottled Water% of mains

Offering (paid) still or sparkling to the table.

Spend & satisfaction
Dry ASPH£ per head

Average food spend per head — the sum of good food upselling.

Wet ASPH£ per head

Average drinks spend per head.

Named Reviewscount

Guest reviews that name this person — service that got noticed.

Group NPSpub-wide

How likely guests are to recommend the pub. Shared by the whole team at that pub — everyone rows together on guest experience.

A note on Productivity

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.)

Why we changed the model

From “last few weeks” to “last 300 mains”

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.

The off-shift question

Why can a score still move when someone's off for a week?

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.

The sales half — frozen

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:

It can go up

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.

It can go down

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.

If they push you

Quick answers

“So did our selling get worse? Why did scores drop?”

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.

“Why 300 mains and not a month?”

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.

“Can two people be compared fairly?”

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.

“What makes someone a ‘Test Player’?”

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.