Disclosure: We may earn a commission from clearly labeled partner links. Eligibility, required capabilities and total cost determine the recommendation, not affiliate status.
Cost verdict: GitHub-hosted standard Linux minutes cost $0.006 each once you pass your plan's included minutes (2,000 on Free, 3,000 on Pro and Team, 50,000 on Enterprise Cloud), and GitHub's billing page says self-hosted runner usage is free. A self-hosted runner therefore pays for itself only if the server, and the time you spend on it, costs less than the overage. With a $24-a-month server on a Team plan, the break-even is 7,000 billed minutes a month; on a 4-core larger runner it is 2,000.
What GitHub bills for hosted runners
All figures below are from GitHub's billing documentation, checked October 8, 2026, in US dollars before tax. They apply to private repositories: standard GitHub-hosted runners are free in public repositories. GitHub rounds each job up to the next whole minute, so use the billed minutes from your usage report, not the sum of run durations.
| Plan | Included minutes / month | Included artifact storage |
|---|---|---|
| GitHub Free (and Free for organizations) | 2,000 | 500 MB |
| GitHub Pro | 3,000 | 1 GB |
| GitHub Team | 3,000 | 2 GB |
| GitHub Enterprise Cloud | 50,000 | 50 GB |
| Hosted runner | Per minute | Plan minutes apply? |
|---|---|---|
| Linux 2-core (standard) | $0.006 | Yes |
| Linux 4-core (larger) | $0.012 | No, always billed |
| Linux 8-core (larger) | $0.022 | No, always billed |
| Linux 16-core (larger) | $0.042 | No, always billed |
| Windows 2-core / macOS | $0.010 / $0.062 | Not modelled, see below |
Storage beyond the plan's allowance is billed at $0.25 per GB-month for artifacts and Packages, and $0.07 per GB-month for Actions cache beyond 10 GB per repository. GitHub-side storage is billed whether jobs run on hosted or self-hosted runners, so the calculator adds it to both sides and it does not move the break-even. We do not model Windows and macOS because GitHub's billing page does not say how included plan minutes convert for them; use its pricing calculator for those.
Self-hosted billing: what GitHub says today, and why it is an input
GitHub's Actions billing page states that usage is free for self-hosted runners. In December 2025 GitHub announced a $0.002 per-minute platform charge for self-hosted runners in private repositories from March 1, 2026. It then said it was postponing that change to re-evaluate its approach, and the charge is not on the billing page now. Because the policy was explicitly left open, the calculator has a platform-fee field that defaults to $0 (GitHub's current position) and lets you enter $0.002 to see the postponed charge. Check GitHub's billing page before committing to a multi-month server purchase.
Hosted vs self-hosted calculator
Enter your own numbers. Billed minutes should come from GitHub's usage report. The server cost is what you would pay for the machine; operator time is entered by you and shown separately, never assumed. The tool refuses zero, negative or non-numeric quantities, and it models standard Linux 2-core and larger Linux runners only.
Formulas: hosted minutes cost = max(0, billed minutes − included minutes) × rate for standard runners, or billed minutes × rate for larger runners. Self-hosted infrastructure = server + other costs + platform fee × billed minutes. Break-even minutes = (fixed monthly cost + rate × included minutes) ÷ (rate − platform fee), where included minutes is zero for larger runners; if the fee is at least the hosted rate, self-hosting never breaks even. Operator cost = hours × your hourly value, added to the fixed monthly cost for the second break-even.
Break-even for a $24-a-month server
| Scenario | Hosted cost at 10,000 billed min | Self-hosted infrastructure | Break-even billed minutes |
|---|---|---|---|
| Free plan, Linux 2-core | $48 | $24 | 6,000 |
| Pro or Team plan, Linux 2-core | $42 | $24 | 7,000 |
| Enterprise Cloud, Linux 2-core | $0 (inside 50,000 included) | $24 | 54,000 |
| Any plan, Linux 4-core larger runner | $120 | $24 | 2,000 |
| Team plan with the postponed $0.002 fee | $42 | $44 | 10,500 |
| Team plan, plus 2 hours at a $60 value you chose | $42 | $24 + $120 of your time | 27,000 |
The last row is an example of the arithmetic with numbers we picked for illustration, not an estimate of anyone's maintenance time. Below the break-even, hosted minutes are cheaper; above it, self-hosting is cheaper on infrastructure alone. On Enterprise Cloud the included 50,000 minutes cover most teams, so the question usually arises only for larger runners or very heavy pipelines.
Costs the calculator leaves out
A self-hosted runner is not a like-for-like replacement for a GitHub-hosted one: hardware, isolation, patching, security exposure, autoscaling, queue time and the work of keeping it running are real costs, and public-repository safety needs separate care. An existing server with spare capacity can have a near-zero marginal cost, which is the strongest case for self-hosting; a new server bought only for CI has to clear the full break-even. Bandwidth and backups on your own infrastructure are entered under other costs. This page prices the decision and is not a runner setup or CI architecture guide.
Server-side examples, kept neutral
As reference points only, and not equivalent to GitHub's 2-core runner or to each other: DigitalOcean lists a Basic Droplet with 2 vCPUs and 4 GiB of memory at $24 a month, billed per second since January 1, 2026. Contabo lists Cloud VPS 4 with 4 vCPU cores and 8 GB of RAM at €5.32 a month including VAT in its European view, in euros, so it is not converted into the dollar rows above. View DigitalOcean Droplets (partner link) View Contabo VPS pricing (partner link). Neither is a recommendation, and a provider you already use or hardware you own can be the cheaper answer.
Sources
GitHub documentation read October 8, 2026: GitHub Actions billing, included usage by plan, Actions runner pricing and GitHub's December 2025 Actions pricing update. Server prices: DigitalOcean and Contabo. Prices are public list prices, not quotes.