Agent experience · 9 min read

Performance-tiered shift bidding

Fairer than seniority, and agents will tell you so, provided you get three things right. How composite scoring works, how a bid cascade runs, and why transparency is the part that determines whether it survives contact with the floor.

Shift allocation is the most emotionally loaded thing a WFM team does. Nobody has ever escalated a forecast. People escalate schedules constantly, because a schedule is not a number; it is whether someone gets to have dinner with their kids.

Most operations resolve this with seniority, because seniority is unarguable. It is also, on inspection, a fairly strange thing to reward: it says that the best predictor of who deserves the good shifts is who arrived first. It is objective, but objective and fair are not the same word.

What is actually wrong with pure seniority

  • It rewards nothing you can influence. A new starter has no path to a better shift except waiting years. That is a disengagement engine in an industry where most attrition happens in the first twelve months.
  • It entrenches. Long-tenured agents accumulate the best shifts permanently, so the worst shifts land structurally on the newest and least-supported people, exactly the group most likely to leave.
  • It is silent about performance. An agent who has been coasting for six years outranks one who has been outstanding for three. Everyone on the floor can see this, and it quietly teaches that performance is not what gets rewarded.
  • It cannot flex. When the operation needs its strongest people on the hardest intervals, seniority actively works against that.

The counter-argument for seniority is real and should not be waved away: it cannot be gamed, it cannot be accused of favouritism, and it requires no trust in management. Any replacement has to clear that bar, not just beat it on principle.

Composite scoring

A performance-tiered system replaces “how long have you been here” with a weighted score across a handful of published measures, typically including tenure, but as one input rather than the only one.

A representative weighting:

MeasureWeightWhy it is in there
Schedule adherence30%The behaviour that most directly protects everyone else’s day. Highest weight because it is the thing shift allocation is actually trading.
Quality / QA score25%Rewards doing the job well, not just being present.
CSAT20%The customer’s view. Noisy at low volumes; use a rolling window.
Attendance15%Unplanned absence is the single most disruptive input to intraday. Deliberately separate from adherence.
Tenure10%Retained on purpose. Experience is worth something and removing it entirely reads as a betrayal to long-serving staff.

Worked, across three agents:

AgentTenureAdh (30%)QA (25%)CSAT (20%)Att (15%)Tenure pts (10%)Composite
Marisol4 yrs948891976088.95
Dan7 yrs828479869583.80
Priya1 yr978278992582.55

Under seniority the order is Dan, Marisol, Priya. Under the composite it is Marisol, Dan, Priya, and Priya, with one year against Dan’s seven, is 1.25 points behind him rather than six years behind him.

That second fact matters more than the reordering. The system’s real product is not a fairer ranking; it is that Priya can see a route to a better shift this quarter. Seniority offers her nothing until 2032.

Note also that Dan keeps his tenure advantage, 9.5 points of it, the most of anyone. He loses the top slot because he is materially behind on four of five measures, not because his service was discounted. That distinction is the one you will be defending in the room, so build the weights so it holds.

How a bid cascade runs

Scoring decides order. The cascade is the mechanic that turns order into a roster.

  1. Publish the schedule set. Every shift pattern available for the bid period, with counts. Published before scores are final, so nobody can claim the shifts were shaped around the ranking.
  2. Publish scores and rank. Each agent sees their own component scores and their rank position. Component visibility is the point: a rank alone is an assertion.
  3. Open bidding in rank order, with a clock. Each agent gets a fixed window (24–48 hours is typical) to submit a preference list, not a single choice. Preference lists are what stop the cascade stalling when someone is asleep or on leave.
  4. Allocate on close. Walk the rank order; give each agent their highest still-available preference. A preference list means an absent agent still gets a sensible outcome rather than the leftovers.
  5. Handle the remainder explicitly. Agents whose whole list is exhausted get assigned, and get told they were assigned and why. Silence here is what generates escalations.
  6. Publish the outcome with the clearing position. For each shift pattern, the rank at which it was exhausted. This is the single highest-value artefact in the whole process, see below.

Two mechanics are worth adding once the basic loop is stable. Constraint checking during bidding: the system refuses bids that would break contracted hours, rest rules, or coverage floors, at the moment of bidding rather than after allocation. And a coverage guardrail: if a shift pattern is critically under-bid, the system flags it before allocation so it can be incentivised, rather than discovering the gap when the roster publishes.

Transparency is not a nice-to-have. It is the mechanism.

Here is the thing that decides whether this survives: a performance-tiered system asks agents to accept a subjective-looking input where they previously had an objective one. The only currency that buys that is visibility.

Concretely, an agent must be able to see:

  • Their component scores, not just the composite. “You scored 83” is not actionable. “Your adherence is 82 and it is 30% of the score” is.
  • The measurement window, exactly. Which weeks counted. Disputes are almost always about the window, not the weights.
  • Their rank and the distribution: where they sit, and what score would have moved them up ten places.
  • The clearing position of every shift. “The 9–5 Monday-to-Friday pattern ran out at rank 34” converts an abstract ranking into a concrete target. This one artefact does more for buy-in than any amount of explanation, because it turns the system into something an agent can plan against.
  • A dispute route with a deadline, and published outcomes when disputes succeed. A system that has never been overturned is not trusted; it is merely unchallenged.

The test: can an agent, unaided, tell you what they would have to do differently to get the shift they wanted? If not, you have replaced a system nobody liked with a system nobody understands, which is worse.

Where these go wrong

  • Measures the agent does not control. CSAT on a queue with a broken product is not a performance measure, it is a weather report. Anything in the composite must be materially within the agent’s influence, or the whole thing reads as arbitrary.
  • Windows that never reset. A bad quarter that follows someone for two years removes the incentive it was meant to create. Use a rolling window (a quarter or two) and say so.
  • Weights that move quietly. Change them between bid periods, announce it in advance, never retrospectively. One silent reweighting will cost you more trust than the previous year of correct operation earned.
  • Adherence measured against a schedule that moved. If intraday rewrites the plan of record, adherence is not a real measure and it is now 30% of who gets which shift. This is the most common technical failure, and it is why what “locked” means is a prerequisite rather than a related topic.
  • No floor protection. Consistently bottom-ranked agents getting consistently punishing shifts creates a spiral: worse shifts, worse life, worse performance, worse shifts. Cap how far anyone can fall, or accept that you have built an exit process.
  • Launching without a parallel run. Score for a full period and publish the ranking without using it. Everyone gets to argue with the numbers while the stakes are zero. This is the cheapest insurance available and it is skipped constantly.

Rolling it out

The order that tends to work:

  1. Fix adherence measurement first. If the schedule is not immutable, stop and fix that before anything else.
  2. Publish scores for one full period with no effect on allocation. Expect and welcome challenges: every one is a data-quality bug found for free.
  3. Run the first live bid with seniority retained at a higher weight than you intend long-term. Reduce it over subsequent periods as trust builds.
  4. Publish clearing positions from the very first live bid.
  5. Review weights annually, in consultation, in advance.

Where this lands, when it lands well: agents report it as fairer than seniority, not because they score well, but because for the first time the rules are legible and the outcome is something they can act on. That is the actual product. The reordering is a side effect.

Built in, not bolted on

Composite scoring, bid cascades and published clearing positions.

SureWFM runs performance-tiered bidding with per-component visibility for every agent, constraint checking at bid time, and adherence measured against an immutable plan of record, so the score means what it says it means.

Book a demo   or open the interactive demo

Related: what “locked” should mean · running an intraday loop

calculation_trace · engine v2.4.1 · interval 11:00–11:30 volume 489 contacts (revised forecast) aht 312 s workload 84.8 erlangs target 80% in 20s (SL) · occupancy cap 0.88 erlang_c raw agents → 93 (SL 83.3%) occupancy_cap 0.88 → 97 (cap binding, 93 leaves 91.1%) shrinkage 0.27 applied → required 132.9 FTE scheduled 129 − OOO 4 → net 125 → 91 productive → predicted SL 73%