GitHub Actions Windows runner cost per minute
A Windows minute on GitHub Actions costs more than a Linux minute and much less than a macOS minute. This page lists the Windows rates this site's calculator uses and works through what they mean for a monthly bill.
The standard Windows runners
The standard runner is what a job gets from a label such as windows-latest. In the pricing data read on 2026-10-05 it costs $0.01 a minute, on x64 and on arm64 alike. The standard Linux 2-core runner is $0.006 a minute, so a Windows minute costs about two thirds more.
In a private repository, Windows minutes use your plan's included minutes first, one for one. The GitHub pages read on that date list no minute multiplier: a Windows minute counts as one included minute, and only minutes beyond the allowance are billed at the Windows rate. In a public repository the standard Windows runner is free.
Larger Windows runners
| Size | x64, per minute | arm64, per minute |
|---|---|---|
| 2-core | not listed | $0.008 |
| 4-core | $0.022 | $0.014 |
| 8-core | $0.042 | $0.026 |
| 16-core | $0.082 | $0.05 |
| 32-core | $0.162 | $0.098 |
| 64-core | $0.322 | $0.194 |
| 96-core | $0.552 | not listed |
"Not listed" means the price list read on that date has no Windows runner of that size and architecture. There is also a Windows 4-core runner with a GPU at $0.102 a minute. GitHub's pricing reference says included minutes cannot be used for larger runners and that they are not free for public repositories, so every minute in this table is billed.
Worked example: all jobs on Windows
A GitHub Team account tests a desktop application in a private repository: 30 jobs per working day on the standard Windows runner, 8 minutes each, 22 working days a month. That is 660 jobs and 5,280 minutes. The plan includes 3,000, so 2,280 minutes are billed. The calculator gives $22.80 a month ($273.60 a year).
The same minutes on the Linux 2-core runner come to $13.68 a month, $9.12 less. That comparison assumes the jobs take as long on Linux, which you would have to measure.
Worked example: Windows as one fifth of the jobs
Most teams run Windows for part of a test matrix only. Keep the 5,280 minutes, but put 80% of the jobs on Linux 2-core and 20% on Windows:
| Runner | Minutes | Included minutes used | Minutes beyond the plan | Cost per month |
|---|---|---|---|---|
| Linux 2-core | 4,224 | 2,400 | 1,824 | $10.94 |
| Windows 2-core | 1,056 | 600 | 456 | $4.56 |
| Total | 5,280 | 3,000 | 2,280 | $15.50 |
The total is $15.50 a month ($186.05 a year), with the included minutes shared between the two runners in proportion to their use. Because included minutes are really used up in the order jobs run, the calculator also gives a range: $13.68 if the Windows jobs used the allowance first and $17.90 if the Linux jobs did.
Worked example: a larger Windows runner
A slow build is moved to the Windows 8-core x64 runner: 10 jobs a day, 12 minutes each, 22 working days, 2,640 minutes. All of them are billed, and the calculator's full version gives $110.88 a month ($1,330.56 a year). The Linux 8-core x64 runner, at $0.022 a minute, would cost $58.08 a month ($696.96 a year) for the same minutes. At this size a Windows minute costs nearly twice a Linux minute, a wider gap than on the standard runners.
What to take from the numbers
- The gap to Linux grows with size. On standard runners Windows costs about two thirds more per minute; on larger x64 runners it costs close to double.
- arm64 is cheaper from 4 cores up. A larger Windows arm64 runner costs well under the x64 runner of the same size. Whether your toolchain runs on it is a separate question.
- Rounding applies. Each job is rounded up to a whole minute, so many short Windows jobs cost more than one longer job doing the same work.
Price your own Windows share. The free calculator takes your plan, jobs per day, job length and the percentage of jobs on each standard runner. The full version adds every larger runner in the table above.