Getting started

The baseline you must take before any automation

Without a before number, every after number is an opinion. Here are the five measurements to take, where the timestamps already live, and the denominator trap that makes real results look fabricated.

On this page
  1. What a baseline is and why after-only numbers are worthless
  2. The Five-Number Baseline
  3. Take it from logs, not from people
  4. Where the timestamps already live
  5. Measure the p90, or you will be judged on it
  6. The denominator trap
  7. Baseline the quality, not just the speed
  8. How long to measure, and when a baseline expires
  9. Definitions, and the check before the build starts

What a baseline is and why after-only numbers are worthless

The short answer

A baseline is a set of measurements of the current process taken before anything changes: how many units run per period and in what mix, how long one takes at the median and at the ninetieth percentile, how much of that time is work and how much is waiting, how often a unit has to be redone, and what one unit costs fully loaded. Take it from system timestamps rather than from people, over a window long enough to hold a full cycle of the process. Without it, every claim made about the automation afterwards is an opinion, and the first senior person who dislikes the system wins the argument by default.

  • 5numbers make a baseline: volume and mix, cycle time, wait time, rework rate, unit cost
  • p90is the percentile people actually judge you on, because complaints come from the tail
  • 100completed units is a practical floor before a ninetieth percentile means anything
  • 1 dayis usually enough, because most baselines can be reconstructed from timestamps you already store

The reason to care is not reporting. It is that a baseline changes what you build. Teams that measure first regularly discover that the step they were about to automate holds a small share of the elapsed time, that most of the delay is a queue nobody owns, or that the process runs a third as often as everyone believed. Each of those findings redirects the project before money is spent, which is worth more than any dashboard produced afterwards.

The Five-Number Baseline

Framework

The Five-Number Baseline

Five measurements plus one artifact. Each one exists because a specific argument happens after launch and cannot be settled without it.

01
Volume and mix

Units per period, split by variant. Mix matters as much as volume, because a shift in the mix looks exactly like a change in performance. A team that quietly starts receiving more complex cases will appear to have got slower, and an automation that only handles simple cases will appear to have improved everything while the humans absorb the difference.

02
Cycle time at p50 and p90

Measured from the trigger event to the terminal state, in wall clock hours rather than working hours, because wall clock is what the person waiting experiences. Record both percentiles. The median tells you about the typical case, the ninetieth tells you about the cases that generate complaints and escalations.

03
Touch time against wait time

Split the cycle into the part where somebody is working and the part where the item sits in a queue. Most processes are dominated by waiting, and most automation business cases are written about touch time. That mismatch is why so many projects deliver a real reduction in effort and no visible change in how long anything takes.

04
Rework and escalation rate

How often a unit re-enters an earlier state, gets reassigned, or goes to a second person. This is the quality measurement that survives contact with reality, because it comes from system events rather than from an accuracy definition nobody has agreed yet. It is also the number that tends to get worse first when an automation is subtly wrong.

05
Fully loaded unit cost

Touch minutes multiplied by a loaded hourly rate, plus any per-unit external cost such as a data lookup or a document scan. State the loaded rate and its assumptions in the same file, because someone will challenge it in the year-end review and you will not remember what you assumed.

06
The quality reference set

Fifty completed units with the correct output recorded and the name of the person who decided it. Not a measurement, an artifact, and the only thing that makes an argument about accuracy resolvable later. It also seeds the acceptance test and later a golden dataset.

The set is deliberately small. Baselines fail more often from being too ambitious than from being too thin, because a measurement plan with twenty metrics never gets finished and the project starts anyway. Five numbers and one artifact can be assembled in a few days by one person with database access.

Take it from logs, not from people

Asking a team how long something takes produces a number shaped by memory, and memory over-weights the worst case and forgets the waiting entirely. Ask people to time themselves and you get a second problem on top: the act of measuring changes the work, usually downwards, and it costs you goodwill at the exact moment you need the team on side.

Self-reportedFrom timestamps
Where the number comes fromRecall, or a week of tally sheetsEvents already stored by systems in use
BiasRounded to convenient units, worst case over-weightedSystematic gaps where a step leaves no record
Wait timeAlmost always omittedCaptured, and usually the larger half
Effect on the teamFeels like surveillance, changes behaviourInvisible to the people doing the work
Time to obtainTwo to four weeks of collectionA day of querying history
When to use itOnly for steps that leave no trace at allEverything else, which is most of it
Do not run a time and motion study to get a baseline

Handing out tally sheets tells the team that their speed is being assessed, which changes the number you are trying to measure and starts the automation project as something being done to them. If a step genuinely leaves no timestamp anywhere, sit with two people for a morning and observe instead, and say plainly that you are measuring the process rather than the person.

Where the timestamps already live

Nearly every process leaves a trail in systems you already pay for. The work is knowing which field means what, and which ones lie. Each row below has a trap attached, and every one of those traps has quietly corrupted somebody's business case.

SystemFields worth pullingWhat it gives youThe trap in it
Ticketingcreated, first response, resolved, reopenedCycle time, wait time, reworkBulk closures at period end create a cluster of fake fast resolutions
Shared inboxreceived, first reply, last messageResponse latency, thread lengthConversations that move to direct messages look abandoned mid-thread
CRM stage historystage change eventsTime in stage, loop countStages get corrected retroactively, so the timestamp is not always causal
Accounting ledgercreated, approved, postedApproval latency, volume by variantBatch posting compresses many separate decisions into one timestamp
File storagecreated, modified, version countA rework proxy where nothing else existsAuto-save inflates version counts and makes rework look worse than it is
Calendarrecurring meetings tied to the processCoordination cost per periodAlmost nobody counts this as process cost, and it is often the largest line
Six places a baseline can be reconstructed from history, and what each one gets wrong.

Because these records already exist, most baselines are retrospective rather than prospective. You are not waiting four weeks to start the project; you are querying the last six months this afternoon. Pull six months rather than one, so you can see whether the month you would have chosen was typical.

Measure the p90, or you will be judged on it

Report a mean and you will describe a process nobody experiences. Most operational work is bimodal: a large population of straightforward cases and a smaller population of complicated ones, with the average sitting in the empty space between them. The complaints, the escalations and the service level breaches all come from the second population, so that is the number your stakeholders carry in their heads.

  • Report p50 and p90 together, always. The pair describes the shape. A p90 close to the p50 means a predictable process; a p90 several times the p50 means two processes wearing one name, and they should probably be measured, and automated, separately.
  • Keep the count next to the percentile. With thirty completed units, the ninetieth percentile is essentially the third worst case, and a single unusual week moves it. Publishing a p90 without its sample size invites a comparison that the data cannot support.
  • Never mix variants in one percentile unless you also publish the mix. Otherwise a change in mix reads as a change in performance, which is the most common way an honest team accidentally reports a false improvement.
  • Store the raw distribution, not just the summary. Six months from now somebody will ask a question your summary cannot answer, and the query will be cheap to rerun only if you kept the extract.
baseline.sqlsql
-- baseline.sql, Postgres flavoured, adapt the names and keep the shape.
-- Produces the five numbers per month from timestamps you already store.
-- Run it before the build, save the output, and never edit that file again.

WITH work AS (
  SELECT
    id,
    variant,
    date_trunc('month', created_at) AS period,
    EXTRACT(EPOCH FROM (closed_at - created_at))      / 3600.0 AS cycle_hours,
    EXTRACT(EPOCH FROM (first_touch_at - created_at)) / 3600.0 AS wait_hours,
    reopened_count,
    assignee_changes
  FROM cases
  WHERE closed_at IS NOT NULL
    AND created_at >= now() - interval '6 months'
)
SELECT
  period,
  variant,
  count(*)                                                  AS volume,
  round(percentile_cont(0.5) WITHIN GROUP (ORDER BY cycle_hours)::numeric, 2) AS cycle_p50,
  round(percentile_cont(0.9) WITHIN GROUP (ORDER BY cycle_hours)::numeric, 2) AS cycle_p90,
  round(percentile_cont(0.9) WITHIN GROUP (ORDER BY wait_hours)::numeric,  2) AS wait_p90,
  round(avg(CASE WHEN reopened_count > 0 THEN 1.0 ELSE 0.0 END), 3)          AS rework_rate,
  round(avg(assignee_changes), 2)                                            AS handoffs_per_unit
FROM work
GROUP BY period, variant
ORDER BY period, volume DESC;

-- Record alongside the output, in the same file:
--   window: the exact dates covered
--   n: the number of completed units in the window
--   excluded: any filter you applied and the reason for it
--   owner: the person who ran it and can answer questions about it later
--   note: anything unusual in the window, such as a system outage or a hiring gap

The block of metadata at the bottom of that file matters more than the query. A baseline with no recorded window, no sample size and no owner becomes uncheckable within a quarter, and an uncheckable baseline is treated as a marketing number by everyone who reads it afterwards.

The denominator trap

Pick the denominator before the build, and make it the end to end cycle. Automating a step that holds a small share of the elapsed time produces a large improvement in that step and a small one overall, which is Amdahl's law applied to operations. Teams that choose the denominator afterwards end up reporting a big percentage against the step they automated, next to a process that feels exactly the same to everybody outside the team. That gap is how automation programmes lose credibility even when the engineering was good.

What the end to end number will actually be

Put your own cycle time in. The share figure is the part people guess wrong, so take it from the wait and touch split in your baseline rather than from intuition.

0Cycle time after, in hours
0End to end reduction, percent
The honest version of this arithmetic kills projects

Run it before the build and some projects stop there, which is the correct outcome. If the step you are automating is a small share of the cycle, the useful project is usually the queue in front of it rather than the work inside it. Removing a wait costs less than removing a task and it is far more visible to the people the process serves.

There is a fair counter-argument worth stating: cycle time is not the only thing worth improving. Removing tedious work has a real effect on error rates, on staff retention and on capacity for the work only people can do. State which of those you are optimising for in the baseline document, and measure that one. Choosing the outcome after seeing the results is the thing to avoid, not the ambition itself.

Baseline the quality, not just the speed

Speed baselines are easy and quality baselines are the ones that decide arguments. Take fifty completed units, record what the correct output was for each, and record who decided that. This gives the accuracy conversation a reference point, it turns into the acceptance test in your automation brief, and it exposes a problem most teams do not know they have.

Measure the disagreement between your own experts first

Give two senior people the same twenty units and have them label independently, without discussing them. Then compare. If they differ on three of the twenty, no automated system will be judged consistently better than that, because there is no stable definition of correct to build against. Human agreement is the ceiling on measurable accuracy, and finding out where that ceiling sits costs one hour of two people's time.

  1. Where they agree, you have a rule, and a rule can be automated and tested.
  2. Where they disagree and can resolve it in conversation, you have an unwritten rule. Write it down. It belongs in the config the automation reads, not in the model's head.
  3. Where they disagree and cannot resolve it, you have found a judgement call, and that class of unit should route to a person by design rather than be handed to a model that will answer confidently either way.

Keep the labelled set in version control with the query output. It is a small file with a long life: acceptance testing at handover, regression testing after launch, and the reference for the first time somebody claims the system has got worse.

How long to measure, and when a baseline expires

Measure one full cycle of the process at minimum, and long enough to hold at least a hundred completed units. For a daily process that is a month. For a monthly close it is a year, which is why those baselines get reconstructed from history rather than collected forward. Include a peak period or state plainly that you excluded one, because a baseline taken in a quiet month will be used against you later.

  1. Confirm the unit and the windowone hour

    Agree what one unit is and what trigger and terminal events define it. This should already be settled if you have done the process map. Then pick a window of at least six months of history and write down the dates.

  2. Pull the raw extracthalf a day

    One row per completed unit with every timestamp you can reach and the variant attached. Store the extract itself, not only the summary, and keep it where a colleague can find it in a year.

  3. Compute the five numbers by month and by varianthalf a day

    Never as one blended figure across the whole window. The monthly series is what tells you whether the process is stable, and stability is what decides whether a single number means anything at all.

  4. Label fifty units and measure expert agreementone day, two people

    Twenty units labelled independently by two seniors, thirty labelled once for the reference set. The disagreements are the most valuable output of the whole exercise.

  5. Write the baseline document and freeze itone hour

    Numbers, window, sample size, exclusions, assumptions, owner, date. Then make it read only. Any later correction goes in a new version with a note explaining the change, because an edited baseline is not evidence.

A baseline expires when the world underneath it moves: volume changes materially, the team changes size, an upstream system is replaced, or the mix shifts. Re-baseline then, and archive the old one rather than overwriting it. Comparing across a regime change without saying so is the most common way honest teams produce misleading before-and-after numbers, and it is also how you lose an argument with a finance director who noticed.

Definitions, and the check before the build starts

Baseline terms
Process baseline
A dated record of how a process performed before it was changed, expressed as volume and mix, cycle time percentiles, the split of touch and wait time, a rework rate and a fully loaded unit cost, taken from system events rather than from estimates.
Cycle time
Wall clock time from the trigger event to a terminal state, including every queue the item sits in. It is not the same as touch time, and confusing the two is the most common error in an automation business case.
Touch time
The portion of cycle time during which a person is actively working on the unit. Automation usually reduces touch time first and wait time only if the queue itself is redesigned.
Rework rate
The share of units that re-enter an earlier state or get reassigned before completing. It works as a quality proxy because it is derived from system events rather than from a definition of correctness that has to be negotiated.
Expert agreement ceiling
The rate at which two qualified people independently produce the same answer on the same units. It sets the practical upper bound on measurable automated accuracy, because a system cannot be reliably scored above the consistency of its own reference standard.
Before the build starts, the baseline has
0 of 10 done

That list takes a few days and it survives longer than the project does. It is also the input to every later argument about whether the system worked, which is the subject of measuring automation impact. If the numbers need to keep arriving without a person rebuilding a spreadsheet every month, that recurring version is what reporting automation is for.

Cite this

Without a before number, every after number is an opinion. Take the baseline from timestamps you already store, publish the p90 next to the median, and agree the denominator before anybody writes code.

Questions readers ask next

How long should I measure a process before automating it?
Long enough to cover one full cycle of the process and to accumulate at least a hundred completed units, whichever is longer. For most daily operational work that means a month, and it can usually be reconstructed from six months of history in an afternoon rather than collected going forward. For a monthly or quarterly process, use history, because waiting for four cycles is not a real option.
What if the process leaves no timestamps anywhere?
Then part of your baseline is an observation exercise, and you should keep it small and honest. Sit with two people for a morning, time ten real units with a stopwatch, and record the range rather than an average. Label those figures clearly as observed rather than measured. Also treat the absence of timestamps as a finding in itself, because a step you cannot measure before automation is a step you cannot report on afterwards.
Should I use mean or median cycle time in the business case?
Use the median and the ninetieth percentile together, and avoid the mean entirely. Operational work is usually bimodal, with a cluster of simple cases and a smaller cluster of hard ones, so the mean describes a case that does not exist. The median tells you about the typical unit, the ninetieth percentile tells you about the units that generate escalations, and those two numbers rarely move together.
Who should own the baseline, the vendor or the client?
The client owns it, and the client runs the query. A vendor may help you design the measurement, but a baseline produced by the party whose fee depends on the improvement is worth very little as evidence, whatever their integrity. The practical arrangement is that you produce the numbers and the extract, the vendor reviews the method and can challenge it in writing, and both parties sign the frozen document before the build begins.
Is it too late to take a baseline if the automation is already live?
Usually not, because history is still there. Pull the same timestamps for the period before go-live and compute the numbers retrospectively, then be explicit about what you cannot recover, which is normally the quality reference set. Labelling old units after the fact is possible but the labels are weaker, because the people doing it now know how the automation behaves and that knowledge contaminates their judgement.
How do I stop a baseline from being argued away later?
Freeze it, date it, name an owner, and record the window, the sample size and every exclusion in the same file. Store the raw extract next to the summary so anyone can recompute it. Most baselines are disputed not because the numbers were wrong but because nobody could reconstruct how they were produced, at which point the discussion becomes about credibility rather than about the process.
Cite this

ChatGPTalker. "The Baseline You Must Take Before Any Automation." chatgptalker.com, 2026-08-26. https://chatgptalker.com/guides/baseline-before-automation/

Rather have it built than read about it?

Send the process you want automated. You get a scoped plan back, with the build shape, the stack and a realistic timeline.

Start a project