Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Burn-rate trend over time with optional drift-alert exit code. Bins session spend into buckets, surfaces window-over-window delta, and can exit 1 when latest bucket exceeds prior mean by a configurable %. Distinct from `cost-trend` (benchmark drift); this tracks PRODUCTION spend trajectory.
.claude/skills/ruvnet-cost-burn/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-06 | ✗→✓ | ▲ Improved | -16% | 0% |
| case-01 | ✗→✓ | ▲ Improved | -26% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 33% | 0% |
| case-03 | ✗→✓ | ▲ Improved | -28% | 0% |
| case-07 | ✗→✓ | ▲ Improved | -16% | 0% |
Burn-rate trend observability. The fourth leg of the cost-tracker forward-cost stack:
| Question | Skill | |---|---| | "Have we crossed a threshold?" (reactive) | cost-budget-check | | "When will we cross a threshold?" (predictive) | cost-projection | | "Could we have spent less?" (comparative) | cost-counterfactual | | "Is daily burn ACCELERATING?" (trend) | cost-burn ← this |
Implementation: scripts/burn.mjs.
session-* records from cost-tracking namespace.--bucket duration windows (default 1d) over --lookback (default 14d).{n: sessions, spendUsd: sum(total_cost_usd)}.delta = latest.spendUsd - mean(prior non-empty buckets).--alert-on-acceleration-pct N is set: exit 1 when deltaPct > N.| Latest bucket spend | $0.500000 (1 sessions) |
| Prior bucket mean | $0.100000 (4 non-empty buckets) |
| **Delta (latest vs prior mean)** | **+$0.400000 (400.00%)** |
# | Window | Sessions | Spend
0 | 2026-06-15 14:16 → 2026-06-16 14:16 | 1 | $0.500000
1 | 2026-06-14 14:16 → 2026-06-15 14:16 | 0 | $0.000000
2 | 2026-06-13 14:16 → 2026-06-14 14:16 | 1 | $0.100000
3 | 2026-06-12 14:16 → 2026-06-13 14:16 | 1 | $0.100000
...$ cost burn --bucket 1d --lookback 7d --alert-on-acceleration-pct 50 ⚠ ALERT: latest bucket $0.500000 is 400.0% above prior mean $0.100000 (threshold +50%) exit 1
$ cost burn --bucket 1d --lookback 7d --alert-on-acceleration-pct 500 ✓ latest bucket within +500% of prior mean (actual delta: 400.0%) — OK exit 0
bash# Fail the build if today's spend accelerated > 100% over the weekly mean cost burn --bucket 1d --lookback 7d --alert-on-acceleration-pct 100 || alert-oncall
The alert is independent of budget — it triggers on rate ACCELERATION even when total spend is well under budget. Catches "we shipped a hot loop that burns 10× normal" before the budget alarm goes off.
cost-trend| Skill | Data source | Question | |---|---|---| | cost-trend | docs/benchmarks/runs/*.json | "Is the benchmark drifting (win rate, latency)?" | | cost-burn | cost-tracking namespace | "Is production spend accelerating?" |
Both useful; they answer different questions on different data.
Infinity/null in JSON, marked new in the table. No alert fires (no baseline to compare against).--bucket > --lookback: hard error, exit 2.| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-06 | fail→pass | 16,882 | 12,235 | -28% | 1 | 1 | 0% | 3,824 | 3,209 | -16% | 0 | 0 | — |
case-01 | fail→pass | 12,538 | 2,703 | -78% | 1 | 1 | 0% | 2,099 | 1,549 | -26% | 0 | 0 | — |
case-02 | fail→pass | 6,430 | 2,207 | -66% | 1 | 1 | 0% | 1,055 | 1,406 | +33% | 0 | 0 | — |
case-03 | fail→pass | 11,129 | 2,299 | -79% | 1 | 1 | 0% | 2,043 | 1,464 | -28% | 0 | 0 | — |
case-04 | fail→fail | 3,579 | 4,927 | +38% | 1 | 1 | 0% | 686 | 1,346 | +96% | 0 | 0 | — |
case-05 | fail→fail | 9,290 | 3,627 | -61% | 1 | 1 | 0% | 1,942 | 1,260 | -35% | 0 | 0 | — |
case-07 | fail→pass | 9,162 | 1,558 | -83% | 1 | 1 | 0% | 1,531 | 1,289 | -16% | 0 | 0 | — |
case-08 | pass→pass | 8,700 | 2,816 | -68% | 1 | 1 | 0% | 1,415 | 1,204 | -15% | 0 | 0 | — |
case-09 | pass→pass | 5,258 | 2,510 | -52% | 1 | 1 | 0% | 954 | 1,546 | +62% | 0 | 0 | — |
case-10 | pass→pass | 10,036 | 2,357 | -77% | 1 | 1 | 0% | 969 | 1,458 | +50% | 0 | 0 | — |
case-11 | fail→pass | 11,185 | 1,980 | -82% | 1 | 1 | 0% | 1,958 | 1,334 | -32% | 0 | 0 | — |
case-12 | pass→pass | 10,492 | 3,461 | -67% | 1 | 1 | 0% | 1,647 | 1,606 | -2% | 0 | 0 | — |
case-13 | pass→pass | 10,040 | 2,337 | -77% | 1 | 1 | 0% | 1,770 | 1,402 | -21% | 0 | 0 | — |
case-14 | fail→pass | 13,730 | 1,523 | -89% | 1 | 1 | 0% | 2,442 | 1,195 | -51% | 0 | 0 | — |
case-15 | pass→pass | 15,183 | 7,450 | -51% | 1 | 1 | 0% | 2,530 | 1,917 | -24% | 0 | 0 | — |
case-16 | pass→pass | 11,526 | 7,955 | -31% | 1 | 1 | 0% | 1,935 | 2,433 | +26% | 0 | 0 | — |
case-17 | fail→pass | 8,929 | 2,607 | -71% | 1 | 1 | 0% | 1,701 | 1,473 | -13% | 0 | 0 | — |
case-18 | fail→pass | 14,793 | 918 | -94% | 1 | 1 | 0% | 2,526 | 1,140 | -55% | 0 | 0 | — |
case-19 | fail→pass | 11,439 | 4,370 | -62% | 1 | 1 | 0% | 2,497 | 1,828 | -27% | 0 | 0 | — |
case-20 | fail→pass | 11,230 | 4,403 | -61% | 1 | 1 | 0% | 1,886 | 1,774 | -6% | 0 | 0 | — |
case-21 | fail→pass | 9,492 | 2,393 | -75% | 1 | 1 | 0% | 1,653 | 1,507 | -9% | 0 | 0 | — |
case-22 | fail→pass | 7,847 | 2,683 | -66% | 1 | 1 | 0% | 1,415 | 1,164 | -18% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 20 counted toward the lift figure. The other 2 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +59 percentage points is the difference between those two pass rates over the 20 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.