About cost-projection
cost-projection is a cost-analysis skill that estimates future spend from session records and a selected measurement window. It extrapolates the current daily rate and can show when configured budget thresholds may be reached.
Key features
- 01Measure spend over a selected window
- 02Calculate daily burn rate
- 03Project spend across time horizons
- 04Estimate budget threshold dates
- 05Output tables or JSON
Use cases
- 01Plan finance or SRE budgets
- 02Gate CI on projected budget exhaustion
- 03Check spending after workload changes
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ ruvnet/ ruflo --skill cost-projectionAfter installing, type/cost-projectionin Claude Code to confirm it loaded.
Details
From the project READMEForward-looking cost projection that pairs with cost-budget-check:
cost-budget-checkanswers "have we crossed the line?" — reactivecost-projectionanswers "when will we cross the line?" — predictive
Algorithm
- Read all
session-*records from thecost-trackingnamespace (same sourcecost-budget-checkuses). - Filter to a measurement window (default last 7 days on
capturedAt/startedAt). - Compute the per-day burn rate:
windowSpend / windowDays. - Linear-extrapolate to each requested horizon (default 7d/30d/90d/365d).
- If a budget is configured (
budget-configkey set bycost-budget set):- Compute "days until 75% / 90% / 100% consumed" at the current rate.
- Surface as a separate table block with
ALREADY REACHEDmarkers for thresholds already exceeded.
Flags
--window Measurement window. Nh|Nd|Nw|Nm. Default 7d.
--horizons Projection horizons. Default 7d,30d,90d,365d.
--format table|json Default table (markdown).
Env: PROJECTION_NAMESPACE override (default cost-tracking), PROJECTION_QUIET=1 (alias for --format json).
Smoke transcript (3 sessions × $1 over 7d, $20 budget)
| Sessions in window | 3 |
| Window spend | $3.000000 |
| **USD per day** | **$0.428571** |
| All-time spend | $3.000000 across 3 sessions |
## Projected spend (linear extrapolation)
| Horizon | Days | Projected spend |
|---|---:|---:|
| 7d | 7 | $3.0000 |
| 30d | 30 | $12.8571 |
## Budget exhaustion ($20.00 configured)
| Threshold | Target | Remaining | Time at current rate |
|---|---:|---:|---|
| 75% | $15.00 | $12.00 | 28.0 days |
| 90% | $18.00 | $15.00 | 35.0 days |
| 100% | $20.00 | $17.00 | 39.7 days |
When to use
- Finance / SRE planning: hand the JSON output to a budget dashboard for "are we on track for the quarter?".
- CI gates:
cost-projection --format json | jq '.budget.exhaustion[2].daysUntilReached < 7'→ fail builds when 100% exhaustion is < 1 week away. - Post-workload-shift sanity check: after a big feature lands, re-run to verify the rate hasn't accelerated past expectations.
Stationarity assumption
Linear extrapolation assumes the current rate holds. The footer reminds operators to re-run after workload shifts. For drift detection over MULTIPLE windows, pair with cost-trend (which already covers benchmark-drift).