Estimate GitHub Actions spend from workflow minutes, runner size, and operating system. Including the multipliers that make macOS and Windows jobs cost several times what the same job costs on Linux.
GitHub Actions billing has four moving parts most teams underestimate: minutes, OS multiplier, matrix expansion, and artifact storage. This calc rolls them all up and compares against self-hosted.
Self-hosted figure should include EC2/baremetal + ops overhead + on-call. Most teams underestimate ops by 2x.
The multipliers are what people miss. GitHub bills Windows minutes at twice the Linux rate and macOS at ten times. A macOS job in a matrix that runs on every push is frequently the single largest line in a CI bill, and it is usually there because someone added it to a matrix once and nobody revisited it.
Beyond runner choice, the leverage is in what you avoid running. Path filters so a docs change does not trigger the full build matrix, concurrency groups that cancel superseded runs on the same branch, and effective caching for dependencies. Most CI bills are dominated by workflow minutes that never needed to run at all.