Learn / Scenario-aware design

When one SOP meets reality: authoring for exceptions and edge cases

To handle process exceptions well, stop treating them as footnotes to the happy path. Hold one master process, describe each exception as a condition on it, and let the process resolve to the right route when the situation is not standard. The exceptions are not the tail of the work. In a regulated operation they are the work.

A quick note before we start, because search sends two very different readers to this phrase. If you are a software engineer looking for try or catch and error handling in code, this is not that. This is about business operations: the SOP for accepting a shipment, approving an invoice, or releasing a batch, and what that SOP does when the case in front of you is not the standard one. If that is your problem, read on.

The happy path is the easy 20 percent

Almost every SOP is written for the case where nothing goes wrong. The order is clean, the customer is in good standing, the goods are ordinary, the paperwork is complete. That path is easy to write because it is the path the author pictures first. It is also the path that rarely needs an SOP at all, because it is the one everybody already knows.

The reason the process exists is the other cases. The shipment is dangerous goods. The temperature logger shows an excursion. The customer is over their credit limit. The document arrived in the wrong language. The approver is on leave and the amount is above the deputy's threshold. These are where a wrong step costs real money or creates real risk, and they are exactly where the documentation is thinnest.

Where exceptions get buried

When authors do address exceptions, they tend to reach for one of two moves, and both fail in the same way.

The warning box. The exception becomes a note in bold, a highlighted callout, or a line that starts with "If dangerous goods, then." It sits in the middle of the happy-path prose, easy to skim past, impossible to act on with confidence. Under time pressure, nobody reads the margin. They read the main line and improvise the rest.

The variant diagram. The exception gets promoted to its own file: a separate dangerous-goods SOP, a separate cold-chain flow, a separate high-value approval procedure. This feels rigorous. The problem is that the variant shares most of its steps with the standard route, and the shared part starts drifting the day you copy it. Change the acceptance check once and you now owe the same edit to every variant that also uses it. Miss one and you have a live contradiction, which is precisely the kind of thing an auditor finds and a new hire follows into a wall.

Both moves treat the exception as a bolt-on to a happy path. The exception is not a bolt-on. It is a different route through the same operation, and it deserves to be authored as one.

The reframe: an exception is not a warning to remember, it is a condition to describe. Stop writing prose about what to do when things differ, and start recording what makes them different as data the process can read. When the condition is data, the right route is something the process resolves, not something a person has to recall at the worst possible moment.

Conditions as data keep the master whole

Here is the authoring pattern that holds up. You keep one master process. You do not copy it per variant. Instead, you attach the exceptions to it as conditions: mode, commodity, value band, risk flag, customer status, whatever legitimately changes the route. Each condition points at the steps, owners, and sign-offs that case requires. When someone runs the process, they describe the situation and the process resolves to the exact route: the standard steps, plus the extra check, plus the escalation, plus the added approval, all in one legible flow with nothing from a different case on the screen.

This does three things the warning box and the variant file cannot. It keeps the shared steps in one place, so a change to the acceptance check lands everywhere at once and the routes cannot silently disagree. It makes edge cases (two conditions stacking, such as dangerous goods that are also temperature-controlled) resolve to the combined route instead of whichever single variant someone remembered to open. And it puts the exception in front of the person at the moment it applies, under the same version and audit trail as the rest, so the improvisation that used to be invisible becomes a governed step on the record.

This is what a scenario-aware process is for, and it is why exceptions are the argument for it rather than an inconvenience it has to tolerate. If you want the layer that holds the master process, keeps it current, and proves who approved which route, that is a process system of record.

How to author exceptions in practice

A working method, in order. First, write the standard route honestly, but do not pad it. Second, list every legitimate way the case can differ, and name the condition that triggers each one: not "sometimes we need extra sign-off" but "value over 50,000 requires the commercial director." Third, for each condition, record what changes: the added step, the different owner, the extra check, the altered sign-off. Fourth, handle the combinations you can foresee, so a case that is two exceptions at once resolves cleanly rather than forcing a person to merge two documents in their head. Fifth, put the whole thing somewhere governed, so a change to a condition is a versioned, approved event, not a quiet edit in a file nobody is watching.

Done this way, the exception stops being the scary part of the SOP and becomes the most reliable part, because it is the part the process actually computes for you. To see one master process resolve a real exception route, look at the product.

Common questions

How do you document process exceptions without ending up with ten separate SOPs?

You keep one master process and describe each exception as a condition on it, rather than copying the whole procedure and editing the parts that differ. The condition (dangerous goods, a missed cutoff, a customer on hold) is structured data the process reads, so it resolves to the exact route for that case. You maintain the shared steps once, and every exception route stays consistent with them because it is built from the same source, not a near-duplicate of it.

What is the difference between an exception and an edge case in a business process?

An exception is a known deviation from the standard route that your process should already handle: the shipment is dangerous goods, the approval is over threshold, the document is missing. An edge case is a rarer combination you did not plan for, often two conditions stacking at once. The practical point is that both are handled the same way when your process reads conditions as data: you describe the situation and the process resolves it, instead of hoping someone remembers which warning box applies.

Where do most SOPs go wrong on exceptions?

They document the happy path in detail and push the exceptions into the margins: a note in bold, a warning box, a see appendix, or a separate variant document nobody opens under pressure. The exception is exactly the moment the person needs precise guidance, and it is exactly where the guidance is thinnest. So people improvise, the improvisation is invisible to the record, and the next audit or incident finds it.

Should exceptions live inside the SOP or in a separate escalation document?

Neither, if the separate document is a copy that can drift. The exception should live on the same master process as the standard route, as a branch the process resolves when the conditions are met. That way the escalation path, the extra sign-off, and the added checks appear in front of the person doing the work at the moment they apply, and they are governed by the same version and audit trail as everything else.

Bring the SOP that breaks on its exceptions.

Bring one SOP with real exceptions to a 30-minute pilot session. Leave with it living in FLOW as one master process that resolves the right route per situation, sign-offs and all.

Book a pilot →