//github actions cost calculator · aws spot pricing
what are your CI minutes actually costing you?
Punch in your monthly GitHub Actions minutes and see the bill on GitHub-hosted runners next to the same workload on self-hosted RunsOn — real EC2 spot prices in your own AWS account, no per-minute markup.
toggle a platform off by setting its minutes to 0
start from a common setup
Not sure where to begin? Load a typical CI shape and tweak from there — the calculator updates instantly.
per-runner cost, by size
GitHub-hosted vs RunsOn $/min for every runner size — across architectures and instance generations. Pick spot or on-demand and set your gp3 root volume to match your setup.
arch generation
pricing gp3 root gb mb/s
| runner | instance | RunsOn / min | GitHub / min | you save | RunsOn CPU | GitHub CPU | CPU vs GitHub |
|---|---|---|---|---|---|---|---|
| 1cpu | m7a.medium | $0.0006 | $0.0020 | 3× | 2,882 | 2,269 | +27% |
| 2cpu | m7i-flex.large | $0.0010 | $0.0060 | 6× | 3,074 | 2,269 | +35% |
| 4cpu | m7i-flex.xlarge | $0.0017 | $0.0120 | 7× | 3,074 | 2,269 | +35% |
| 8cpu | c7i-flex.2xlarge | $0.0027 | $0.0220 | 8× | 3,038 | 2,269 | +34% |
| 16cpu | c7i-flex.4xlarge | $0.0043 | $0.0420 | 10× | 3,038 | 2,269 | +34% |
| 32cpu | c7i-flex.8xlarge | $0.0092 | $0.0820 | 9× | 3,038 | 2,269 | +34% |
| 48cpu | c7i-flex.12xlarge | $0.0088 | — | — | 3,038 | — | — |
| 64cpu | c7i-flex.16xlarge | $0.0133 | $0.1620 | 12× | 3,038 | 2,269 | +34% |
| 96cpu | c7i.24xlarge | $0.0223 | $0.2520 | 11× | 3,010 | 2,269 | +33% |
spot prices
· us-east-1 · incl. 30GB gp3 @ 400 MB/s
billed by AWS, to the second
| runner | instance | RunsOn / min | GitHub / min | you save | RunsOn CPU | GitHub CPU | CPU vs GitHub |
|---|---|---|---|---|---|---|---|
| 1cpu | m8g.medium | $0.0005 | — | — | 1,947 | — | — |
| 2cpu | m8g.large | $0.0009 | $0.0050 | 6× | 1,947 | 1,874 | +4% |
| 4cpu | m8g.xlarge | $0.0014 | $0.0080 | 6× | 1,947 | 1,874 | +4% |
| 8cpu | c8g.2xlarge | $0.0023 | $0.0140 | 6× | 1,932 | 1,874 | +3% |
| 16cpu | c8g.4xlarge | $0.0043 | $0.0260 | 6× | 1,932 | 1,874 | +3% |
| 32cpu | c8g.8xlarge | $0.0066 | $0.0500 | 8× | 1,932 | 1,874 | +3% |
| 48cpu | c8g.12xlarge | $0.0089 | — | — | 1,932 | — | — |
| 64cpu | c8g.16xlarge | $0.0114 | $0.0980 | 9× | 1,932 | 1,874 | +3% |
| 96cpu | c8g.24xlarge | $0.0176 | — | — | 1,932 | — | — |
spot prices
· us-east-1 · incl. 30GB gp3 @ 400 MB/s
billed by AWS, to the second
| runner | instance | RunsOn / min | GitHub / min | you save |
|---|---|---|---|---|
| 2cpu | m8i.large | $0.0020 | $0.0100 | 5× |
| 4cpu | m8i.xlarge | $0.0038 | $0.0220 | 6× |
| 8cpu | m8i.2xlarge | $0.0071 | $0.0420 | 6× |
| 16cpu | c8i.4xlarge | $0.0138 | $0.0820 | 6× |
| 32cpu | c8i.8xlarge | $0.0273 | $0.1620 | 6× |
| 64cpu | c8i.16xlarge | $0.0544 | $0.3220 | 6× |
| 96cpu | c8i.24xlarge | $0.0814 | $0.5520 | 7× |
spot prices
· us-east-1 · incl. 30GB gp3 @ 400 MB/s
billed by AWS, to the second
| runner | instance | RunsOn / min | GitHub / min | you save |
|---|---|---|---|---|
| 4cpu·T4 | g4dn.xlarge | $0.0041 | $0.0520 | 13× |
| 8cpu·T4 | g4dn.2xlarge | $0.0050 | — | — |
| 16cpu·A10 | g5.4xlarge | $0.0128 | — | — |
| 48cpu·4×T4 | g4dn.12xlarge | $0.0210 | — | — |
spot prices
· us-east-1 · gpu families · incl. 30GB gp3 @ 400 MB/s
billed by AWS, to the second
| runner | instance | RunsOn / min | GitHub / min | you save | RunsOn CPU | GitHub CPU | CPU vs GitHub |
|---|---|---|---|---|---|---|---|
| 2cpu | c6i.large | $0.0009 | $0.0060 | 7× | 2,297 | 2,269 | +1% |
| 4cpu | c6i.xlarge | $0.0013 | $0.0120 | 9× | 2,297 | 2,269 | +1% |
| 8cpu | c6i.2xlarge | $0.0030 | $0.0220 | 7× | 2,297 | 2,269 | +1% |
| 16cpu | c6i.4xlarge | $0.0054 | $0.0420 | 8× | 2,297 | 2,269 | +1% |
| 32cpu | c6i.8xlarge | $0.0079 | $0.0820 | 10× | 2,297 | 2,269 | +1% |
| 48cpu | c6i.12xlarge | $0.0104 | — | — | 2,297 | — | — |
| 64cpu | c6i.16xlarge | $0.0135 | $0.1620 | 12× | 2,297 | 2,269 | +1% |
| 96cpu | c6i.24xlarge | $0.0195 | $0.2520 | 13× | 2,297 | 2,269 | +1% |
spot prices
· us-east-1 · incl. 30GB gp3 @ 400 MB/s
billed by AWS, to the second
| runner | instance | RunsOn / min | GitHub / min | you save | RunsOn CPU | GitHub CPU | CPU vs GitHub |
|---|---|---|---|---|---|---|---|
| 1cpu | m7a.medium | $0.0006 | $0.0020 | 3× | 2,882 | 2,269 | +27% |
| 2cpu | c7a.large | $0.0008 | $0.0060 | 7× | 2,884 | 2,269 | +27% |
| 4cpu | c7a.xlarge | $0.0014 | $0.0120 | 9× | 2,884 | 2,269 | +27% |
| 8cpu | c7a.2xlarge | $0.0027 | $0.0220 | 8× | 2,884 | 2,269 | +27% |
| 16cpu | c7a.4xlarge | $0.0054 | $0.0420 | 8× | 2,884 | 2,269 | +27% |
| 32cpu | c7a.8xlarge | $0.0098 | $0.0820 | 8× | 2,884 | 2,269 | +27% |
| 48cpu | c7a.12xlarge | $0.0136 | — | — | 2,884 | — | — |
| 64cpu | c7a.16xlarge | $0.0184 | $0.1620 | 9× | 2,884 | 2,269 | +27% |
| 96cpu | c7a.24xlarge | $0.0253 | $0.2520 | 10× | 2,884 | 2,269 | +27% |
spot prices
· us-east-1 · incl. 30GB gp3 @ 400 MB/s
billed by AWS, to the second
| runner | instance | RunsOn / min | GitHub / min | you save | RunsOn CPU | GitHub CPU | CPU vs GitHub |
|---|---|---|---|---|---|---|---|
| 2cpu | c7i.large | $0.0008 | $0.0060 | 7× | 3,010 | 2,269 | +33% |
| 4cpu | c7i.xlarge | $0.0013 | $0.0120 | 9× | 3,010 | 2,269 | +33% |
| 8cpu | c7i.2xlarge | $0.0029 | $0.0220 | 8× | 3,010 | 2,269 | +33% |
| 16cpu | c7i.4xlarge | $0.0051 | $0.0420 | 8× | 3,010 | 2,269 | +33% |
| 32cpu | c7i.8xlarge | $0.0108 | $0.0820 | 8× | 3,010 | 2,269 | +33% |
| 48cpu | c7i.12xlarge | $0.0159 | — | — | 3,010 | — | — |
| 64cpu | c7i.16xlarge | $0.0141 | $0.1620 | 11× | 3,010 | 2,269 | +33% |
| 96cpu | c7i.24xlarge | $0.0218 | $0.2520 | 12× | 3,010 | 2,269 | +33% |
spot prices
· us-east-1 · incl. 30GB gp3 @ 400 MB/s
billed by AWS, to the second
| runner | instance | RunsOn / min | GitHub / min | you save | RunsOn CPU | GitHub CPU | CPU vs GitHub |
|---|---|---|---|---|---|---|---|
| 1cpu | m8a.medium | $0.0006 | $0.0020 | 3× | 3,849 | 2,269 | +70% |
| 2cpu | c8a.large | $0.0009 | $0.0060 | 7× | 3,846 | 2,269 | +70% |
| 4cpu | c8a.xlarge | $0.0016 | $0.0120 | 7× | 3,846 | 2,269 | +70% |
| 8cpu | c8a.2xlarge | $0.0035 | $0.0220 | 6× | 3,846 | 2,269 | +70% |
| 16cpu | c8a.4xlarge | $0.0063 | $0.0420 | 7× | 3,846 | 2,269 | +70% |
| 32cpu | c8a.8xlarge | $0.0122 | $0.0820 | 7× | 3,846 | 2,269 | +70% |
| 48cpu | c8a.12xlarge | $0.0171 | — | — | 3,846 | — | — |
| 64cpu | c8a.16xlarge | $0.0154 | $0.1620 | 11× | 3,846 | 2,269 | +70% |
| 96cpu | c8a.24xlarge | $0.0279 | $0.2520 | 9× | 3,846 | 2,269 | +70% |
spot prices
· us-east-1 · incl. 30GB gp3 @ 400 MB/s
billed by AWS, to the second
| runner | instance | RunsOn / min | GitHub / min | you save | RunsOn CPU | GitHub CPU | CPU vs GitHub |
|---|---|---|---|---|---|---|---|
| 2cpu | c8i.large | $0.0009 | $0.0060 | 7× | 3,209 | 2,269 | +41% |
| 4cpu | c8i.xlarge | $0.0015 | $0.0120 | 8× | 3,209 | 2,269 | +41% |
| 8cpu | c8i.2xlarge | $0.0032 | $0.0220 | 7× | 3,209 | 2,269 | +41% |
| 16cpu | c8i.4xlarge | $0.0038 | $0.0420 | 11× | 3,209 | 2,269 | +41% |
| 32cpu | c8i.8xlarge | $0.0091 | $0.0820 | 9× | 3,209 | 2,269 | +41% |
| 48cpu | c8i.12xlarge | $0.0149 | — | — | 3,209 | — | — |
| 64cpu | c8i.16xlarge | $0.0169 | $0.1620 | 10× | 3,209 | 2,269 | +41% |
| 96cpu | c8i.24xlarge | $0.0217 | $0.2520 | 12× | 3,209 | 2,269 | +41% |
spot prices
· us-east-1 · incl. 30GB gp3 @ 400 MB/s
billed by AWS, to the second
| runner | instance | RunsOn / min | GitHub / min | you save | RunsOn CPU | GitHub CPU | CPU vs GitHub |
|---|---|---|---|---|---|---|---|
| 1cpu | m8azn.medium | $0.0008 | $0.0020 | 2× | 4,299 | 2,269 | +89% |
| 2cpu | m8azn.large | $0.0012 | $0.0060 | 5× | 4,299 | 2,269 | +89% |
| 4cpu | m8azn.xlarge | $0.0023 | $0.0120 | 5× | 4,299 | 2,269 | +89% |
| 48cpu | m8azn.12xlarge | $0.0272 | — | — | 4,299 | — | — |
| 96cpu | m8azn.24xlarge | $0.0275 | $0.2520 | 9× | 4,299 | 2,269 | +89% |
spot prices
· us-east-1 · incl. 30GB gp3 @ 400 MB/s
billed by AWS, to the second
| runner | instance | RunsOn / min | GitHub / min | you save | RunsOn CPU | GitHub CPU | CPU vs GitHub |
|---|---|---|---|---|---|---|---|
| 2cpu | t4g.large | $0.0007 | $0.0050 | 7× | 1,107 | 1,874 | −41% |
| 4cpu | t4g.xlarge | $0.0012 | $0.0080 | 7× | 1,107 | 1,874 | −41% |
| 8cpu | t4g.2xlarge | $0.0018 | $0.0140 | 8× | 1,107 | 1,874 | −41% |
spot prices
· us-east-1 · incl. 30GB gp3 @ 400 MB/s
billed by AWS, to the second
| runner | instance | RunsOn / min | GitHub / min | you save | RunsOn CPU | GitHub CPU | CPU vs GitHub |
|---|---|---|---|---|---|---|---|
| 1cpu | m7g.medium | $0.0005 | — | — | 1,564 | — | — |
| 2cpu | c7g.large | $0.0007 | $0.0050 | 7× | 1,547 | 1,874 | −17% |
| 4cpu | c7g.xlarge | $0.0012 | $0.0080 | 7× | 1,547 | 1,874 | −17% |
| 8cpu | c7g.2xlarge | $0.0023 | $0.0140 | 6× | 1,547 | 1,874 | −17% |
| 16cpu | c7g.4xlarge | $0.0036 | $0.0260 | 7× | 1,547 | 1,874 | −17% |
| 32cpu | c7g.8xlarge | $0.0061 | $0.0500 | 8× | 1,547 | 1,874 | −17% |
| 48cpu | c7g.12xlarge | $0.0086 | — | — | 1,547 | — | — |
| 64cpu | c7g.16xlarge | $0.0110 | $0.0980 | 9× | 1,547 | 1,874 | −17% |
spot prices
· us-east-1 · incl. 30GB gp3 @ 400 MB/s
billed by AWS, to the second
| runner | instance | RunsOn / min | GitHub / min | you save | RunsOn CPU | GitHub CPU | CPU vs GitHub |
|---|---|---|---|---|---|---|---|
| 1cpu | m8g.medium | $0.0005 | — | — | 1,947 | — | — |
| 2cpu | c8g.large | $0.0007 | $0.0050 | 7× | 1,932 | 1,874 | +3% |
| 4cpu | c8g.xlarge | $0.0013 | $0.0080 | 6× | 1,932 | 1,874 | +3% |
| 8cpu | c8g.2xlarge | $0.0023 | $0.0140 | 6× | 1,932 | 1,874 | +3% |
| 16cpu | c8g.4xlarge | $0.0043 | $0.0260 | 6× | 1,932 | 1,874 | +3% |
| 32cpu | c8g.8xlarge | $0.0066 | $0.0500 | 8× | 1,932 | 1,874 | +3% |
| 48cpu | c8g.12xlarge | $0.0089 | — | — | 1,932 | — | — |
| 64cpu | c8g.16xlarge | $0.0122 | $0.0980 | 8× | 1,932 | 1,874 | +3% |
| 96cpu | c8g.24xlarge | $0.0163 | — | — | 1,932 | — | — |
spot prices
· us-east-1 · incl. 30GB gp3 @ 400 MB/s
billed by AWS, to the second
| runner | instance | RunsOn / min | GitHub / min | you save | RunsOn CPU | GitHub CPU | CPU vs GitHub |
|---|---|---|---|---|---|---|---|
| 1cpu | m9g.medium | $0.0006 | — | — | 2,469 | — | — |
| 2cpu | m9g.large | $0.0009 | $0.0050 | 6× | 2,469 | 1,874 | +32% |
| 4cpu | m9g.xlarge | $0.0014 | $0.0080 | 6× | 2,469 | 1,874 | +32% |
| 8cpu | m9g.2xlarge | $0.0026 | $0.0140 | 5× | 2,469 | 1,874 | +32% |
| 16cpu | m9g.4xlarge | $0.0049 | $0.0260 | 5× | 2,469 | 1,874 | +32% |
| 32cpu | m9g.8xlarge | $0.0097 | $0.0500 | 5× | 2,469 | 1,874 | +32% |
| 48cpu | m9g.12xlarge | $0.0140 | — | — | 2,469 | — | — |
| 64cpu | m9g.16xlarge | $0.0188 | $0.0980 | 5× | 2,469 | 1,874 | +32% |
| 96cpu | m9g.24xlarge | $0.0287 | — | — | 2,469 | — | — |
spot prices
· us-east-1 · incl. 30GB gp3 @ 400 MB/s
billed by AWS, to the second
how this is calculated
01Where do the prices come from?+
RunsOn figures are real EC2 prices in
us-east-1, including a 30 GB gp3
root volume — spot by default, with an on-demand toggle. GitHub figures are
GitHub-hosted per-minute rates. Both are normalized to $/min and multiplied by your
minutes. See the full runner cost table.
02Does the estimate include the RunsOn license?+
Yes. The yearly total adds the flat Commercial license ($350/yr) on top of compute, so
the savings shown are net of what you pay RunsOn. Compute itself is billed by AWS,
directly to your account — there is no per-minute markup.
03Why is self-hosted so much cheaper?+
You pay AWS spot prices for the exact instance a job needs, only while it runs, instead
of a fixed per-minute rate with a margin baked in. On Linux that routinely lands 6–12×
under GitHub-hosted. Faster CPUs also mean jobs finish sooner, which compounds the saving.
04What about caching, data transfer, and queue time?+
This calculator covers compute, which dominates the bill. RunsOn's S3-backed cache lives
in your account (no egress to a third party), and faster runners cut wall-clock time
further. Storage and transfer are typically cents per job.