Find out which GitHub Actions workflow costs the money, and why.
ci-bill ranks GitHub Actions cost per repository, workflow and runner SKU, from the detailed usage report CSV that GitHub billing exports.
With your workflow files it points to likely causes with file:line, such as a lint job on a macOS runner or a job without a timeout, and shows the savings per finding.
$ ci-bill report --usage samples/usage-sample.csv --workflows samples/.github/workflows
USD (from net_amount)
Period: 2026-09-01 .. 2026-09-30
Repositories: example-org/sample-app
Total net: 284.21
Total minutes: 12208
Other products: 0.00
Workflow Net Gross Discount Minutes Share
example-org/sample-app .github/workflows/lint.yml 230.14 230.14 0.00 3712 80.98%
actions_macos 230.14 230.14 0.00 3712
measured 0.00 invoice 230.14 difference 230.14
lint samples/.github/workflows/lint.yml:8 = 230.14
F1 samples/.github/workflows/lint.yml:8: lint on macOS
savings 207.87 USD (linux_rate)
F2 samples/.github/workflows/lint.yml:7: default timeout is 360 minutes
savings 22.32 USD (stuck_run)
cargo install --locked ci-bill