Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Map, measure and improve business processes — SIPOC and swimlane capture, cycle-time and bottleneck analysis, handoff diagnosis, and a payback-ranked improvement backlog. Use when a process is slow, error-prone, or crosses too many teams.
.claude/skills/borghei-process-mapper/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 116% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 253% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 174% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 139% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 101% | 0% |
Turns "this takes forever and nobody knows why" into a measured map with a ranked backlog. Most process work fails on two things: it maps what people describe rather than what runs, and it costs wait-time savings as if they were labour savings. This skill is built to prevent both.
Before generating, confirm these inputs. If any is unknown or vague, ASK — do not assume:
Stop rule: ask only the 2-3 that most change the output. If the user says "just draft it," proceed and list your assumptions at the top of the artifact.
assets/process-map-template.md.bashpython3 business-operations/process-mapper/scripts/process_analyzer.py \ --input business-operations/process-mapper/assets/sample_process.json \ --format text
bashpython3 business-operations/process-mapper/scripts/handoff_analyzer.py \ --input business-operations/process-mapper/assets/sample_process.json \ --format text
touch_minutes_saved_per_unit (labour, costed) and lead_minutes_saved_per_unit (elapsed, not costed). This split is the discipline that keeps the business case survivable.annual_cycle_time_value only when the business has quantified it — that figure is theirs, not the analyst's.bashpython3 business-operations/process-mapper/scripts/improvement_scorer.py \ --input business-operations/process-mapper/assets/sample_opportunities.json \ --format json
| Signal | Threshold | What it means | |--------|-----------|---------------| | Step share of lead time | Above 20% | This is the constraint | | Wait/touch ratio on a step | Above 3x | A queue, not work | | Wait/touch ratio | Above 10x | Batch-and-queue scheduling; fix policy, not capacity | | Rework rate per step | Above 10% | Fix before any speed work | | First-pass yield end to end | Below 85% | Rework is the dominant cost | | Handoff density | Above 0.5/step | Fragmented ownership | | Wait sitting at handoffs | Above 60% | Optimise between teams, not inside them | | Non-value-added touch time | Above 25% | Eliminate before automating | | Approval rejection rate | Below 5% | The approval is theatre |
PCE = value-added time / lead time, for transactional processes:
| PCE | Band | Situation | |-----|------|-----------| | Below 5% | Poor | Un-improved multi-team process. Most start here. | | 5-15% | Below average | Some flow; queues still control lead time. | | 15-25% | Average | Reasonable across three or more teams. | | 25-50% | Good | Strong flow. Remaining gains are batch size and automation. | | Above 50% | World class | Rare outside single-owner processes. Check the data. |
Manufacturing benchmarks do not transfer. A cross-functional approval process at 20% PCE is performing well, not badly.
Applied to the same step, earlier verbs beat later ones:
| Rank | Verb | Question | Typical gain | |------|------|----------|-------------| | 1 | Eliminate | Does this need to happen at all? | 100% of the step | | 2 | Consolidate | Can one owner do this and the next step? | Removes a handoff and its queue | | 3 | Parallelise | Must this wait for the previous step? | Up to the shorter branch | | 4 | Standardise | Can the variation be removed? | 20-40%, plus rework reduction | | 5 | Automate | Can a system do it? | 60-90% of touch time |
Automate last. Automating a step you should have eliminated makes the waste permanent and expensive to remove, because every future change now needs a development cycle. Parallelisation is the most under-used lever in approval-heavy processes — sequential credit, legal, and security reviews usually have no real dependency and are sequential only because someone drew the process as a line.
| Saving | Currency | Costable? | |--------|----------|-----------| | Touch time removed | Labour hours | Yes — hours x loaded rate | | Wait time removed | Lead time | Only with a number from the business |
Removing a queue frees nobody's hours. It may be worth far more than the labour saving through faster revenue or better win rates — but that value comes from the business owner, not from the analyst's spreadsheet.
Mistake: Multiplying total lead-time reduction by a loaded hourly rate — "we cut 25 hours per order at $72/hour, so we save $1,800 per order." Why it happens: It produces a spectacular number from data already in hand, and the arithmetic looks identical to the legitimate touch-time calculation. Instead: Cost only touch time as labour. Report lead-time reduction separately in its own units and ask the business owner what it is worth to them. Finance will find the inflated figure in the first review, and the credibility loss contaminates the genuine savings sitting in the same document.
Mistake: Building the map from a workshop, an existing SOP, or interviews with managers, then analysing it as fact. Why it happens: It is fast, it is comfortable, and everyone in the room believes their description is accurate. Nobody is lying — they are describing the process as designed, because the workarounds have become invisible through repetition. Instead: Observe the work happening, and pull wait times from system timestamps. Then validate by reading the map back to the people who do it, asking "what did I get wrong?" rather than "does this look right?" If your modelled lead time is more than 20% below the measured figure, you are missing steps or missing wait — usually the chase emails and batch delays nobody thinks to mention.
Mistake: Running an improvement programme that makes six steps faster, then finding end-to-end lead time unchanged. Why it happens: Improvement effort goes where the team is willing rather than where the constraint is, and every local gain is real and measurable — it just does not reach the customer. Instead: Find the constraint, exploit and subordinate before spending anything, and only then add capacity. Improving a non-constraint step provably changes nothing at the process level. Re-measure after each fix, because the constraint moves once relieved.
Mistake: Commissioning software to speed up a step that should not exist — the classic being an automated approval workflow for an approval that rejects 2% of submissions. Why it happens: Automation has a budget line, a vendor, and a visible deliverable. Eliminating a step requires persuading whoever owns it that their control is unnecessary, which is a political problem with no budget code. Instead: Run the first four verbs of the improvement hierarchy before writing any code. Automation encodes the current process in software and makes every subsequent change a development project — so the cost of automating waste is not the build, it is the decade of paying to work around it.
| File | Purpose | |------|---------| | scripts/process_analyzer.py | Cycle time, PCE, value-added ratio, first-pass yield, rework cost, and constraint identification | | scripts/handoff_analyzer.py | Handoff scoring, ping-pong detection, cross-team rework loops, system-switch mapping | | scripts/improvement_scorer.py | Payback-tiered backlog separating labour savings from lead-time savings, with dependency sequencing checks | | references/lean-process-analysis.md | Core metrics, PCE benchmarks, waste taxonomy, diagnostic thresholds, Little's Law, constraint sequence, honest valuation | | references/process-capture-methods.md | Scoping, SIPOC, capture techniques ranked, per-step data fields, time-data rules, validation checks, engagement sequence | | assets/process-map-template.md | Full map deliverable: SIPOC, swimlane, step detail, metrics, handoffs, backlog, validation checklist | | assets/sample_process.json | Twelve-step order-to-activation process across seven owners with rework loops and system switches | | assets/sample_opportunities.json | Eight improvement opportunities spanning all five improvement verbs, including two that correctly fail scoring |
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 28,379 | 32,804 | +16% | 1 | 1 | 0% | 3,779 | 8,152 | +116% | 0 | 0 | — |
case-02 | pass→fail | 19,784 | 29,146 | +47% | 1 | 1 | 0% | 3,394 | 7,531 | +122% | 0 | 0 | — |
case-03 | fail→fail | 18,841 | 35,393 | +88% | 1 | 1 | 0% | 2,935 | 9,023 | +207% | 0 | 0 | — |
case-04 | fail→fail | 17,603 | 37,372 | +112% | 1 | 1 | 0% | 2,938 | 8,140 | +177% | 0 | 0 | — |
case-05 | fail→fail | 16,649 | 6,795 | -59% | 1 | 1 | 0% | 2,552 | 3,126 | +22% | 0 | 0 | — |
case-06 | fail→pass | 13,085 | 30,567 | +134% | 1 | 1 | 0% | 2,456 | 8,680 | +253% | 0 | 0 | — |
case-07 | pass→pass | 15,944 | 12,806 | -20% | 1 | 1 | 0% | 2,378 | 4,660 | +96% | 0 | 0 | — |
case-08 | fail→pass | 8,531 | 5,127 | -40% | 1 | 1 | 0% | 1,291 | 3,542 | +174% | 0 | 0 | — |
case-09 | fail→pass | 11,895 | 9,008 | -24% | 1 | 1 | 0% | 1,756 | 4,202 | +139% | 0 | 0 | — |
case-10 | pass→pass | 7,275 | 7,293 | +0% | 1 | 1 | 0% | 1,090 | 3,934 | +261% | 0 | 0 | — |
case-11 | fail→pass | 12,367 | 7,677 | -38% | 1 | 1 | 0% | 1,961 | 3,949 | +101% | 0 | 0 | — |
case-12 | pass→pass | 11,018 | 9,428 | -14% | 1 | 1 | 0% | 1,672 | 4,185 | +150% | 0 | 0 | — |
case-13 | pass→pass | 14,320 | 9,815 | -31% | 1 | 1 | 0% | 1,976 | 4,210 | +113% | 0 | 0 | — |
case-14 | fail→pass | 16,317 | 8,852 | -46% | 1 | 1 | 0% | 2,357 | 4,096 | +74% | 0 | 0 | — |
case-15 | fail→pass | 9,890 | 7,933 | -20% | 1 | 1 | 0% | 1,480 | 3,883 | +162% | 0 | 0 | — |
case-16 | pass→pass | 11,353 | 4,432 | -61% | 1 | 1 | 0% | 1,688 | 3,550 | +110% | 0 | 0 | — |
case-17 | fail→pass | 8,064 | 6,130 | -24% | 1 | 1 | 0% | 1,236 | 3,653 | +196% | 0 | 0 | — |
case-18 | pass→pass | 6,895 | 7,330 | +6% | 1 | 1 | 0% | 963 | 3,836 | +298% | 0 | 0 | — |
case-19 | pass→pass | 11,922 | 7,721 | -35% | 1 | 1 | 0% | 1,700 | 3,948 | +132% | 0 | 0 | — |
case-20 | fail→pass | 7,929 | 6,200 | -22% | 1 | 1 | 0% | 1,155 | 3,667 | +217% | 0 | 0 | — |
case-21 | fail→pass | 14,805 | 11,171 | -25% | 1 | 1 | 0% | 2,258 | 4,503 | +99% | 0 | 0 | — |
case-22 | pass→pass | 13,856 | 21,411 | +55% | 1 | 1 | 0% | 2,374 | 6,165 | +160% | 0 | 0 | — |
case-23 | pass→pass | 24,848 | 21,541 | -13% | 1 | 1 | 0% | 5,231 | 7,906 | +51% | 0 | 0 | — |
case-24 | pass→pass | 18,468 | 15,551 | -16% | 1 | 1 | 0% | 3,400 | 6,253 | +84% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 24 cases were attempted, and 23 counted toward the lift figure. The other 1 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +38 percentage points is the difference between those two pass rates over the 23 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.