Compare Hire, Train, and Contract Cost for a GTM Engineer
The problem
Hire, contractor, and train-from-ops get compared as three different units (loaded salary, a day rate, a raise), so finance cannot see year-1 cost per productive FTE-month, and the cheaper options look expensive until ramp and FTE share sit in the same denominator.
Run it in your LLM
One prompt for Claude or ChatGPT that puts hire, contractor, and train-from-ops into the same unit: year-1 cost per productive FTE-month, with a qualitative pass on speed, control, retention, and knowledge in-house. Type run the example after pasting it to test it on the fictional data built into the prompt.
# GTM engineer hire vs train vs contract cost
You are a senior GTM and RevOps lead reporting to the CRO. Compare year-1 cost per productive FTE-month for three ways to add GTM engineering capacity: hire full time, contract, and train an internal ops person. Put every option in the same units so a cheaper-looking contractor is not compared to a fully loaded hire without ramp and FTE share.
This page is a cost comparison. Ramped SDR count from a quarterly bookings target is a different question, on the SDR headcount playbook. Ramp curves for quota-carrying reps are on the ramp-capacity plan. Tool seat spend is on the seat-spend audit. Do not name vendors, quote salary surveys, or treat the example numbers as market benchmarks.
## Rules
- Use only the data in this conversation. Do not invent salaries, contractor rates, recruiting fees, or load percents. If something is missing, ask for it, or use the fallback this prompt defines and label it as an assumption.
- Run the calculations in code if you can. If you cannot run code, say so at the top and show the working.
- Show the formula next to every headline number.
- Round money to the nearest dollar. Keep the unrounded per-FTE-month figure next to it when it is not already whole. Rank options on the unrounded per-FTE-month, and round the savings after subtracting those unrounded figures.
- The example inputs are fictional. Label every output that uses them "Example data (fictional)". They are not a salary, rate, or recruiting-fee benchmark.
- Read only. Do not change HRIS records, contracts, or reqs. Report what the numbers imply and leave the hire, contract, or train decision to the user.
- Format: money to the nearest dollar, FTE and FTE-months to one decimal if not whole.
## Definitions
- Year-1 cost is cash out the door in the first twelve months for that option, not a three-year NPV and not fully loaded cost in later years.
- Productive months = 12 minus ramp months. A 3-month ramp is 9 productive months. Ramp of 0 is 12 productive months. Do not use a ramp of 12 or more.
- FTE is the share of a person on GTM engineering work. 1.0 is a full-time seat. 0.5 is half-time on GTM engineering.
- FTE-months = productive months x FTE.
- Cost per FTE-month = year-1 cost / FTE-months. This is the comparison unit.
- Hire year-1 = base x (1 + load percent / 100) + base x (recruiting fee percent / 100). Load is benefits and taxes. Recruiting fee is a percent of base, paid once in year 1.
- Contractor year-1 = hourly rate x hours per week x weeks per year.
- Train year-1 = raise + training and tools + backfill of the old role. Incremental only: do not add the person's existing salary.
- Do not divide by zero. If FTE-months are 0, stop and say which input is unusable.
## Step 0. Inputs
If the user says "run the example", use the EXAMPLE DATA section at the end of this prompt, do not ask any questions, and label every output "Example data (fictional)".
Otherwise ask for everything below in one message, skipping anything the user already gave:
1. A CSV of options, one row per option, with these columns (ask the user to map theirs):
- scenario (id, for example 2026-plan), option (label), kind (hire, contractor, or train)
- hire: base, load_pct, recruiting_fee_pct, ramp_months, fte
- contractor: hourly_rate, hours_per_week, weeks_per_year, ramp_months, fte
- train: raise, training_tools, backfill, ramp_months, fte
Where to get it: finance or the hiring manager for base, raise, and backfill; the recruiter or offer letter for recruiting fee; HR for load percent; the contractor's SOW for rate, hours, and weeks; the manager for ramp and FTE share. Percents are 25 for 25%.
2. Which scenario to score. Default: the last scenario that still has one hire, one contractor, and one train after the data check.
Then report a data check: rows read; rows left out and why (duplicate option in a scenario, no scenario id, kind not hire/contractor/train, inputs not numbers, a value that cannot be used); options kept. Ask the user to confirm before going on, unless they said "run the example".
## Step 1. Year-1 cost and FTE-months
For each kept option in the scored scenario:
- Hire: loaded = base x (1 + load_pct / 100); recruiting = base x (recruiting_fee_pct / 100); year-1 = loaded + recruiting.
- Contractor: year-1 = hourly_rate x hours_per_week x weeks_per_year.
- Train: year-1 = raise + training_tools + backfill.
- Productive months = 12 - ramp_months. FTE-months = productive months x fte. Cost per FTE-month = year-1 / FTE-months.
## Step 2. Rank and savings
Rank the three options by unrounded cost per FTE-month, cheapest first. Savings versus the most expensive = most expensive per FTE-month minus cheapest per FTE-month, then round to the nearest dollar.
Then a short qualitative section, not a score, on when each one wins. Use only these four lenses, and do not invent a vendor or a market rate:
- Speed to a productive month (ramp).
- Control of how the work is built and who owns the repo.
- Retention risk (a contractor leaves at the end of the SOW; a new hire you just recruited can leave; an internal person already stayed).
- Knowledge staying in-house (train and hire keep it; a contractor usually does not).
State that the cheapest option on cost per FTE-month is not automatically the right one if speed or control matters more this quarter.
## Step 3. Output
Start with a five-line summary:
- Headline: "{cheapest} is cheapest at {perFte} per FTE-month, {savings} less than {mostExpensive}."
- Hire: "{year1} year-1 over {fteMonths} FTE-months = {perFte} per FTE-month."
- Contractor: same shape.
- Train: same shape.
- One line: "This is year-1 cost per productive FTE-month, not a req decision and not a three-year NPV. {excluded} rows were left out. Example inputs, not benchmarks."
Then these tables:
1. Data check
2. Scored options (inputs, year-1, productive months, FTE-months, unrounded per FTE-month, rounded per FTE-month)
3. Rank and savings
4. When each wins (speed, control, retention risk, knowledge in-house)
5. Assumptions, each labeled as an assumption, including: 12 months is year 1; ramp is unpaid in output but still paid in cash for hire and train; contractor weeks are the billed weeks, not 52; load and recruiting fee are the company's own percents; SDR headcount from a bookings target lives on the SDR headcount playbook.
If you can create files, offer the scored rows as a CSV download.
## EXAMPLE DATA (fictional, for testing this prompt)
Use this only when the user says "run the example". The company and people are made up. Every dollar figure is an example input to replace, not a salary or rate benchmark.
- Score 2026-plan
- Hire: base $160,000, load 25%, recruiting fee 20% of base, 3-month ramp, 1.0 FTE
- Contractor: $125/hr, 20 hours/week, 48 weeks, no ramp, 0.5 FTE
- Train: raise $15,000, training and tools $5,000, backfill of half the old role $45,000, 3-month ramp, 0.5 FTE on GTM engineering
Options:
```csv
scenario,option,kind,base,load_pct,recruiting_fee_pct,hourly_rate,hours_per_week,weeks_per_year,raise,training_tools,backfill,ramp_months,fte
2026-plan,Hire full time,hire,160000,25,20,,,,,,,3,1
2026-plan,Contractor,contractor,,,,125,20,48,,,,0,0.5
2026-plan,Train internal ops person,train,,,,,,,15000,5000,45000,3,0.5
2026-plan,Hire full time again,hire,160000,25,20,,,,,,,3,1
BAD-1,Hire full time,hire,0,25,20,,,,,,,3,1
,Train internal ops person,train,,,,,,,15000,5000,45000,3,0.5
```
How to run it
- Open Claude or ChatGPT with code execution on (Claude's analysis tool, ChatGPT data analysis). Without it the model does arithmetic by hand, and you should check every number.
- Paste the prompt. To test it first, send "run the example" and compare with the expected results below.
- Attach a CSV of options with kind hire, contractor, or train and that kind's money fields. The prompt lists the columns.
- Read the data check first. Take the three per-FTE-month numbers and the cheapest-vs-most-expensive gap to the staffing conversation. Keep every dollar figure labeled as an example input, not a salary or rate benchmark.
Before you paste compensation data
Base, raise, contractor rate, and recruiting fee are commercially sensitive. Check your company's AI and data policy, prefer a business or enterprise plan, and drop names: the prompt only needs scenario ids and amounts. It reads the extract and changes nothing in the HRIS.
Expected results on the example data
A correct run of "run the example" should match these, give or take rounding. They are computed from the prompt's definitions by a reference implementation that is tested against hand-worked numbers. The data is fictional.
- Data check
- 6 rows; kept hire, contractor, train; left out: 2026-plan / Hire full time again (duplicate option in scenario), BAD-1 / Hire full time (Hire base salary must be above zero.), (blank scenario) / Train internal ops person (no scenario id)
- Hire
- $232,000 / 9 FTE-months = $25,778
- Contractor
- $120,000 / 6 FTE-months = $20,000
- Train
- $65,000 / 4.5 FTE-months = $14,444; cheapest, $11,333 less per FTE-month than hire
| Option | Year-1 | FTE-months | Per FTE-month |
|---|---|---|---|
| Hire full time | $232,000 | 9 | $25,778 |
| Contractor | $120,000 | 6 | $20,000 |
| Train internal ops person | $65,000 | 4.5 | $14,444 |
Hire $160,000 x 1.25 + $32,000 fee = $232,000 / 9 = $25,778. Contractor $125 x 20 x 48 = $120,000 / 6 = $20,000. Train $15,000 + $5,000 + $45,000 = $65,000 / 4.5 = $14,444. Train vs hire $11,333 on the unrounded per-FTE-month figures. Example inputs, not benchmarks.
Hire vs train vs contract, year-1 per FTE-month
Compare year-1 cash out the door per productive FTE-month. Every field is an example input to replace, not a salary or rate benchmark. Prefilled with the fictional example.
- Hire full time
- $25,778
- $232,000 year-1 / 9 FTE-months, $25,777.78 before rounding
- Contractor
- $20,000
- $120,000 year-1 / 6 FTE-months
- Train internal ops person
- $14,444
- $65,000 year-1 / 4.5 FTE-months, $14,444.44 before rounding
Cheapest on cost per FTE-month: Train internal ops person at $14,444, $11,333 less than Hire full time. Savings use the unrounded figures, then round.
When each one wins (qualitative)
Cost per FTE-month is one lens. Speed, control, retention, and where the knowledge sits are not in the formula. This is not a vendor recommendation.
- Hire full time. Slowest in the example (3-month ramp) and the highest year-1 cash, but you own the repo, the person sits inside the company, and the knowledge stays if they stay. Recruiting fee is paid whether they work out.
- Contractor. Fastest when ramp is 0, billed hours only, no load or fee. Control is weaker, and the knowledge usually leaves at the end of the SOW. A 0.5 FTE is half a person, not a cheap full-time seat.
- Train internal ops. Cheapest on this math, knowledge already in-house, and retention of someone who already stayed. You still backfill the old role, you still wait out ramp, and 0.5 FTE is not a full GTM-engineering seat.
Year-1 cost per productive FTE-month, not a req-open date. Ramped SDR count from a quarterly target is on the SDR headcount playbook. Quota-carrying ramp is on the ramp-capacity plan; unused tool seats are on the seat-spend audit.
Implementation steps
- 1
Write the definitions down with finance and the hiring manager before pulling numbers: year-1 cost is cash out the door in the first twelve months; productive months = 12 minus ramp; FTE is the share of a person on GTM engineering; cost per FTE-month = year-1 / (productive months x FTE). Every dollar figure is an input you replace, not a salary or rate benchmark. Ramped SDR count from a bookings target is a different question, on the SDR headcount playbook
- 2
Collect one row per option. Drop rows with a missing scenario id, a duplicate hire/contractor/train in the same scenario, a base or rate of zero, a ramp of 12 months or more, or an FTE of zero, and list each dropped row
- 3
Hire: loaded = base x (1 + load percent / 100); recruiting fee = base x (fee percent / 100); year-1 = loaded + recruiting. In the fictional example $160,000 base, 25% load, 20% fee, 3-month ramp, 1.0 FTE: $200,000 + $32,000 = $232,000 over 9 FTE-months = $25,778 per FTE-month. Round money to the nearest dollar
- 4
Contractor: year-1 = hourly rate x hours per week x weeks per year. In the fictional example $125 x 20 x 48 = $120,000, no ramp, 0.5 FTE: 6 FTE-months, $20,000 per FTE-month. Weeks are billed weeks, not 52, unless you say so
- 5
Train: year-1 = raise + training and tools + backfill of the old role (incremental only; do not add the person's existing salary). In the fictional example $15,000 + $5,000 + $45,000 = $65,000, 3-month ramp, 0.5 FTE on GTM engineering: 4.5 FTE-months, $14,444 per FTE-month
- 6
Rank on unrounded cost per FTE-month. Savings versus the most expensive = that gap, then round. In the fictional example train vs hire is $11,333 per FTE-month. Then a qualitative pass, not a score: speed (ramp), control of the work, retention risk, and whether the knowledge stays in-house. Cheapest is not automatically right if you need a productive month this quarter. Quota-carrying ramp is on the ramp-capacity plan; unused tool seats are on the seat-spend audit
- 7
Run it with the copy-paste prompt on this page in Claude or ChatGPT, or with formulas in the template, and use the calculator on this page to test other bases, rates, and FTE shares. Share the three per-FTE-month numbers and the qualitative line with finance; this is a cost comparison, not a req-open date and not a three-year NPV
- 8
Rerun when the raise, rate, ramp, or FTE share changes, and store the inputs so a recruiter fee change or a contractor who just became 30 hours a week shows up before the next headcount review
Template outline
The structure to recreate in your own workspace. Field names and thresholds are starting points.
Google Sheet: GTM engineer hire vs train vs contract FYxx (RevOps owns the comparison; finance owns the cash)
Tab inputs: score_scenario
Tab options (one row per option):
scenario, option, kind (hire | contractor | train),
base, load_pct, recruiting_fee_pct,
hourly_rate, hours_per_week, weeks_per_year,
raise, training_tools, backfill,
ramp_months, fte
kept = unique (scenario, kind) AND kind in hire, contractor, train AND the kind's money fields are numbers
hire needs base > 0, load_pct >= 0, recruiting_fee_pct >= 0
contractor needs hourly_rate, hours_per_week, weeks_per_year > 0
train needs raise, training_tools, backfill >= 0 and year-1 > 0
ramp_months in [0, 12); fte > 0
Tab cost:
productive_months = 12 - ramp_months
fte_months = productive_months x fte
hire_year1 = base x (1 + load_pct / 100) + base x (recruiting_fee_pct / 100)
contractor_year1 = hourly_rate x hours_per_week x weeks_per_year
train_year1 = raise + training_tools + backfill
per_fte_month = year1 / fte_months
per_fte_month_rounded = ROUND(per_fte_month, 0)
savings = ROUND(MAX(per_fte_month) - MIN(per_fte_month), 0)
Worked example (example data, fictional): score 2026-plan
6 rows read, 3 kept (hire, contractor, train). Left out: hire listed twice; BAD-1 base 0; blank scenario.
Hire $160,000 x 1.25 = $200,000 loaded + $32,000 fee = $232,000 / 9 FTE-months = $25,778.
Contractor $125 x 20 x 48 = $120,000 / 6 FTE-months = $20,000.
Train $15,000 + $5,000 + $45,000 = $65,000 / 4.5 FTE-months = $14,444.
Cheapest: train. Savings vs hire on unrounded per-FTE-month: $11,333.
Inputs are examples to replace, not benchmarks.
Calculator on this page, prefilled: the same six hire, five contractor, and five train fields. Every money line above matches.
Slack to #sales-leadership before the req conversation:
"GTM engineer year-1 per FTE-month ({{scenario}}): hire {{hire_per}}, contractor {{contractor_per}}, train {{train_per}}.
Cheapest: {{cheapest}} by {{savings}} vs {{most_expensive}}. Example inputs, not a survey.
Qualitative: {{speed_line}}. Sheet: {{sheet_url}}"
Tab history: scenario, kind, year1, fte_months, per_fte_monthCost, time saved, and break-even
Tool cost here is your share of an LLM plan, which depends on your vendor, so it is an input. Every number below is an example input; replace each with your own figure. Hours saved are estimates, not measured results. The hire, contractor, and train dollar figures in the calculator are also example inputs, not salary or rate benchmarks.
Inputs (all assumptions)
Replace each value with your own figure.
- THours a quarter to pull hire, contractor, and train inputs and size year-1 cost per FTE-month by hand4AssumptionTime the next three staffing-comparison reviews.
- VHours a quarter with the prompt or template (export, review the data check and the results)0.8AssumptionTime the first two quarterly runs, then multiply by three for the quarter.
- RLoaded hourly cost of the RevOps or finance analyst$75AssumptionSalary plus benefits, divided by working hours.
- KMonthly tool cost for the LLM plan$20AssumptionYour share of the Claude or ChatGPT plan, from current vendor pricing and your invoices; Google Sheets and Slack are usually already paid for.
Formulas
- Time saved per quarter (estimate)
T - V - 4 - 0.8 = 3.2 hours
- Time saved per week (estimate)
(T - V) / 13 - 3.2 / 13 = 0.2 hours
- Value of time saved per quarter (estimate)
(T - V) x R - 3.2 x $75 = $240
- Tool cost per quarter
K x 3 - $20 x 3 = $60
- Break-even hours per quarter (estimate)
K x 3 / R - $60 / $75 = 0.8 hours, so the run covers its tool cost once it saves 48 minutes a quarter
- Cost per FTE-month (fictional example data)
year-1 cost / ((12 - ramp months) x FTE) - Hire $232,000 / 9 = $25,778; contractor $120,000 / 6 = $20,000; train $65,000 / 4.5 = $14,444; train vs hire $11,333 on the unrounded figures
- The time math counts analyst time only and is an estimate. Opening a req or signing a contractor is a much larger number, but that decision is yours, so it is not added to the time savings.
- A rounded cost per FTE-month is not a forecast of what you will pay. Recheck when the raise, rate, or ramp changes.
- Rerun the time math after the first two quarters with your real review time V.
Common questions
- How do you compare hire, contractor, and train for a GTM engineer?
- Put each option in year-1 cost per productive FTE-month. Year-1 is cash out the door. Productive months are 12 minus ramp. FTE is the share of a person on GTM engineering. In the fictional example hire is $25,778, contractor $20,000, train $14,444. Money rounds to the nearest dollar.
- Why is train cheaper than contractor in the example?
- Train year-1 is only the incremental raise, training, and backfill ($65,000), spread over 4.5 FTE-months. Contractor year-1 is the billed hours ($120,000) over 6 FTE-months. Replace the inputs with yours. Cheapest on this math is not automatically right if you need speed or a full FTE this quarter.
- How is the $11,333 savings calculated?
- Subtract unrounded cost per FTE-month, then round. Hire $232,000 / 9 minus train $65,000 / 4.5 is $11,333.33..., $11,333 rounded. Subtracting the already-rounded $25,778 and $14,444 would give $11,334, so the sheet keeps the unrounded figures for the gap.
- When does each option win besides cost?
- Hire: control and knowledge in-house, slower and a recruiting fee you pay whether they stay. Contractor: speed when ramp is 0, billed hours only, knowledge usually leaves with the SOW. Train: cheapest on this math, knowledge already in-house, you still backfill the old role and you still wait out ramp. None of that is a vendor claim.
- How much time does it save?
- With the example inputs, building the comparison by hand takes 4 hours a quarter and reviewing the prompt or template run takes 0.8, so 3.2 hours a quarter are saved, about 0.2 hours a week. That is an estimate, worth $240 a quarter at $75 an hour against an example $60 a quarter LLM plan share.
Keep going
Related playbooks
- RevOpsIntermediate
Work Back from a New-Logo Bookings Target to the Ramped SDRs You Need
Headcount plans start from "how many SDRs do we have" instead of the quarterly new-logo bookings target, so finance and sales argue about reqs without a shared funnel from ACV, win rate, show rate, and meetings booked per ramped SDR.
HubSpot or SalesforceGoogle SheetsClaude or ChatGPT+1Estimate: 0.3 hrs/week - Finance/FP&AIntermediate
Plan Sales Capacity with Ramp and Attrition, Not Headcount
Bookings targets are usually funded as headcount times quota, which assumes every rep is fully ramped all year and nobody leaves, so a plan can look covered on paper while new hires are still ramping, leavers' seats sit empty for months, and the shortfall shows up mid-year, too late to hire into.
HubSpot or SalesforceBambooHR, Rippling, or WorkdayGoogle Sheets or Clay+2Estimate: 1 hrs/week - Finance/FP&AIntermediate
Audit GTM Tool Seats and Credits Against Usage Before Renewal
GTM tools renew on different dates with different notice periods, seats stay assigned to people who left or stopped logging in, and credit plans are sized for last year's volume, so finance finds unused seats after the notice deadline has passed and pays for another full term.
Google SheetsHubSpot or SalesforceClay+3Estimate: 1 hrs/week
Need help implementing a playbook?
Our team builds custom Clay workflows and AI automations for revenue teams.
Get it built for you