# How GitHub Actions pricing works

> How GitHub Actions pricing works: included minutes, per-minute rates, larger runners and storage, with every rate read from GitHub in September 2026.

Source: https://latchkey.dev/learn/cost/github-actions-pricing-explained  
Updated: 2026-09-20

How GitHub Actions pricing works comes down to three rules: standard runners are free on public repositories, private repositories get an allowance of included minutes each month, and everything past that allowance is billed per minute at a rate set by the operating system and the machine size. Storage for artifacts and caches is billed separately and by the hour, which is the part that shows up on the invoice without ever appearing in a workflow file.

Actions has no seat fee and no pipeline fee. It has a meter on compute time and a meter on stored bytes, and the rate on the first meter changes by a factor of ten depending on which runner label you typed.

This page states the rules and the rates as GitHub publishes them, with the date each one was read. If you want the arithmetic done for you, the [GitHub Actions cost calculator](/learn/cost/github-actions-cost-calculator) prices your own minute counts at these same rates.

## Rule one: standard runners are free on public repositories

GitHub's billing documentation puts this plainly: the use of standard GitHub-hosted runners is free in public repositories, for GitHub Pages and for Dependabot. There is no minute cap attached to that sentence, which is why open source projects run enormous matrices without ever seeing an invoice.

The exception is the one that catches people. Larger runners are always charged for, even when used by public repositories and even when your plan still has included minutes available. A public repository that switches a job to a 16-core runner starts paying $0.042 a minute on a workflow that was free the day before.

## Rule two: private repositories get an allowance, and it resets monthly

Every account gets a quota of included minutes for GitHub-hosted runners on private repositories, plus artifact and cache storage allowances. The minutes reset to the full amount at the start of each billing cycle, and usage is charged to the repository owner rather than to the person who triggered the run.

The allowance is generous at the top of the table and thin at the bottom. GitHub Enterprise Cloud includes 50,000 minutes; Team and Pro include 3,000; Free includes 2,000. At the standard Linux rate, a 3,000 minute allowance is $18 of compute, which a single busy repository can spend in a week.

| Plan | Included minutes | Artifact storage | Cache storage per repository |
| --- | --- | --- | --- |
| GitHub Free | 2,000 | 500 MB | 10 GB |
| GitHub Pro | 3,000 | 1 GB | 10 GB |
| GitHub Free for organizations | 2,000 | 500 MB | 10 GB |
| GitHub Team | 3,000 | 2 GB | 10 GB |
| GitHub Enterprise Cloud | 50,000 | 50 GB | 10 GB |

> Allowances read from [GitHub Actions billing](https://docs.github.com/en/billing/managing-billing-for-your-products/about-billing-for-github-actions) on 20 September 2026. Artifact storage is shared with GitHub Packages; cache storage is a separate 10 GB per repository on every plan.

## Rule three: past the allowance, you pay by the minute and by the machine

The rate depends on the operating system and the core count, and every job is rounded up to the whole minute. These are the standard runner rates in force since 1 January 2026, when GitHub reduced hosted runner prices by up to 39 percent and folded a $0.002 per minute Actions cloud platform charge into the listed numbers.

Read the last column before you plan anything. A macOS minute is 10.3 times a standard Linux x64 minute, and a Windows minute is 1.7 times one. Those ratios, not the absolute rates, are what decide where your money goes, and they are why [a mostly-macOS bill](/learn/cost/github-actions-macos-runner-cost) is the most common shape of a large Actions invoice.

| Standard runner | Per-minute rate | Cost of 1,000 minutes | Against Linux x64 |
| --- | --- | --- | --- |
| Linux 1-core x64 | $0.002 | $2.00 | 0.33x |
| Linux 2-core arm64 | $0.005 | $5.00 | 0.83x |
| Linux 2-core x64 | $0.006 | $6.00 | 1x |
| Windows 2-core x64 | $0.010 | $10.00 | 1.7x |
| Windows 2-core arm64 | $0.010 | $10.00 | 1.7x |
| macOS 3-core or 4-core | $0.062 | $62.00 | 10.3x |

> Rates read from [Actions runner pricing](https://docs.github.com/en/billing/reference/actions-runner-pricing) on 20 September 2026. The ratio column is those rates divided by the $0.006 Linux 2-core x64 rate.

## Larger runners are a separate pricing regime

Larger runners are available to organizations on GitHub Team and GitHub Enterprise Cloud, and they are billed on their own terms: included minutes cannot be used for them, they are not free for public repositories, and the rate scales with the cores. Linux x64 runs from $0.012 at 4 cores to $0.252 at 96 cores, and Windows costs roughly twice the Linux rate at every size.

The arm64 tier is the one worth knowing about, because it is cheaper than x64 at every size rather than more expensive: $0.008 against $0.012 at 4 cores, $0.014 against $0.022 at 8, $0.098 against $0.162 at 64. If your toolchain is already multi-architecture, that is a third off the compute line for a one-word change in the runner label, and [the GitHub Actions cost reduction page](/github-actions-cost-reduction) covers what a cheaper runner changes on top of that.

GitHub also publishes GPU runners at $0.052 a minute for 4-core Linux and $0.102 for 4-core Windows, and larger macOS runners at $0.077 for the 12-core and $0.102 for the 5-core M2 Pro.

| Larger runner size | Linux x64 | Linux arm64 | Windows x64 |
| --- | --- | --- | --- |
| 4-core | $0.012 | $0.008 | $0.022 |
| 8-core | $0.022 | $0.014 | $0.042 |
| 16-core | $0.042 | $0.026 | $0.082 |
| 32-core | $0.082 | $0.050 | $0.162 |
| 64-core | $0.162 | $0.098 | $0.322 |
| 96-core | $0.252 | not published | $0.552 |

> Per-minute rates read from [Actions runner pricing](https://docs.github.com/en/billing/reference/actions-runner-pricing) on 20 September 2026. arm64 is published up to 64 cores only.

## The second meter: storage

Storage accrues hourly, not monthly, and it keeps accruing after you stop looking at it. Artifacts and GitHub Packages share one allowance and cost $0.25 per GB-month above it. The Actions cache is a separate 10 GB per repository and costs $0.07 per GB-month above that, measured at the peak usage in each hour. Custom images for larger runners cost $0.07 per GB-month.

The detail that catches teams out is that deleting artifacts stops future charges but does not erase charges already accrued this cycle. GitHub's own example: 10 GB of artifacts held for ten days and then deleted still bills 2,400 GB-hours for the month. Short retention set in the workflow beats a cleanup script run in a panic, and [reducing your GitHub Actions costs](/learn/cost/reduce-github-actions-costs) has that setting alongside six other changes ordered by what they save.

| Storage type | Included | Price above the allowance |
| --- | --- | --- |
| Artifacts and GitHub Packages | 500 MB to 50 GB by plan, shared | $0.25 per GB-month |
| Actions cache | 10 GB per repository, every plan | $0.07 per GB-month |
| Custom images for larger runners | 75 GB on Team, 150 GB on Enterprise Cloud | $0.07 per GB-month |

> Storage rates and allowances read from [GitHub Actions billing](https://docs.github.com/en/billing/managing-billing-for-your-products/about-billing-for-github-actions) on 20 September 2026.

## What changed in 2026, and what did not

On 16 December 2025 GitHub announced two changes. Hosted runner prices would fall by up to 39 percent on 1 January 2026, and from 1 March 2026 a $0.002 per minute Actions cloud platform charge would apply to self-hosted runner usage in private repositories.

The price cut happened. The self-hosted charge did not: GitHub postponed it, in its own words, "to take time to re-evaluate our approach", and the billing documentation still says Actions usage is free for self-hosted runners. If you are budgeting for next year, the honest position is that self-hosted runners cost you nothing in GitHub fees today and that a $0.002 per minute charge has been drafted, announced and shelved once. [What a self-hosted GitHub runner really costs](/learn/cost/self-hosted-github-runner-total-cost) works through the rest of that bill, which is your own compute and the hours someone spends on the fleet.

## FAQ

### Is GitHub Actions really free?

It is genuinely free on public repositories when you use standard GitHub-hosted runners, with no minute cap, and it is free for GitHub Pages and Dependabot builds. On private repositories it is free only up to the included minutes in your plan, which is 2,000 a month on Free and 3,000 on Pro and Team. Larger runners are billed in every case.

### How much do GitHub Actions runners cost?

Standard runners cost $0.006 a minute for Linux 2-core x64, $0.005 for Linux 2-core arm64, $0.002 for the 1-core Linux runner, $0.010 for Windows and $0.062 for macOS. Larger Linux runners run from $0.012 a minute at 4 cores to $0.252 at 96 cores. Those were the published rates on 20 September 2026.

### What do GitHub Actions larger runners cost?

Between $0.012 and $0.252 a minute on Linux x64, $0.008 to $0.098 on Linux arm64, and $0.022 to $0.552 on Windows, plus $0.077 for the 12-core macOS runner and $0.102 for the 5-core M2 Pro. None of it is covered by included minutes, and it is charged on public repositories as well as private ones.

### What will be the impact of the change in Actions pricing?

The January 2026 change cut hosted runner prices by up to 39 percent, so a hosted-only bill went down. The change that would have raised bills, a $0.002 per minute platform charge on self-hosted runner usage announced for 1 March 2026, was postponed and has not taken effect. Budget on the current rates, and keep an eye on the changelog rather than on rumors.

## References

- [GitHub Actions billing: included minutes, storage and how usage is measured (verified 2026-09-20)](https://docs.github.com/en/billing/managing-billing-for-your-products/about-billing-for-github-actions)
- [GitHub: Actions runner pricing, every per-minute rate by runner (verified 2026-09-20)](https://docs.github.com/en/billing/reference/actions-runner-pricing)
- [GitHub Changelog: update to GitHub Actions pricing, 16 December 2025 (verified 2026-09-20)](https://github.blog/changelog/2025-12-16-coming-soon-simpler-pricing-and-a-better-experience-for-github-actions/)
- [GitHub: about larger runners, availability and billing rules (verified 2026-09-20)](https://docs.github.com/en/actions/concepts/runners/larger-runners)

---

Latchkey runs CI/CD that repairs its own failures. Agent entry points: https://latchkey.dev/agent.txt, https://latchkey.dev/openapi.json, https://latchkey.dev/llms.txt
