Skip to main content

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:

  1. Receive webhooks when workflows start and complete
  2. Fetch job metadata including runner labels and durations
  3. Calculate costs based on GitHub's published rates
  4. 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_duration is the billable time in minutes (rounded up)
  • runner_rate is GitHub's per-minute rate for that runner type

Runner Rates

CICosts uses GitHub's official pricing:

RunnerLinuxWindowsmacOS
2-core$0.008/min$0.016/minN/A
4-core$0.016/min$0.032/min$0.08/min
8-core$0.032/min$0.064/min$0.12/min
16-core$0.064/min$0.128/min$0.24/min
32-core$0.128/min$0.256/minN/A
64-core$0.256/min$0.512/minN/A
Larger Runners

GitHub offers larger macOS runners. CICosts automatically detects and prices these correctly.

Dashboard Views

Summary View

The main dashboard shows:

  • Today's spend with comparison to average
  • Weekly and monthly totals
  • Projected month-end cost
  • 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
  • Queue time vs. execution time
  • Step-by-step timing

Key Metrics

CICosts tracks several key metrics:

MetricDescription
Total CostSum of all workflow costs
Cost per RunAverage cost of a single workflow run
Cost per PRAverage CI cost for each pull request
Cost per CommitAverage CI cost per pushed commit
Runner UtilizationHow efficiently runners are being used

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 →