Skip to content
cccskills
FreePublished on GitHubEnglish overview

cost-counterfactual

Compare actual AI session costs with estimates for using only Haiku, Sonnet, or Opus. The skill reports savings amounts and percentages, helping teams assess model selection costs while leaving differences in answer quality and retries outside the calculation.

OriginalShow the original description

Multi-baseline counterfactual cost analysis. Compares actual session spend to hypothetical always-haiku / always-sonnet / always-opus routing baselines. Answers "is the routing earning its keep?" Negative savings flag over-escalation; positive savings quantify the router's win.

AI rating90/ 100See how to install

Good for

  • Report model selection savings during cost reviews
  • Check savings after changing model selection settings
  • Use JSON results to enforce a savings threshold in CI
  • Investigate spending above a cheaper model baseline

Overview

What it does

Compare actual spending across different AI models with estimated spending if every task had used Haiku, Sonnet, or Opus. The skill reads session records stored in cost-tracking and includes input, output, cache writes, and cache reads in its calculations. It returns total costs, savings amounts, and savings percentages for each baseline model as a table or JSON.

When it helps

Use it during regular cost reviews to explain savings from choosing different models for different tasks. It also helps check whether costs have worsened after changes to model selection settings. JSON output can support a CI check that fails when savings fall below a specified percentage. Comparisons with a cheaper model can also help investigate higher spending.

Example requests

  • “Compare actual spending over the past seven days with using Sonnet for every task.”
  • “Return savings amounts and percentages for all three baseline models as JSON.”

Notes

Comparisons require cost-tracking session records. Estimates assume the same token counts would produce the same results; they do not account for answer quality or retries after failures. Negative savings against a cheaper model do not establish that choosing a more expensive model was inappropriate.

This overview was written by AI (OpenAI Codex) from the public SKILL.md. Check the original below for the exact behavior.

Objective evaluation

AI rated this skill on four points using only the contents of its SKILL.md. Stars and popularity are not taken into account.

Clear instructionsIs it clear when to use it and what it does?
AGoodThe purpose of comparing actual costs with three model baselines and use cases such as cost reviews are explicit.
Concrete stepsAre steps, inputs, outputs, and examples spelled out?
AGoodRecord retrieval, time filtering, calculation formulas, and an example output table are provided.
SafetyAre sending data, deleting files, and running commands disclosed?
AGoodThe procedure reads and aggregates session records; deletion and external transmission are not described.
Easy setupDoes it need few tools or API keys, and are they documented?
BPartly lackingRecords in `cost-tracking` are required, but instructions for preparing them are absent.

The total counts each point as A = 25, B = 15, C = 5. Rated by AI (OpenAI Codex) as of Oct 21, 2026. Treat it as a guide and read the original before installing.

Disagree? Request a re-evaluation

Tell us which point is wrong and why. No login needed. We will check it against the SKILL.md, redo the evaluation, and show the result here.

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

Files included (1)

  • SKILL.md3.1 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Multi-baseline counterfactual cost analysis. Pairs with the existing observability surface:

  • cost-budget-check — "have we crossed a threshold?" (reactive)
  • cost-projection — "when will we cross a threshold?" (predictive)
  • cost-counterfactual — "is the routing earning its keep?" (comparative) ← this one

Algorithm

  1. Read all session-* records from the cost-tracking namespace.
  2. Apply --since window filter (default all-time).
  3. Sum tokens across byModel[*] entries for each session.
  4. For each requested baseline (default: all three):
    • counterfactualUsd = (input × tier.input + output × tier.output + cache_write × tier.cache_write + cache_read × tier.cache_read) / 1M
  5. Compute savings = counterfactualUsd − actualUsd.
  6. Emit per-baseline totals + savings % across the comparison set.

Smoke transcript (2 sessions: 50K haiku tokens + 50K sonnet tokens)

| Sessions considered | 2 |
| Total input tokens  | 100,000 |
| Actual spend        | $0.162500 |

| Baseline           | Hypothetical | Actual    | Savings    | %       |
| `always-haiku`     | $0.025000    | $0.162500 | -$0.137500 | -550.00% |
| `always-sonnet`    | $0.300000    | $0.162500 | +$0.137500 |   45.83% |
| `always-opus`      | $1.500000    | $0.162500 | +$1.337500 |   89.17% |

How to read negative savings

A negative always-haiku result means the router chose more-expensive models than haiku on tasks haiku could have handled. That's an over-escalation signal:

  • Maybe qualityBar is set too high
  • Maybe the sonnet/opus session was warranted by complexity but the baseline doesn't know that
  • Run cost optimize (or inspect specific sessions via cost conversation) to investigate

Positive savings quantify the router's win against that baseline. The most informative number is usually always-sonnet — it's the standard "safe default" baseline most teams would pick if they didn't have routing.

When to use

  • Quarterly cost review: "We saved $X vs always-Sonnet — here's the proof."
  • CI gate: cost counterfactual --format json | jq '.baselines[1].savingsPct > 30' — fail builds if routing isn't saving ≥30% vs sonnet baseline (workload-shift detector).
  • Routing-config validation: When introducing a new qualityBar or cost-ceiling, re-run counterfactual to confirm savings didn't regress.

Stationarity caveat

Like all counterfactual analyses, this assumes the same tokens at the same complexity would have produced the same outcome from the baseline model. That's an upper bound — the baseline might have failed and required retries, which the math doesn't capture. Treat the numbers as a quality-blind ceiling.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

add-model-descriptions

FreeSummaryAI rating 80

Compare models available through the HuggingFace router with chat-ui configuration, research missing models, and write short English descriptions of their architecture and capabilities. Add entries to both production and development configuration files and commit the changes.

  • Adding newly available router models to chat-ui
  • Writing concise descriptions of model capabilities
  • Updating production and development model entries together
ruvnet/ruflo78.4KUpdated Oct 22, 2026

adr-create

FreeSummaryAI rating 80

Create an Architecture Decision Record, a document for recording important design choices, with the next sequential number. It generates a Markdown template, registers the record in AgentDB, and links related decisions found through search.

  • Record the reasoning behind adopting a technology
  • Start an ADR for an API or data model change
  • Document an infrastructure decision
ruvnet/ruflo78.4KUpdated Oct 22, 2026

adr-index

FreeSummaryAI rating 90

Build a searchable index and relationship graph from ADRs, records of architectural decisions. Import two supported document formats, refresh existing metadata without duplicate relationships, and review summaries of statuses, missing references, and inconsistencies.

  • Index ADRs imported from another project
  • Refresh a graph that differs from files on disk
  • Set up ADR tracking in an existing codebase
ruvnet/ruflo78.4KUpdated Oct 22, 2026

adr-reindex

FreeSummaryAI rating 70

Rebuild the index of ADRs, records of architectural decisions, after files or relationship lines are deleted. It clears stored records and relationships, indexes the files still present, and checks that the final record count matches.

  • Rebuild the index after deleting an ADR file
  • Remove stale relationships after editing an ADR
  • Reconcile the ADR index on a schedule
ruvnet/ruflo78.4KUpdated Oct 22, 2026

adr-review

FreeSummaryAI rating 80

Review code changes against accepted Architecture Decision Records, documents that capture agreed design choices. Report violations, outdated references, compliant changes, and areas without ADR coverage, then suggest code fixes or a new decision record where appropriate.

  • Check a pull request before merging
  • Review major code changes against agreed design decisions
  • Find references to superseded ADRs
ruvnet/ruflo78.4KUpdated Oct 22, 2026

adr-verify

FreeSummaryAI rating 90

Check saved architecture decision records (ADRs) for broken references, circular replacement relationships, and inconsistent statuses. Use the results to verify imported records or stop a CI check when selected integrity rules fail.

  • Checking ADR integrity after import
  • Blocking CI when ADR issues are found
  • Reviewing ADR data before a release
ruvnet/ruflo78.4KUpdated Oct 22, 2026

See all skills by ruvnet

Report a problem with this skill