The Skills Gap Audit SOP

Purpose

To find, twice a year, the difference between the work your market is asking you for and the work your crew can actually perform, then convert that difference into a ranked list with a build, buy, or accept decision attached to each line.

This is a demand-side audit. A skills matrix tells you who can do what you already dispatch. A single-point-of-failure audit tells you where your existing coverage is one deep. Neither of them can see the work you never booked, because that work never became a job record. This SOP goes looking for it.

Scope

Covers all revenue-producing capability held by field crew, and any office capability that gates revenue - permit filing, warranty submission, and estimating count.

Covers four demand signals, which must all be collected because each is blind to what the others see:

  • Refused demand - calls you declined, quoted deliberately high to lose, or referred out.
  • Subcontracted demand - work you booked and paid somebody else to perform.
  • Constrained demand - work you performed but only after waiting on one specific person.
  • Failed demand - work you performed and had to return to, grouped by task rather than by tech.

Plus one forward signal, the demand that is not here yet but is arriving on a schedule you can already see.

Out of scope: individual performance assessment. This audit names task families the shop cannot cover, not people. Running it as a people-rating exercise is the fastest way to get the crew to stop feeding it honest data.

Roles and responsibilities

Role Responsibility
Owner Approves the build, buy, or accept decision on each ranked line, funds the hours
Training owner Runs the audit, compiles the four demand signals, maintains the gap register
Dispatcher or office Logs refused and constrained demand as it happens, all year, not at audit time
Lead techs Supply the forward signal and sanity-check the task families

Definitions

Task family. A group of jobs needing the same underlying capability, sized so one sign-off covers the whole family. Too narrow and the register becomes hundreds of rows nobody reads; too broad and it says "diagnostics" and tells you nothing.

Gap. Demand for a task family that exceeds the shop's ability to serve it, from any cause: nobody qualified, one person qualified, or qualified people who are structurally unavailable when the demand arrives.

Procedure

1. Turn on the refused-demand log before you need it

This is the step that has to happen six months before the audit, and it is the one shops skip.

Whoever answers the phone logs every call the shop does not take, with one field that matters: the task, in plain language, in the caller's words. Not the reason, not the outcome, just what they asked for. Thirty seconds per entry.

Without this log the audit runs on memory, and memory over-weights the last two months and the one job that went badly. A shop running on memory will name the wrong gap with total confidence.

2. Pull the other three signals from records you already keep

  • Subcontracted demand comes from your payables to other trades and to other shops in your own trade. The second category is the interesting one, because paying a competitor to serve your customer is the clearest possible statement of a gap.
  • Constrained demand comes from the dispatch board: jobs whose scheduled date moved, or whose assignment could not change, because one named person had to be on it. If you are not capturing that, add a one-word dispatch note now and pull it next cycle.
  • Failed demand comes from your callback records, regrouped. Callback data is almost always filed by technician, which answers a performance question. Regroup it by task family and it answers a capability question, and those are different: three techs each having one callback on the same task is not three careless techs, it is a shop-wide gap in that task.

3. Collapse everything into task families and count

Sort each entry into a task family. Expect to argue about the boundaries; settle it by asking whether one sign-off would cover both entries. If yes, same family.

Then count annual instances per family, raw, no weighting yet. Keep the count visible on its own because it is the number that will get disputed, and a weighted score hides the dispute rather than settling it.

4. Add the forward signal

Ask the leads two questions and write down the answers:

  • What is showing up in the field now that we could not have serviced three years ago? Equipment generations turn over on a schedule, and the units being installed in your territory today are the units you will be servicing in a few years.
  • What is changing in code, permitting, or licensing in our jurisdiction in the next two cycles?

Forward-signal families get counted at their projected demand, flagged as projected, and never mixed with observed counts in the same column. A projected number that quietly becomes an observed number in next year's register is how a shop trains for a market that never arrived.

5. Score exposure, do not just rank by count

Count alone will rank a high-frequency family the shop already covers two-deep above a low-frequency family nobody can touch. Multiply the count by a coverage multiplier:

Qualified and available people Multiplier
Zero 3
One 2
Two 1
Three or more 0

Available is doing work in that word. A person who is qualified but is your only estimator, or is on the road four days a week, counts as less than a whole person and you should be honest about it rather than letting the matrix flatter you.

6. Attach a build, buy, or accept decision to every line

Every scored line gets exactly one decision and a named owner. No line leaves the audit undecided, because an undecided line will be undecided again in six months.

  • Build when the demand recurs, the capability is teachable inside your shop, and the tooling you already own covers it. This is the default for anything above your action threshold.
  • Buy when the capability needs capital, a license, or a certification the demand does not justify, or when the demand is genuinely occasional. Buying means a named subcontractor relationship set up in advance, not a scramble on the day.
  • Accept when the demand is thin or you have decided not to serve that segment. Write the fallback script the office uses so the caller gets a clean referral instead of a fumble.

7. Convert build decisions into dated targets, then stop

Each build line becomes: a named learner, a named assessor, a sign-off bar, and a target date. That is the entire handoff into your normal training machinery, and this SOP ends there.

Take no more than three build lines per cycle for a shop under ten people. A register with nine build lines produces zero completed ones, because the hours never existed.

Then publish the whole register, accepted gaps included. The accepted lines matter more than the build lines for day-to-day operations, because the office needs to know today what the shop does not do.

Records

The gap register, one page: task family, four demand counts, qualified-and-available count, multiplier, score, decision, owner, target date, outcome at next review. Retain three cycles so you can see whether a closed gap stayed closed.

A worked example: a five-tech shop reads its own demand

Trailing twelve months, four signals collected.

Refused demand: 34 logged calls declined or referred out, of which 21 were one family, control-side diagnosis on a newer equipment generation. Subcontracted demand: 12 jobs paid out, 9 of them a heavy-set family needing lifting equipment the shop does not own. Constrained demand: 47 dispatch instances where a job moved or could not be reassigned, 12 of them permit-gated work that only the owner can file. Failed demand: 18 callbacks, 7 of them on warranty-documentation errors that caused a resubmission.

Collapsed and scored:

Task family Annual instances Qualified and available Multiplier Score
Control-side diagnosis, newer generation 21 0 3 63
Permit filing and inspection scheduling 12 1 2 24
Heavy set requiring lift equipment 9 1 2 18
Warranty documentation and resubmission 7 2 1 7

Reading the register:

Control-side diagnosis scores 63, nearly three times the next line, and it is the only zero-coverage family. The count alone would have flagged it, but the multiplier is what makes the size of the gap obvious. Decision: build. Two techs, bench repetitions first because live instances of this family currently walk away before the shop ever sees them, then supervised field instances.

Permit filing scores 24 on only 12 instances, purely because it sits behind one person. This is the line an audit that ranked by raw count would have buried under control-side diagnosis at 21. Decision: build, and it is the cheapest build on the sheet because it is office work with no field risk. Target: a second person filing unaided within one cycle.

Heavy set scores 18 on 9 instances. The gap is equipment, not skill. Decision: buy. Nine instances a year does not justify owning lift equipment, and the fix is a standing subcontractor arrangement priced in advance so the office is not negotiating on the day.

Warranty documentation scores 7, the lowest line on the sheet. It came out of the largest single signal, 18 callbacks, but only 7 traced to warranty documentation, and the register takes the 7. Counting the parent signal instead of the family inside it would have put this line near the top. Two people are already qualified, so the multiplier is 1. Decision: this is not a capability gap at all, it is a process gap, and sending it to training would waste the training hours. It goes to whoever owns the warranty submission procedure, not to the training owner. Recognizing this correctly is the audit doing its job - the point is to separate "we cannot do it" from "we do it wrong."

Sizing the top build line: 21 refused calls a year is roughly two a month walking away. Getting two techs to a three-instance sign-off on that family takes, illustratively, about a day of bench time each plus supervised instances that ride along on real calls once the shop starts taking them. Against a recurring 21-call annual demand that is currently served at zero, that is a small number of shop hours against a demand stream the shop can capture indefinitely - and unlike the heavy-set line, it requires no capital at all.

What would flip the control-side decision to buy or accept: if those 21 calls came overwhelmingly from one large account you are likely to lose, or if the equipment generation driving them is being displaced by the next one within a year, the demand is not durable and building for it is training for a market that is closing.

Failure modes and how to catch them

The refused-demand log was never turned on. Then the audit runs on memory and produces the gap somebody complained about most recently. Catch it by checking whether the log has entries in every month of the period. Gaps in the log mean gaps in the audit.

The audit turns into a performance review. Someone reads the callback regrouping as a list of who is failing, and within two cycles the office stops logging honestly. Enforce the scope: the register names task families, never people, and the only person-level output is the learner assignment on a build line.

Projected demand is treated as observed. A forward-signal family gets built for, the demand does not arrive, and the shop has spent its training hours on capability nobody buys. Keep the projected flag in the register and check it at the next cycle: if a projected family has produced no observed instances after two cycles, drop its score to zero and requalify it.

A closed gap reopens unnoticed. The tech you trained leaves and the family goes back to zero coverage. The three-cycle retention on the register is what makes this visible; check the qualified-and-available column against your current roster, not against last cycle's.

Review

Twice a year, and within 30 days of any of these: losing the sole holder of a task family, adding a service line, a code or licensing change in your jurisdiction, or acquiring a book of business with a different equipment mix.

References

  • See related: The Single Point of Failure Audit for Shop Skills, for the supply-side view of coverage depth
  • See related: How to Build a Skills Matrix for a Small Shop, for the underlying capability record this audit reads against
  • See related: When to Send Someone to Outside Training, for the build-versus-buy call on a specific gap
  • See related: The Annual Skills Review SOP
  • Trade-standard practice for capability planning in small contracting businesses