Self-Hosted Runner Break-Even Calculator
Self-hosting looks cheaper until you count the idle compute and the engineering time. Run your numbers.
Self-hosted runners cut the per-minute rate but add two hidden costs: you pay for idle capacity, and someone has to scale, patch, and clean up the fleet. Enter your volume and ops reality to see where each model actually lands - and why managed runners give the compute savings without the ops bill.
Model (4-vCPU equivalent): GitHub-hosted $0.016/min. Self-hosted = on-demand instance ~$0.10/hr run at ~30% utilization (you pay for idle) plus your ops time. Latchkey $0.005/min with 2,000 free minutes and no ops. Adjust the inputs to your reality.
The three real costs
- Compute - per-minute (hosted) or per-hour-at-low-utilization (self-hosted, because runners sit idle between jobs).
- Ops - self-hosted means owning scaling, patching, disk cleanup, stale-runner cleanup, and the on-call when it breaks.
- Waste - flaky re-runs you pay for twice, on any model that does not self-heal.
Why managed wins the middle
Managed runners like Latchkey bill near self-hosted compute rates but carry zero ops cost, and self-healing removes the re-run waste. That is usually the lowest total cost once engineering time is priced in.