Arithmetic on the times and percentages you typed. Not a forecast, a staffing plan or a promise date. Lead time, yield and rework here follow from your figures and nothing else. Waits are whatever you entered, not something worked out from how busy people are, and the spread shown is only as wide as the ranges you gave. Used at your own risk. Open for the full scope limits.
What this tool actually does
It treats the process as a chain of steps where work leaves each step by one of its exits, in the proportions you gave. From that it works out how many times a unit of work passes through each step on average, and multiplies by the times you entered.
- Every headline figure is an average per unit of work. Lead time is the mean. Half of the work, or far more than half, can take longer. The figures under "How long it takes" come from walking simulated units through the same list, and rest on the same inputs.
- A wait is an input. The tool does not model queues. If a step waits two days in your list it waits two days here, whether one request a week arrives or a thousand.
- Percentages are taken as fixed and independent. A request sent back for the third time is given the same chance of passing as one seen for the first time. Real rework usually is not like that.
- Exits that do not add up to 100% are scaled, and exits with no percentage share what is left evenly. Each case is listed under "Check these" with the reading used. If the reading is wrong, every figure downstream is wrong and looks no different.
- Rework is chosen by typing order. The exit whose line closes a loop, or leads back to an earlier phase, is the one counted as rework. That decides first-pass yield and the rework figure. The exits counted are listed and drawn dashed.
Not modeled, at all
- Work done at the same time, beyond the simple case. Branches written with
=>must come back together at one step, with no way into a branch in between, and the work goes on when the slowest arrives. A branch may stop the work at an end of its own, such as a rejection, but the other branches are assumed to carry on to the end regardless; work that is called back the moment one branch fails, a join that needs only some of the branches, and people shared between branches are not represented. The headline lead time through a split is the slowest branch on average, which is a little low when the branches vary. - Capacity is a ceiling, not a queue. With a staff line the tool divides the hours available by the work each unit needs. That says what a lane could carry if work arrived perfectly evenly and nobody was ever idle or absent. Real limits are lower, and a lane well under 100% can still have a long queue.
- Queues, batching and priorities. Waiting that grows with load, work released in batches, expediting and work that jumps the queue are all outside the model.
- Variation you did not type. In the simulation a time given as one number never varies, a range is even between its ends or a triangle around its most likely value, and every draw is independent of every other. Real waits move together and have longer tails. The figures are not a worst case and not a confidence interval.
- Calendars. A day is the number of working hours you set and a week the number of days you set, for every lane alike. Shifts, holidays, time zones and a lane that works different hours are not represented.
- Whether the map is the real process. The tool checks that the list is well formed. It cannot know about the step everyone does and nobody wrote down.
- Cost, quality and risk. Only time and counts.
The usual error is in the waits. People remember how long a job takes and badly underestimate how long it sat. A lead time built from guessed waits is a guess with decimals.
What the picture can mislead about
- The tint is relative. The darkest step is the largest on this map, not large in any absolute sense. A map where nothing matters still has a darkest step.
- Position means nothing. Columns follow the order of steps, not time. Distance across the page is not duration.
- Lane color. The palette has eight colors and repeats after that.
- Exports. A PNG carries the page font for Latin text only, and an SVG uses whatever fonts the program opening it has. Check an export before it goes into a report.
Never use this for
- A delivery date, service level or turnaround promised to a customer, a regulator or a court.
- Deciding how many people to hire, lay off, or schedule.
- Clinical, emergency, safety-critical or life-safety response times.
- A compliance, audit or validation record of how a process is performed.
- A business case, contract or penalty clause without an independent analysis behind it.
Projects are stored in this browser only
Up to ten projects are kept in this browser's local storage, on this device, and are never sent anywhere. Clearing site data, using a private window, or switching browser or device loses them. It is a convenience, not a backup: use Export file to keep a copy of anything that matters.
Before you rely on a result
Measure the waits instead of estimating them. Check the percentages against counts from real work. Walk the map with the people who do the job. Have someone qualified in the process review the result before it supports a decision, a commitment or a report.
Process
One step per line: who does it, how long it takes, where it goes next.
Syntax
Sales: Enter order -> Check credit- Sales does "Enter order", and the work then goes to "Check credit".
Sales: Enter order {10 min, wait 2 h}- Ten minutes of work, after two hours of waiting to be started. Units are
s,min,h,dandwk. Either part can be left out. Sales: Enter order {5-15 min, wait 1-2-8 h}- A time that varies. Two numbers are the lowest and the highest. Three put the most likely in the middle. The averages use the middle of the range, and the spread under the headline uses all of it.
Finance: Credit OK? -> yes 85%: Pick goods, no 15%: Tell customer- Two exits with a label and a share each. A name ending in
?is drawn as a decision. Warehouse: Pack order -> {wait 1 d}: Deliver- A wait on the way to the next step, such as transit. It goes before the colon, after any label and share:
yes 85% {2 h}: Pick goods. Sales: Take order => Pick goods, Raise invoice- A double arrow means all of these happen, at the same time. The branches must meet again at one step, which goes on when the slowest arrives. Steps on a faster branch are shown with their slack. A branch may end the work, such as
no 10%: (Rejected): the other branches still run, the work stops when they have, and a unit two branches both stop is counted at the first branch written. A branch can be a wait alone, such as=> {wait 3 d}: Assemble, Prepfor parts in transit while Prep is done. Customer: (Order placed)- Brackets mark a start or an end. A step named only as a target needs a line like this to say which lane does it.
== Fulfill ==- Starts a phase. Steps below it are grouped, and the phase gets its own share of the lead time.
in: Order form from Customerout: Invoice to Customer- What the phase above takes in and from whom, and what it hands on and to whom. Several are separated by commas. Lines above the first phase are about the whole process and get a row of their own. They fill the SIPOC table and change no figure.
lanes: Customer, Sales, Finance- The order of the lanes, top to bottom, or left to right when lanes run down the page. Without it they appear in the order first typed.
arrivals: 30 / wk- How much work arrives. Adds hours of work per week to each lane.
staff: Sales 2, Finance 1 @ 25%- People on duty in a lane during working hours, and the share of their time this process gets. Gives the most the process can carry and the lane that limits it, and with arrivals, how busy each lane is.
@ Credit OK?: limit is 30 days overdue- A note kept with that step and shown when you hover over it.
: Finance #4a3aa7- A color for that lane.
// comment- Ignored, as is a line starting with
#.
Rows copied from a spreadsheet can be pasted straight in: columns are lane, step, touch time, wait, next. Several exits go in the last cell separated by semicolons, such as yes 80%: Ship; no 20%: Fix, or => Pick; Invoice for all of these at once. A row whose lane is in or out becomes that line.
An exit that leads back to a step already passed is rework. Which exit of a loop counts as the return is decided by typing order: the line that closes the loop. A name containing a comma, a colon or an arrow goes in double quotes. A lane cannot be called lanes, arrivals, staff, in or out. Work begins at any step nothing leads into, split evenly when there are several, and a step joined to nothing is drawn but left out of the figures.
Working hours, which is what d and wk mean in your list and how results are turned back into days. One shift is 8, two are 16, round the clock is 24. "Wait 2 d" on an 8 hour day is 16 working hours.
Down the page keeps a long process narrow enough to read without scrolling sideways. Exit labels are shortened to fit over their own column.
Advanced options
The same seed gives the same simulated spread every time. Change it to see how much the figures move by chance.
Export
Result
Changes are against the last save. Save to make this the new starting point, or Revert to go back to it.
How long it takes
The histogram as a table
Darker steps take more of the lead time. Dashed connectors are rework, and a plus marks exits taken at the same time. Hover or focus a step for its figures; the map is one tab stop, and the arrow keys go from step to step. Drag a step to another lane, or a lane name past another, and the text is rewritten to match; Alt with an arrow key does the same from the keyboard. A wide map is fitted to the panel down to 60% and scrolls sideways past that, or set "Lanes run" to down the page.
These are averages worked out from the times and percentages you typed. Waits are taken as entered, not derived from how busy anyone is, and the spread is simulated from the same figures, so it is only as wide as the ranges you gave. Used at your own risk. See the full disclaimer at the top of the page.
Where the time goes
No times entered yet. Add {10 min, wait 2 h} after a step.
By lane
SIPOC
Suppliers, inputs, process, outputs, customers: one row per phase, from the in: and out: lines.
Where work ends up
By phase
Handoffs
Connectors from the lane on the left to the lane above.
Every step
Times are per unit of work, with repeat passes counted.
Every exit
Per unit is how often the exit is taken, on average.