SaaS & Customer Support// definition

Draft acceptance rate: three outcomes it has to separate

In short

Draft acceptance rate is only informative when it separates 3 outcomes: sent unchanged, sent after an agent edited it, and discarded without being used. Collapsed into one percentage it measures adoption at best and nothing at worst — and a very high figure almost always means the denominator is quietly dropping the drafts agents never opened.

Key takeaways

  • 3 outcomes, not 1 rate: sent unchanged, sent after edits, discarded. Report all 3 or none.
  • The middle outcome carries the signal. What agents change is what the system is getting wrong.
  • A rate above about 90 per cent is usually a denominator that excludes unopened drafts.
  • Sent unchanged is not the same as correct — an unread draft ships whatever is in it.
  • Watch the distribution of edit distance, not its mean. Two peaks mean two different problems.

Draft acceptance rate is the share of generated drafts that an agent actually used, and it is worth reporting only when it splits into 3: sent with no change, sent after the agent edited it, and discarded. Those are 3 different verdicts on the system. One says the draft was right; one says it was close and names what was wrong; one says it was useless or slower than typing. Averaged into a single percentage they cancel each other out.

The middle outcome is the one worth building instrumentation for. A discarded draft tells you something failed; an edited draft tells you exactly which sentence failed, in the agent's own words, at no labelling cost. That is why acceptance is a measurement question before it is a model question. What a draft has to carry for any of it to be recordable is set out in what a drafted reply must contain before it is sent.

Three verdicts, and the event that proves each one

OutcomeThe event that establishes itWhat it actually tells you
Sent unchangedOutbound body is byte-identical to the draft after signature and greeting normalisationEither the draft was right, or nobody read it. On its own it cannot distinguish the two
Sent after editsOutbound body differs from the draft, and the draft was open when the edit beganThe most useful record you have: what was wrong, sentence by sentence
DiscardedDraft existed, agent sent a reply, no textual overlap above your thresholdThe draft was wrong, off-voice, or slower to fix than to replace
Never openedDraft generated, agent never expanded or focused itAn adoption or interface problem, not a quality one. Keep it out of the quality rate
No draft offeredGenerator refused, retrieval empty, or the intent was out of scopeCoverage, which is a separate number and should never sit in this denominator
The 3 outcomes, their evidence, and what each is evidence of

Note the last 2 rows. They are not outcomes of a draft; they are outcomes of the system deciding whether to draft at all. Folding them in is the single most common way an acceptance figure becomes meaningless, and it moves the number in whichever direction the person reporting it prefers.

Five ways the denominator quietly flatters you

  • Unopened drafts excluded. The population becomes drafts agents already chose to engage with, which is circular — and it is why very high figures should be read as a bug report about the query.
  • Internal notes counted with public replies. A note has a different audience and a different failure cost — see the internal note the customer never reads. Mixing them makes the rate move when the mix moves.
  • Regenerations counted as separate drafts. One agent pressing regenerate 3 times before sending reads as 33 per cent or 100 per cent depending purely on how you group.
  • Merged and closed tickets left in. A draft on a ticket that was merged away was never sendable by anyone, and belongs outside the population rather than in the discard bucket.
  • One pilot cohort standing in for the team. Volunteers accept more; a fall at general rollout is composition, not regression — as the staging in introducing drafts to a team that did not ask for them expects.

Four cases where the outcome is genuinely arguable

  1. The agent copies the draft into a fresh compose box. Textually that is acceptance; in the click stream it is a discard followed by an unrelated reply. Resolve it on text similarity between sent body and offered draft, with 1 threshold for the whole team.
  2. The agent pastes half of it. Count it as an edit with a large distance, not a discard. A correct explanation with a wrong opening is a voice problem, not a knowledge problem.
  3. The agent was simply faster. On short intents a good agent types the reply before the draft renders. Log time-to-draft: a discard at 400 milliseconds and one at 9 seconds are different events.
  4. The draft was accepted and the ticket reopened. Acceptance is a 5-second judgement under queue pressure, not a correctness verdict. Reopen rate has to be reported against the same drafts.

Edit distance, and why its shape matters more than its mean

Once the 3 outcomes are separated, the headline rate stops being interesting and the edited bucket starts. The measurement is the distance between the generated text and the sent text, and the useful form is a distribution, not an average.

  1. Normalise first. Strip the helpdesk's appended signature, the templated greeting and any merge fields rendered after generation. Skip this and every draft looks edited, because the platform edited it.
  2. Diff at token level, not character level. Levenshtein over characters reports a rewritten sentence and a corrected spelling as comparable events; token-level diff separates them.
  3. Bucket rather than score. Cosmetic, substantive and rewrite is enough — 3 buckets with a written boundary beats a continuous metric nobody can interpret at a standup.
  4. Plot the distribution weekly per intent. A single mean hides the only pattern that matters: 2 peaks means 2 different problems, typically a voice problem on short replies and a knowledge problem on long ones.
  5. Cluster the identical edits. When the same deletion appears across dozens of drafts it is a corpus artefact, not agent preference — the fix is in agents deleting the same sentence from every draft, and no amount of prompt tuning replaces it.

An edited draft is a labelled example somebody produced for free, under real conditions, with the customer in front of them. There is no evaluation set you can buy that is worth more.

Reading a suspiciously good number

A rate in the high nineties is almost never a strong model. In order of likelihood it is a denominator excluding unopened drafts, a population narrowed to 1 easy intent, a comparison that normalises away real edits, or a team that has learned drafts are safer to send than to argue with.

All 4 are answerable from event data, if the events exist. Acceptance is reconstructed from the draft record, the compose events and the outbound message, on the same log as everything else in drafted replies and agent assist — the case for treating that log as the system of record is the audit trail is the real record, not the ticket. Wiring those events is a small MVP and product build inside our SaaS and customer support work, and it separates a number you can act on from one you can only quote.

Frequently asked questions

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

What counts as an edit if the helpdesk appends a signature automatically?

It does not count — normalise it away before diffing. Signatures, templated greetings and merge fields rendered after generation are platform edits, not agent edits, and leaving them in makes every draft look modified. Define the normalisation once, in code, and apply it identically to the draft and the sent body.

Is a high draft acceptance rate a good sign?

Not on its own, and above roughly 90 per cent it is usually a denominator problem. Check whether unopened drafts are in the population, whether refusals and out-of-scope tickets were excluded, and whether the figure covers one narrow intent. A genuinely high rate on a broad intent mix, with the source panel being opened, is a real result; the same number without those conditions is an artefact.

Should discarded drafts be treated as failures?

Only after you know why they were discarded, because 2 of the common reasons are not quality failures at all. A draft the agent beat to the reply is a latency finding, and a draft discarded on a ticket that was merged away was never sendable. Log time-to-draft and ticket disposition next to the outcome, and the discard bucket splits into a fixable part and a noise part.

How often should acceptance be reviewed?

Weekly for the distribution, and on every change to the prompt, the retrieval corpus or the model. The weekly read is for drift; the per-change read is for causation, and it only works if the population and the normalisation are frozen between comparisons.

  • measurement
  • agent assist
  • acceptance rate
  • edit distance
// 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