Marketplaces & Two-Sided Platforms// definition

Acceptance rate: what it measures, and when it measures the platform

In short

Acceptance rate is accepted offers divided by offers made, over a window. The platform chooses the denominator, so offers a seller never received, offers outside their real coverage and offers sent outside their working hours all deflate the number without saying anything about the seller. Correct the denominator before the metric goes anywhere near dispatch or ranking.

Key takeaways

  • Acceptance rate is conditional on offers you chose to send, so it measures targeting quality as much as seller behaviour.
  • Exclude undelivered offers, offers outside real coverage and offers outside working hours before computing anything.
  • On 1 illustrative week the same seller reads 27.5% raw and 79% once ineligible offers are removed.
  • It is a reasonable tie-break and a good ops alarm. It is not a deactivation trigger and not a standalone ranking multiplier.

Acceptance rate is the share of offers a seller accepted out of the offers they were made, over some window. The numerator is unambiguous. The denominator is a choice the platform makes every time it decides who to offer a job to, which is why an uncorrected acceptance rate is partly a measurement of your own dispatch logic.

That is not a reason to abandon the metric. It is a reason to define the eligible offer before defining the rate, and to be precise about which decisions the number is then allowed to influence.

The definition, and the half of it the platform owns

An offer has to be delivered, visible, actionable and answerable before a decline means anything, and each of those is a system property rather than a seller property. Distribution shape matters too: under a broadcast to 20 sellers, 19 decline by design, so mixing broadcast and sequential offers into 1 rate averages 2 different metrics — the distinction in the four shapes a lead can be handed out in.

Four ways the denominator lies about a seller

Offer classHow to detect itTreatment
Never deliveredNo client acknowledgement: push dropped, app killed, device offline, call never connectedExclude. A missed offer is a delivery defect, not a decline
Outside real coverageTravel time well beyond the seller's own recent job distribution, not just outside a drawn radiusExclude, and fix the coverage model that produced it
Outside working hoursTimestamp falls in hours the seller has never worked in 90 daysExclude, and treat it as an availability data problem
Unanswerable as sentNo price, no address, or an expiry shorter than the time needed to read itExclude until the payload and the expiry are fixed
Offers that must leave the denominator, and how to identify them

The arithmetic is not marginal. Take a seller offered 40 jobs in a week who accepted 11: a raw rate of 27.5%. Remove 5 offers that were never delivered, 12 that required a 45-minute drive when their jobs are normally within 20, and 9 that arrived during hours they have never worked, and 14 eligible offers remain. The same 11 acceptances now read 79%. Nothing about the seller changed between those 2 numbers.

Every offer the platform should never have sent is a free reduction in someone's acceptance rate, and the seller has no way to appeal a denominator they cannot see.

Delivery is the class most often assumed away. If offers reach sellers by phone through a masked number pool, an exhausted or misrouted pool drops them silently and the deficit lands on the seller's record — which makes sizing and recycling a pool of masked numbers a metrics problem as well as a telephony one. A daily reconciliation of offers sent against offers acknowledged, alerting on any seller whose delivery share drops, is guarded automation of the kind we build under AI agents and automation.

The loop that turns the metric into a mirror

Feed acceptance rate back into dispatch and it starts changing its own denominator. A seller whose rate dips receives fewer offers, so the next rate is computed on a smaller sample and swings harder; a favoured seller receives more and stabilises. Neither movement reflects behaviour. Left alone, this is one of the mechanisms concentrating work in a few sellers, examined in when the same five sellers take every job and one argument for capping how much one seller can win.

The behavioural loop is worse. Once acceptance carries consequences, the cheapest way to protect it is to accept everything and cancel later, which moves the failure from a moment when the job could still be reoffered to a moment when the buyer is already waiting. Pair any penalty with a cancellation measure, or the metric improves while the service degrades.

Window, floor and shrinkage: making the number comparable

  1. Fix a window that adapts to volume. The last 25 eligible offers or 30 days, whichever yields more, so a quiet seller is not judged on 3 data points.
  2. Set a floor before display. Below roughly 20 eligible offers, show the sample size rather than a percentage: 100% from 2 offers outranks 88% from 60 in every naive sort.
  3. Shrink small samples toward the market mean. With a prior weight of 10 offers at a 60% market average, a seller who accepted 3 of 4 reads 64% rather than 75%.
  4. Segment before comparing. A rate built from long-distance low-value work is not comparable to one built from short local jobs.
  5. Publish the definition to sellers: exclusion rules, window and floor, beside the number, so a disputed rate is a lookup rather than an argument.

What it may legitimately drive, and what it must never drive alone

The safe uses share a property: they change the odds of receiving work, and they are reversible within days. The unsafe ones are irreversible, or they hand a single noisy signal authority over the whole ranking.

  • May drive a tie-break. Between otherwise close candidates, preferring the seller more likely to accept cuts buyer wait with no claim about quality.
  • May drive batch size. If predicted acceptance is low, offer to 3 sellers instead of 1 — and a short accumulation window makes those offers better targeted anyway, as argued in why waiting 2 seconds beats nearest-first.
  • May drive operations. A sudden collapse in one seller's acceptance is a useful alarm, and it is usually a broken device or a changed schedule rather than disengagement.
  • Must not drive deactivation on its own. A metric whose denominator the platform controls cannot be the sole basis for removing someone's income.
  • Must not become a hidden multiplier in the score. Policy levers belong in an inspectable layer, for the same reason sponsored results belong outside the organic ranker.

Acceptance rate earns its place as 1 signal among several, with a denominator you can defend and a published definition. Which layer it belongs to — measurement, policy or sort order — is worth stating explicitly, as separated in signal, score and sort order. It is part of the matching, ranking and dispatch work we do for marketplaces and two-sided platforms, and the same discipline applies to fleet dispatch, discussed in AI in logistics operations.

Frequently asked questions

Short answers to the follow-ups this page tends to raise.

What does acceptance rate actually measure on a dispatch platform?

It measures the share of offers a seller accepted out of the offers the platform decided to send, which makes it a joint measurement of the seller and of your targeting. Two sellers with identical willingness to work show different rates if one receives offers matched to their coverage and hours and the other does not. Correcting the denominator turns it back into a statement about the seller.

Which offers should be excluded from an acceptance rate?

Exclude any offer never delivered, arriving outside the seller's real coverage or working hours, or unanswerable as sent because it lacked price, location or time to respond. Each is a platform defect rather than a seller decision, and leaving them in penalises sellers for your errors. Log the exclusion reason so the rate can be explained when it is disputed.

Should acceptance rate be used in ranking?

As a tie-break or a minor input, yes; as a dominant multiplier, no. The problem is the feedback loop: once the rate changes how many offers a seller receives, it changes its own denominator and stops being an independent measurement. Keep it explicit and bounded in the scoring layer, pair it with a cancellation measure, and never let it be the sole basis for deactivation.

How do you handle acceptance rate for a brand-new seller?

Shrink toward the market average and show the sample size instead of a bare percentage. A seller with 4 offers has no meaningful rate, and treating a small sample as a real one buries new supply before it has proved anything. A prior weight of around 10 offers at the market mean is a reasonable start, tuned so early swings do not dominate the score.

  • dispatch
  • matching
  • marketplaces
  • metrics
// shipped work

The work behind this page

Builds from our portfolio that this page draws on.

Read next

Working on something in this space?

Tell us where you are in a sentence or two. We'll tell you honestly whether we're the right team, and what a sensible first slice of the work looks like.

Start the conversation