Skip to content
Template9 min read·Updated

Sales contest tracker template and standings layout

A sales contest tracker records one row per rep per day with the raw counts, the computed points, a frozen personal baseline and a guardrail-eligibility flag. Standings display rank, daily points, running total, gap to the position immediately above and a baseline index. Most-improved is contest rate divided by frozen baseline rate, with a baseline floor so low starters cannot inflate the ratio.

On this page

A contest tracker needs four things a spreadsheet of totals does not give you: raw counts kept separately from computed points, a personal baseline frozen before the contest was announced, an eligibility flag per row so guardrail rejections are visible rather than silently deleted, and a standings view that shows the gap to the position immediately above rather than the gap to the leader. This template specifies the fields, the daily layout, the most-improved arithmetic with a worked example, and the six numbers to compute in the post-contest review. It works as a spreadsheet, and it is what live leaderboards compute automatically.

Fields to track

One row per rep per day. Daily granularity, not weekly totals — you cannot reconstruct a participation curve from weekly rollups, and the participation curve is what tells you whether the contest is alive.

FieldTypeSourceWhy it is there
dateDateSystemDaily rows make the participation curve computable
rep_idIDCRMStable across name changes and re-hires
teamTextRosterNeeded for team battles and for territory analysis afterwards
tenure_bandTextRosterNew starter / under 12 months / over 12 months. Drives cohort separation
metric_1_countmetric_n_countIntegerCRMRaw counts, stored separately from points
pointsNumberComputedRecomputable from raw counts if a weight changes
eligibleBooleanGuardrail ruleRejected rows stay visible; deleting them destroys the audit trail
rejection_reasonTextGuardrail ruleThe most useful column in the whole sheet at review time
baseline_rateNumberFrozen pre-announcementDenominator for the improvement index
streak_daysIntegerComputedConsecutive days with any scored activity
adjudication_noteTextManualDisputes, manual adjustments, and who approved them

Two rules about this schema. Never overwrite raw counts with points — if you discover on day nine that a weight is wrong, you want to be able to recompute the whole period rather than argue about it. And never delete an ineligible row. A guardrail that rejects fifteen entries and leaves no trace looks identical to a guardrail that never fired.

Pull the counts from the CRM the team already works in — Salesforce, HubSpot, Pipedrive, Zoho, Close or Google Sheets — rather than from self-reported figures. Self-reported activity is the single largest source of contest disputes.

Daily standings layout

This is the view reps see. Six columns, no more.

#RepTodayTotalGap to nextIndexStreak
1Dana344121.1811
2Priya41396161.339
3Sam22330661.2511
4Marco38281491.557
5Lena121481331.133
6Tom19132161.336

Four deliberate choices in that layout:

Gap to next, not gap to leader. Tom is 280 points behind Dana and 16 behind Lena. The first number ends his contest; the second starts it. Displaying distance to the leader is the fastest way to lose the bottom half of a roster by the second week.

"Today" sits before "Total". Cumulative totals harden as a contest progresses and stop being actionable. The daily column always resets, so there is always a race that can still be won.

Index is visible from day one. The improvement index gives every rep a number that is theirs to move regardless of territory or tenure. Publishing it only when the contest is already flagging looks like a rescue; publishing it from the start makes it a second, parallel race. More on standings design in the leaderboard practices guide.

Streak, not badge count. Streaks measure consistency, which is the behaviour most contests are actually trying to build. Badge totals mostly measure how long someone has been on the team.

Computing most-improved against a personal baseline

Most-improved is the prize that keeps a contest competitive on a team with a wide performance spread. It is also the prize most often computed wrongly.

The baseline

  • Window: the eight working weeks immediately before the announcement date.
  • Statistic: the median weekly rate, not the mean. At eight data points, one exceptional week moves a mean enough to matter.
  • Frozen: computed and published before the contest is announced. A baseline calculated after reps know a most-improved prize exists can be sandbagged, and it will be.
  • Eligibility: at least four weeks of history. New starters go into a separate cohort with their own prize rather than being handed an unbeatable index off a tiny denominator.

The index

index = contest weekly rate ÷ baseline weekly rate

Applied to a six-rep team running a demos-held contest:

RepBaseline demos/wkFloored baselineContest demos/wkAbsolute rankIndexImproved rank
Dana11.011.013.011.185
Priya9.09.012.021.332
Sam8.08.010.031.254
Marco5.55.58.541.551
Lena4.04.04.551.136
Tom1.53.04.061.332=

Dana wins the absolute board and finishes fifth on improvement. Marco finishes fourth in raw volume and first on improvement. Those are two genuinely different pieces of information about the same period, which is the point of running both prizes.

Why the floor exists

Tom's true baseline is 1.5 demos a week. Without a floor, his index is 4.0 ÷ 1.5 = 2.67 and he wins most-improved by a distance for adding two and a half demos a week — less absolute effort than anyone else on the board. With a floor of 3.0 applied to the denominator, his index becomes 4.0 ÷ 3.0 = 1.33 and he ties for second on merit.

Set the floor at whichever is higher: a fixed sensible minimum for the metric, or the team's 25th-percentile baseline. Then cap the index at 2.0 so a single anomalous fortnight cannot decide the prize either.

Tie-breaks

Priya and Tom both index at 1.33. Publish the tie-break before the contest starts — the standard one is higher absolute volume in the contest window, which gives it to Priya at 12.0 against 4.0. Ties on small teams are common, not exceptional, and an unpublished tie-break turns one into an argument.

Running the post-contest review

Six numbers, computed within two days of the close, before anyone's memory of the period softens.

NumberHow to compute itWhat it tells you
Participation rateReps who scored at all ÷ rosterWhether it was a team contest or a three-person contest
Volume changeScored activity in window ÷ same activity in the prior equivalent periodWhether the contest produced anything
Winning marginLeader's total ÷ second place totalAbove roughly 1.3 and the result was settled too early
Spread ratioTop quartile mean ÷ bottom quartile meanWhether the format needs handicapping next time
Guardrail rejectionsCount of eligible = false, grouped by reasonWhich metric is easiest to pad
Post-period decayWeekly rate in the week after ÷ mean weekly rate duringWhether behaviour held or was borrowed

Post-period decay is the number most teams never compute and the one that matters most. A contest that lifts activity 40% during the window and drops 35% the week after did not change behaviour; it moved it. Read the two together, never the window alone.

Then convert readings into decisions:

  • Participation below 60% — the format excluded most of the team. Add a personal-baseline prize or switch to a team battle for the next round.
  • Winning margin above 1.3 — the outcome was settled early. Shorten the next contest or run a bracket, where each round resets.
  • One metric taking most guardrail rejections — that weight is too attractive relative to its effort. Lower it, tighten its guardrail, or drop it.
  • Post-period decay below 0.9 — reps borrowed activity from the following week. Space the next contest further out and score consistency rather than volume.

Publish the review to the team, including what the guardrails caught. A contest whose results are explained in public is a contest people trust enough to enter twice — which is the entire reason to run the second one. Pair the review with automated celebrations during the window so recognition is not concentrated at the end.

Formats to rotate into the next round are in the contest ideas library; competitions handles brackets, team battles, sprints and ladders with the tracking above computed for you. Terms used here are defined in the glossary, and you can start a 14-day trial with no card required.

FAQ

What fields does a sales contest tracker need?

One row per rep per day containing: date, rep ID, team, tenure band, raw counts for each scored metric, computed points, an eligibility flag, a rejection reason, the frozen personal baseline, streak days and an adjudication note. Keep raw counts separate from computed points so the whole period can be recalculated if a weight changes, and never delete rows that fail a guardrail — they are the audit trail.

How do you calculate most-improved in a sales contest?

Divide each rep's activity rate during the contest by their baseline rate from a window that closed before the contest was announced. Use the median weekly rate over eight weeks, not the mean. Apply a floor to the denominator — the higher of a sensible minimum or the team's 25th-percentile baseline — so a rep starting from near zero cannot win with minimal absolute effort, and cap the resulting index at 2.0.

Should a leaderboard show the gap to the leader?

No. Show the gap to the position immediately above. A rep sixteen points behind fifth place will act on that number; the same rep 280 points behind first will stop looking at the board entirely. Displaying distance to the leader is one of the main reasons participation collapses in the second week of a contest on teams with a wide performance spread.

How long after a contest should you review it?

Within two days of the close, and the review must include the week after the contest ended. Compute participation rate, volume change against the prior equivalent period, winning margin, spread ratio, guardrail rejections by reason, and post-period decay. Decay below 0.9 means activity was borrowed from the following week rather than created, which changes the verdict on the whole contest.

Why freeze baselines before announcing a contest?

Because a rep who knows a most-improved prize is coming has an incentive to lower the baseline it will be measured against. Baselines computed from a window that closed before the announcement cannot be manipulated retroactively. Publish each rep's frozen baseline alongside the rules so the denominator is visible, checkable and not open to dispute when the prize is awarded.

What does the eligibility flag do in a contest tracker?

It marks rows that failed a guardrail — a padded activity, a deal below the minimum value, a meeting with no external attendee — without removing them. Flagged rows do not score, but they stay in the data with a stated rejection reason. At review time, grouping rejections by reason tells you which metric is easiest to pad, which is the single most useful input to the next scoring model.

In the product

A competition, sized from margin

Format, duration, rules and prize split derived from your own numbers, with the break-even lift shown so the spend is defensible.

Calendar RushTeam battle · 14 days

Prize split

  • 1st$563
  • 2nd$275
  • 3rd$163
  • Most improved$250

Sized from margin

$1,250

Incremental margin
$5,002
Break-even lift
2.5%

Guardrail: meetings score on held, not booked

How competitions work

Keep reading

Design your program in about four minutes

Blueprint reads how your team sells, weights the scoring model, calibrates for fairness and hands you a competition ready to launch. No demo call, no card.

Flat team pricing · No seat minimums · Cancel anytime