1. Scope
Estimates engineering hours, downtime opportunity cost, and payback months for migrating between LLM providers. Heuristic effort multipliers, not measured velocity.
2. Inputs and outputs
Inputs
- currentMonthlySpendUsd number ($)
- promptComplexity number (1–10)
- evalSuiteSize number
- retrainingEngineeringHours number
- downtimeDays number
- hourlyEngineeringCost number ($)
- newVendorDiscountPercent number (0–100)
Outputs
- totalSwitchingCost
Engineering $ + downtime opportunity cost.
- monthsOfSpendEquivalent
Switching cost / current monthly spend.
- paybackMonths
Switching cost / monthly savings at new vendor discount.
Engine source: src/lib/llm-vendor-lock-in-cost/engine.ts
3. Formula / scoring logic
prompt_hr = complexity × 4
eval_hr = evals × 0.5
total_hr = prompt_hr + eval_hr + retraining_hr
downtime_$ = days × monthly_spend / 30
switching = total_hr × hourly + downtime_$ 4. Assumptions
- 4 engineering hours per complexity-point of prompt rewriting.
- 0.5 hours per eval test for migration / recalibration.
- Downtime opportunity cost approximated by daily share of monthly LLM spend — a placeholder when actual revenue impact isn't known.
5. Data sources
- BLS Occupational Employment and Wage Statistics — software developers as of 2024-05
- Stack Overflow Developer Survey as of 2024
6. Known limitations
- Effort multipliers are heuristic; structured outputs, tool-call surface, and parser custom-code change real effort 2–10×.
- Doesn't model the cost of running both providers in parallel during cutover (a common pattern).
7. Reproducibility
Input
$8000 spend, complexity 6, 80 evals, 40 retrain hr, 2 downtime days, $150/hr, 30% discount.
Expected output
totalEngineeringHours 104, switchingCost ≈ $16,133, paybackMonths ≈ 6.72.
8. Change log
- 2026-05-08 methodology first published.
Worked example
Run live against the same engine this site ships
(/engines/llm-vendor-lock-in-cost.js).
The inputs and outputs below are recomputed on every build and
independently re-verified in CI — they are never hand-authored.
Input
- tool
- llm_vendor_lock_in_cost
- current_monthly_spend_usd
- 8000
- prompt_complexity
- 6
- eval_suite_size
- 80
- retraining_engineering_hours
- 40
- downtime_days
- 2
- hourly_engineering_cost
- 150
- new_vendor_discount_percent
- 30
Output
- promptRewriteHours
- 24
- evalRewriteHours
- 40
- totalEngineeringHours
- 104
- engineeringDollarCost
- 15600
- downtimeOpportunityCost
- 533.33
- totalSwitchingCost
- 16133.33
- monthsOfSpendEquivalent
- 2.02
- monthlySavingsAtDiscount
- 2400
- paybackMonths
- 6.72
Frequently asked questions
- What does the LLM Vendor Lock-In Cost calculate?
- Estimates engineering hours, downtime opportunity cost, and payback months for migrating between LLM providers. Heuristic effort multipliers, not measured velocity.
- What inputs does the LLM Vendor Lock-In Cost need?
- It takes 7 inputs: currentMonthlySpendUsd, promptComplexity, evalSuiteSize, retrainingEngineeringHours, downtimeDays, hourlyEngineeringCost, newVendorDiscountPercent. Outputs returned: totalSwitchingCost, monthsOfSpendEquivalent, paybackMonths.
- What formula does the LLM Vendor Lock-In Cost use?
- The exact computation is: prompt_hr = complexity × 4; eval_hr = evals × 0.5; total_hr = prompt_hr + eval_hr + retraining_hr; downtime_$ = days × monthly_spend / 30; switching = total_hr × hourly + downtime_$
- Can I verify the LLM Vendor Lock-In Cost with a worked example?
- Yes. With $8000 spend, complexity 6, 80 evals, 40 retrain hr, 2 downtime days, $150/hr, 30% discount. the tool returns totalEngineeringHours 104, switchingCost ≈ $16,133, paybackMonths ≈ 6.72.
- Where does the LLM Vendor Lock-In Cost get its benchmark data?
- Reference data is sourced from: BLS Occupational Employment and Wage Statistics — software developers (as of 2024-05); Stack Overflow Developer Survey (as of 2024).
- What can the LLM Vendor Lock-In Cost not tell me?
- Known limitations: Effort multipliers are heuristic; structured outputs, tool-call surface, and parser custom-code change real effort 2–10×. Doesn't model the cost of running both providers in parallel during cutover (a common pattern).