Skip to content

Lesson 9 of 10

Train, hire or contract

When is it better to grow a scarce AI skill inside the company than to hire it or buy it in?

The problem

The skill you have one of

Every company that adopts AI runs short of someone. This lesson compares three ways to get more of a scarce skill: grow it, hire it, or buy it by the day.

At the pump company, the scarce skill is the one from lesson 8 called B: checking the AI reader’s output against the business rules and knowing what to do when it is wrong. One experienced person has it. Next month, the work needing it doubles. Field Repair Dispatch is rolling the reader out to every depot.

There are three ways to meet that work. Train: the experienced person teaches a colleague who already does the routine document work (skill A), so that the colleague can do B work too. Hire: recruit a new B person, who arrives after a delay and is paid every date from then on. Contract: buy a B contractor by the day when the work comes, at a higher daily price, with nothing to keep afterwards.

Training looks like the obvious long-term answer, and it often is. But it has a cost that is easy to miss, because it never appears on an invoice. While the two of them are in a training session, neither is doing today’s work. The bill for training is mostly the work that did not get done.

This is the fixed cost ff of lesson 1, seen from the inside. Building capability is an investment paid now for work done later, and whether it pays depends on how much later work there is, whether the investment works, and whether the person stays to use it.

The intuition

Grow it, rent it or buy it

The case for training is strong. The company keeps what it learns. The trained person knows the company’s own documents and rules, which no contractor does on day one. And the experienced person, by teaching, makes the company less dependent on one individual. A shared capability function is often the natural place to organize this: it sees where the same skill is short across several teams.

The case against is just as concrete. Training takes both people off today’s work. It can fail. It takes time to pay back, and if there is not enough of the right work afterwards, it never does. The trained person can leave, taking the investment with them. Hiring avoids the lost work today but costs a recruitment fee and a salary even in quiet weeks. Contracting costs the most per day but nothing when there is no work.

Each team could make this choice alone, and might choose well. The trouble is that the right answer depends on things a single team rarely sees whole: how much of the skill the company will need across all its teams, and how the next few months’ work is spread. Economists have long studied when firms pay for training: Acemoglu and Pischke show how labour-market frictions change who funds it, and Lazear explains how firms value particular mixes of general skills. This model fixes wages and asks the narrower question a manager faces on Monday.

Again there is no game: one planner, with the company’s interest, choosing over a few dates. But the planner must choose today without knowing whether training will work, and then respond once it knows. That is optimization over a short future, solved backwards from the last date.

The model

Count the work that is not done

Three dates. Today there is one A job, worth vAv_A to the company over the local route, and one B job worth 8. The learner would do the A job and the mentor the B job. On each of the next two dates there are two B jobs, each worth 8. Nothing done by the local route counts here; it is worth 0 over itself.

Training is one session today. It costs a fee of 1, and both people spend the whole date in it, so neither of today’s jobs gets done. A fresh test at the end, done without AI help, passes with chance plearnp_{\text{learn}}. Someone who passes can do B work from the next date on, one job per date. Hiring costs 9 to recruit; the hire arrives next date and is paid 2 per date, plus 1 to part ways at the end. A contractor is not available today; on later dates one B contractor costs 7 per date and adds 8, a net gain of 1.

Now add it up. Train first: −1 today. If the learner passes, mentor and learner do both B jobs on each later date: 16, twice. If not, the mentor does one and a contractor the other: 9, twice. So training is worth 17 + 14 plearnp_{\text{learn}}. Not training: both of today’s jobs get done, 8+vA8 + v_A, and the later B gap is filled by a contractor (9 per date) or by a hire (worth exactly the same here, 27 for the two later dates minus the 9 to recruit). Either way, 26+vA26 + v_A.

Derived by hand · checked in Lean at two points

Vtrain=17+14 plearnVhire=Vcontract=26+vAVtrain>Vhire  ⟺  plearn>9+vA14\begin{aligned}V_{\text{train}}&=17+14\,p_{\text{learn}}\\ V_{\text{hire}}=V_{\text{contract}}&=26+v_A\\ V_{\text{train}}>V_{\text{hire}}&\iff p_{\text{learn}}>\frac{9+v_A}{14}\end{aligned}

In words: training loses today’s two jobs and the fee, and wins two extra B jobs on each later date if the test is passed; it must work often enough to beat what today’s work is worth.

With vA=4v_A = 4, training has to work at least 13 times in 14, about 93%. With training certain, it is worth 31 against 30: it wins, narrowly. At exactly 13/14, three different first decisions, train, hire now, or wait and contract later, are all worth 30. And once today’s A job is worth more than 5, training cannot win even if it always works.

What each letter stands for

plearnp_{\text{learn}}
Chance training produces someone who passes the test and can do B workprobability
vAv_A
Value of the learner’s own A job today, over the local routeillustrative units
Vtrain, Vhire, VcontractV_{\text{train}},\ V_{\text{hire}},\ V_{\text{contract}}
Value of training first, hiring now, or contracting later, each with the best later choicesillustrative units

Lesson 9 · Figure 1

The more today’s work is worth, the surer training must be.

202530020406080100Value over three dates (illustrative units)Chance training works (%)Hire or contractBreak-even 92.9%Training must work with chance13/14Train first (learner andmentor stop work today)Hire now, or contractlater (they tie here)31

Shown at Chance training works: 100 %; Value of the learner’s job today: 4.0 units. Turn on JavaScript to move the values.

Above 92.9%, train first: losing today’s two jobs and paying for the session is repaid by two people doing B work on both later dates.

Train first
31
Hire now
30
Wait, contract later
30
Training must work at least
13/14 ≈ 92.9%

One learner, one mentor, three dates; training stops both people’s work today. Every value is the best plan after the first choice, solved by the tested model code. Lean checks the two marked cases with today’s job worth 4: training certain (31 against 30) and the three-way tie at 13/14. The value axis starts at 16.

Model result · checked in Lean

Slide vAv_A down to 0, as if the learner had nothing to do today. The break-even falls to 9/14, about 64%, not to zero, because the mentor’s own B job is still lost. Now imagine both people had a quiet day. Then training costs only its fee. With nothing due today and a coin-flip chance of success, training is worth 24 against 18 for hiring or contracting. With today’s two jobs due and the same coin flip, training falls to 24 against 30. Same course, same people: the calendar decided. Training is cheapest in a lull.

The person has to stay

So far the trained person stayed. Now let them stay at each later date with chance pstayp_{\text{stay}}. A hire or a contractor is unaffected; training first now has to survive two chances of losing the person. The value of training becomes a curve, not a line, because both later dates need the person still there.

What each letter stands for

pstayp_{\text{stay}}
Chance the trained person is still with the company at each later dateprobability

Lesson 9 · Figure 2

Training pays only if the trained person almost surely stays.

202530020406080100Value over three dates (illustrative units)Chance the trained person stays each date (%)Hire or contractAbout 95.2%Chance per date the trainedperson staysTrain firstHire now, orcontract later31

Shown at Chance the trained person stays each date: 100 %. Turn on JavaScript to move the values.

Above about 95.2%, training pays: the trained person is likely to be there for both later dates.

Train first
31
Hire now or contract later
30

Same case as figure 1 with training certain and today’s job worth 4. The curve is solved by the tested model code; it is exactly 17+7p+7p217 + 7p + 7p^2, where pp is the chance the person stays, checked against the code at 21 points. Not proved in Lean.

Model result · computed

In this case, a one-point lead over hiring disappears as soon as the chance of staying drops below about 95% per date. At an even chance, training is worth 89/4, about 22, against 30. A trained person who leaves takes the payback with them, and here the payback was small to begin with.

What Lean checks

What the proofs cover

Lean, a program that checks every step of a proof, bounds every plan the planner could follow over the three dates, however it reacts to whether training worked, and confirms that a stated plan reaches that bound.

Checked in Lean

When training is certain and today’s A job is worth 4, training first is worth 31, and no plan does better.

J1_value · J1_globally_optimal in WorkforceDevelopment.lean

Show the Lean statement
theorem J1_value : evaluate J1 3 3 0 initial J1Witness = 31
theorem J1_globally_optimal : Physical J1 3 3 0 initial J1Witness ∧
    ∀ pi, Physical J1 3 3 0 initial pi →
      evaluate J1 3 3 0 initial pi ≤ evaluate J1 3 3 0 initial J1Witness
Checked in Lean

When training works with chance 13/14, three plans that start differently (wait, train, hire) are each worth 30, and no plan does better.

J11_three_equal_values · J11_globally_optimal in WorkforceDevelopment.lean

Show the Lean statement
theorem J11_three_equal_values :
    evaluate J11 3 3 0 initial J11Witness = 30 ∧
    evaluate J11 3 3 0 initial J11TrainWitness = 30 ∧
    evaluate J11 3 3 0 initial J11HireWitness = 30
theorem J11_globally_optimal : Physical J11 3 3 0 initial J11Witness ∧
    ∀ pi, Physical J11 3 3 0 initial pi →
      evaluate J11 3 3 0 initial pi ≤ evaluate J11 3 3 0 initial J11Witness
Checked in Lean

On a training date, neither the mentor nor the learner does any delivery work: the model cannot quietly count work that a session displaced.

training_excludes_mentor_delivery · training_excludes_learner_delivery in WorkforceDevelopment.lean

Show the Lean statement
theorem training_excludes_mentor_delivery (m : Model) (t : Nat) (s : State) (a : Action)
    (ha : allowed m t s a = true) (hs : session a = true) : (mentor a).toNat = 0
theorem training_excludes_learner_delivery (m : Model) (t : Nat) (s : State) (a : Action)
    (ha : allowed m t s a = true) (hs : session a = true) : learnerJob a = 0
Checked in Lean

In a window that ends, training on the last date never helps: removing the session keeps today’s work possible and saves its fee.

last_date_training_weakly_dominated in WorkforceDevelopment.lean

Show the Lean statement
theorem last_date_training_weakly_dominated (m : Model) (t : Nat) (s : State) (a : Action)
    (ha : allowed m t s a = true) (fee_nonnegative : 0 ≤ m.fee) :
    allowed m t s (eraseTraining a) = true ∧
    evaluate m (t+1) 1 t s (finish a) ≤
      evaluate m (t+1) 1 t s (finish (eraseTraining a))

What is not proved. The lines 17 + 14 plearnp_{\text{learn}} and 26+vA26 + v_A come from a complete hand derivation over every first decision and every later response, and the tested model code reproduces them; Lean checks only the two marked cases. The last-date result is about a window that ends: it gives no credit to skills used after the window, which is a choice of the model, not a claim that skills stop mattering. The curve in pstayp_{\text{stay}} and the other cases below are computed, with the code checked against an independently written calculation. No real learning rate, workload or chance of leaving has been measured.

What it means

Train in a lull, for work that will come

Training’s real price is today’s work. In this example, the fee is 1; the lost work is 8+vA8 + v_A. Any comparison that counts only the course fee will train too often. Any that ignores the later work will train too rarely.

The calendar decides. The same course, at the same chance of success, wins on a quiet date and loses on a busy one. Planning training for lulls, rather than whenever a course is available, is the single cheapest improvement this model suggests.

Training needs work to pay back. Change one condition at a time and training loses. A course that takes two sessions: at best 17 against 30. Only two dates to use the skill: 15 against 21 for contracting. Demand that stays one A and one B job per date, so the new B skill has nothing extra to do: 23 against 36 for the existing team. A cheaper contractor, at 3 instead of 7: contracting earns 38, above training’s 31. Development is not automatically the cheapest way to get capacity.

Optimism costs. Suppose the later work is high (two B jobs per date) or low (one), each with chance one-half. A plan made as if high demand were certain earns 23; the best plan for the true chance earns 29. Training for a forecast is a bet on the forecast.

The person must stay. Retention is not a separate HR question. It is a term in the investment’s return. If people trained in a scarce AI skill tend to leave for better offers, the return on training falls quickly, and hiring or contracting can win even when training works.

Where a shared function helps, and where it does not. Nothing here favours a shared function by name: a team that faced the same work, prices and people would reach the same numbers. A shared function earns its place only if it sees what a single team does not: lulls in one team that could host training for another, or B work across several teams that, added together, is enough to repay a course no single team could justify. If it cannot see that, or if its own overhead eats the one-point lead that training has here, the local choice is the right one.

Honest limits. One learner, one mentor, three dates, a test that perfectly detects the narrow skill, fixed wages, and a person who either stays or leaves for reasons outside the model. On-the-job learning that also produces work, noisy tests, forgetting, and people choosing to leave because of what they were paid are all missing. Stantcheva studies when learning and working substitute or complement each other; here a session is learning instead of work, by assumption.

Next

Next: keeping what was learned

Training creates capability; people leaving destroys it. The last lesson asks the question that follows. When the expert who knows why the reader fails may leave, what should be preserved, a record, a trained backup or both, and who will pay for a backup that every team values but no team needs today? Lesson 10.