Cost Tracking
CICosts provides real-time cost tracking for every GitHub Actions workflow run. This is the core feature that gives you visibility into your CI/CD spending.
How It Works
Automatic Data Collection
When you install the CICosts GitHub App, we:
- Receive webhooks when workflows start and complete
- Fetch job metadata including runner labels and durations
- Calculate costs based on GitHub's published rates
- Store and aggregate data for your dashboard
Cost Calculation
For each workflow run, CICosts calculates the total cost by:
Total Cost = Σ (job_duration × runner_rate)
Where:
job_durationis the billable time in minutes (rounded up)runner_rateis GitHub's per-minute rate for that runner type
Runner Rates
CICosts uses GitHub's official pricing:
Linux Runners
| Runner | Price/Minute |
|---|---|
ubuntu-latest (2-core) | $0.008 |
ubuntu-latest-4-cores | $0.016 |
ubuntu-latest-8-cores | $0.032 |
ubuntu-latest-16-cores | $0.064 |
ubuntu-latest-32-cores | $0.128 |
ubuntu-latest-64-cores | $0.256 |
ubuntu-latest-arm (2-core) | $0.005 |
Windows Runners
| Runner | Price/Minute |
|---|---|
windows-latest (2-core) | $0.016 |
windows-latest-4-cores | $0.032 |
windows-latest-8-cores | $0.064 |
windows-latest-16-cores | $0.128 |
windows-latest-32-cores | $0.256 |
windows-latest-64-cores | $0.512 |
macOS Runners
| Runner | Price/Minute |
|---|---|
macos-latest (3/4-core) | $0.080 |
macos-latest-large (12-core) | $0.120 |
macos-latest-xlarge (M1) | $0.160 |
Linux ARM runners are the most cost-effective option at $0.005/min—37% cheaper than standard Linux runners.
Dashboard Views
Summary View
The main dashboard shows:
- Today's spend with comparison to average
- Weekly and monthly totals
- Total workflow runs
- Trend chart showing daily spending
Repository Breakdown
See costs aggregated by repository:
- Total cost per repo
- Number of workflow runs
- Most expensive workflows
- Cost trend over time
Workflow Breakdown
Drill into individual workflows:
- Average cost per run
- Run frequency
- Success/failure ratio and costs
- Job-level cost breakdown
Job-Level Details
For any workflow run, view:
- Each job's duration and cost
- Runner type used
- Individual step timing
Key Metrics
CICosts tracks several key metrics:
| Metric | Description |
|---|---|
| Total Cost | Sum of all workflow costs |
| Cost per Run | Average cost of a single workflow run |
| Total Runs | Number of workflow runs |
| Total Duration | Combined runtime of all jobs |
| Top Workflows | Most expensive workflows by total cost |
Best Practices
Track All Repositories
For accurate organization-wide visibility, install CICosts on all repositories. You can:
- Set up once with "All repositories" access
- Add new repos automatically as they're created
Regular Review
We recommend reviewing your cost dashboard:
- Daily: Check for anomalies and spikes
- Weekly: Review top workflows and trends
- Monthly: Analyze patterns and plan optimizations
Set Up Alerts
Combine cost tracking with budget alerts to:
- Get notified of unusual spending
- Prevent runaway costs
- Stay within budget
Limitations
Self-Hosted Runners
CICosts tracks GitHub-hosted runners only. Self-hosted runners:
- Don't have per-minute GitHub costs
- Still appear in workflow data (with $0 cost)
Free Minutes
CICosts shows gross costs before free minutes are applied. Your actual GitHub bill may be lower if you have:
- Free minutes included with your plan
- GitHub Enterprise Cloud benefits
- Open source project exemptions
Concurrent Job Limits
CICosts doesn't track concurrent job limits or queue time costs—only actual execution time.
Next: Budget Alerts