LLM and cloud cost awareness — model tiering, token budgets, right-sizing, and when a cheaper model suffices. Trigger before finalising any architecture that calls LLMs, before scaling a workload, or when a cost estimate is needed.
Installs into .claude/skills of the current project.
Are you the author of Cost Guardrail?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/jpantsjoha-cost-guardrail)
---
name: cost-guardrail
description: LLM and cloud cost awareness — model tiering, token budgets, right-sizing, and when a cheaper model suffices. Trigger before finalising any architecture that calls LLMs, before scaling a workload, or when a cost estimate is needed.
---
# Cost Guardrail
> **The most expensive model is the one running on every request when it does not need to.**
LLM cost is not a finance problem — it is an architecture problem. The design determines the bill. This skill enforces cost-awareness as a first-class design constraint, not an afterthought.
## When to use
- Designing any system that calls an LLM (directly or via an agent)
- Before scaling a workload to higher volumes
- When a cost estimate is required for a feature or release
- When reviewing an architecture for unbounded cost vectors
- When choosing between model tiers for a given task
## Procedure
1. **Identify every LLM call in the system** — list: which agent or component makes the call, the model tier used, the approximate input and output token counts, and the call frequency (per user action / per minute / per batch).
2. **Apply the model tiering test** — for each LLM call, ask:
- Does this task require deep reasoning, or is it classification / extraction / reformatting?
- Can the task be completed with a smaller or faster model?
- Is the model tier choice based on evidence (benchmark, A/B test) or assumption?
General tiering principle (verify current pricing against your provider's documentation before relying on it):
| Task type | Appropriate tier |
|---|---|
| Simple classification, extraction, summarisation | Small / fast model |
| Complex reasoning, multi-step planning, code generation | Mid-tier model |
| Deep analysis, architecture decisions, adversarial review | Highest-tier model |
3. **Identify unbounded cost vectors** — flag any call pattern where the token count or call volume has no upper bound:
- Loops that call an LLM until a condition is met (with no max-iteration guard)
- User-triggered calls with no rate limiting
- Context windows that grow unboundedly across a conversation
- Batch jobs with no per-run budget ceiling
4. **Estimate the monthly cost envelope** — for each LLM call:
```
estimated monthly cost ≈ (input tokens × input price) + (output tokens × output price) × calls/month
```
Use current published rates from your provider. Do not use rates from training data — they change.
5. **Add cost controls** — for each unbounded vector:
- Set a max-token budget per call (trim context if needed)
- Add rate limiting at the application layer
- Add a budget alert at the infrastructure layer
- Consider caching repeated calls with identical or near-identical inputs
6. **Check for caching opportunities** — LLM calls that return the same result for the same input are cacheable. Prompt caching (where supported by the provider) can reduce cost significantly on repeated prefixes.
7. **Document the cost model** — in the ADR or design doc, record: model tiers chosen, rationale, estimated monthly cost at target scale, and the controls in place.
## Outputs
- LLM call inventory: component | model tier | input tokens (est.) | output tokens (est.) | frequency | monthly cost (est.)
- Unbounded cost vectors flagged with mitigations
- Monthly cost estimate at target scale
- Recommended model tier per call with rationale
## Guardrails
- **Never use pricing from training data.** Rates change. Fetch current rates from the provider's documentation before estimating.
- **A call that "works" at low volume may be unaffordable at scale.** Always estimate at the target scale, not the current scale.
- **Caching is not optional for high-frequency repeated calls.** An uncached LLM call repeated thousands of times per day is a design flaw.
- **Token budgets are architecture decisions.** Decide them explicitly; do not let the model decide by consuming whatever context is available.
## Anti-rationalization table
| Excuse | Counter |
|---|---|
| "It's only a few cents per call" | At scale, cents become thousands of dollars. Estimate the monthly envelope. |
| "We'll optimise later" | Cost optimisation is hardest after the architecture is set. Do it now. |
| "The big model gives better results" | Verify with a test. Small models are often sufficient for structured tasks. |
| "We don't know the volume yet" | Estimate a range. A 10x cost swing between low and high volume is a design risk. |