Why is my GitHub Actions bill so high?
What makes a GitHub Actions bill expensive?
A high GitHub Actions bill almost always comes from volume, not the rate: matrix jobs bill each leg separately, every job is rounded up to a whole minute, retries and runs superseded by a newer push still count, and larger runners bill from the first minute at $0.012 to $0.252 a minute with no included minutes. Find the workflows that use the most minutes, cancel superseded runs, trim the matrix and cache what each job rebuilds. Then cut the rate and the run time: Sengi runs Linux jobs on AMD Ryzen 9 7950X3D bare metal boosting past 5 GHz for $0.003 a minute against GitHub’s $0.006, and finishes them up to 1.9× faster, up to 74% less per build.
Last checked October 23, 2026, against GitHub’s Actions runner pricing reference and billing documentation.
What drives a GitHub Actions bill up?
| Driver | Example | Fix |
|---|---|---|
| Matrix fan-out | A ten-minute workflow across six parallel jobs bills sixty minutes. | Test the full matrix on the default branch; a subset on pull requests. |
| Per-job rounding | A 61-second job bills two minutes. | Merge tiny jobs into one. |
| Superseded pushes | Three quick pushes run the workflow three times. | concurrency with cancel-in-progress: true. |
| Retries | A five-minute failure plus a ten-minute retry bills fifteen. | Fix flaky tests rather than rerunning them. |
| Larger runners | 4 cores cost $0.012 a minute from the first minute. | Use them only for jobs that use the cores. |
| Rebuilt work | Every run reinstalls packages and rebuilds Docker layers. | Dependency and Docker layer caching. |
| Slow hardware | Each minute of a slow build is a billed minute. | A faster runner at a lower rate. |
Nine changes, each with its YAML and the saving it makes, are in how to reduce GitHub Actions costs, and how a minute is counted is in GitHub Actions billing explained.
How much does a faster, cheaper runner save?
On RunsOn’s open benchmark harness at 4 vCPU, run on Sengi October 9, 2026, a production Docker image cost $0.045 a build on Sengi against $0.175 on GitHub, 74% less, because it ran 1.9× faster at half the rate. Rust, TypeScript and Docker builds together cost $0.069 against $0.249. Work out your own month with the GitHub Actions cost calculator, and compare every provider in the runner comparison.
Frequently asked questions
How do I see what is using my GitHub Actions minutes?
Open billing and licensing for the account or organization and read the metered usage, then group it by repository and workflow. The workflows that run most often or across the widest matrix are usually most of the bill.
Does GitHub charge for queued time?
No. GitHub bills execution, from the moment a runner picks the job up, rounded up to a whole minute per job. Time spent waiting in the queue is not billed.
Do failed and cancelled runs cost minutes?
Yes, for the time they ran. A failure after five minutes followed by a ten-minute retry bills fifteen minutes. Cancelling superseded runs with a concurrency group stops paying for commits that were already replaced.
How much would the same work cost on Sengi?
Half per minute, then less again because builds finish sooner: $0.003 a minute at 2 vCPU against GitHub's $0.006, $0.006 at 4 vCPU against $0.012 and $0.012 at 8 vCPU against $0.022, on AMD Ryzen 9 7950X3D bare metal boosting past 5 GHz. The cost calculator works it out from your own minutes.
The fastest hardware for your GitHub Actions.
AMD Ryzen 9 7950X3D desktop CPUs boosting past 5 GHz, on bare metal with local NVMe, a fresh VM for every job, and 2 vCPU jobs ready in 2 seconds. Builds finish up to 1.9× faster than on GitHub’s runners, and at up to half GitHub’s price per minute they cost up to 74% less per build. Change one runs-on line, or give your coding agent one prompt and it opens the pull request for you.
