Token budget analytics and ROI scoring for AI agent actions. Track token cost per fix, detect wasteful loops, auto-route to fast tier when burn rate is too high. Integrates with token-budget-guard.sh hook. Triggered by /cost-report, "how much did that cost", "token usage", "am I wasting tokens".
Scanned 9/9/2026
Install to Claude Code
npx -y skills add yanacuti1121/Yana-AI --skill token-roi --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Token Roi?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/yanacuti1121-token-roi-yana-ai)More formats (shields.io, HTML) on the badges page.
---
name: token-roi
description: Token budget analytics and ROI scoring for AI agent actions. Track token cost per fix, detect wasteful loops, auto-route to fast tier when burn rate is too high. Integrates with token-budget-guard.sh hook. Triggered by /cost-report, "how much did that cost", "token usage", "am I wasting tokens".
origin: yamtam-original — Financial Guardrails layer
license: MIT
version: 1.0.0
compatibility: Claude Code, Anthropic API
---
# token-roi
## When to Use
- After a long session to review token spend vs value delivered
- When `autonomous-patching-loop` has been running for multiple attempts
- Before deciding whether to continue a costly repair or escalate to human
- Triggered by: `/cost-report`, "how much did that cost", "token usage", "token budget", "am I wasting tokens", "ROI", "cost per fix"
## Do NOT use for
- Real-time per-token billing (use Anthropic console for exact billing)
- Replacing a proper cost alert system in production
- See `prompt-caching-strategy` for reducing token cost via cache_control
---
## Cost Tiers (Anthropic Sonnet 4.x pricing reference)
```
Tier Model Input $/1M Output $/1M Use when
──────────────────────────────────────────────────────────────────────
Power claude-opus-4-7 $15.00 $75.00 Architecture, deep reasoning
Balanced claude-sonnet-4-6 $3.00 $15.00 Default for most tasks
Fast claude-haiku-4-5 $0.80 $4.00 Simple fixes, boilerplate
──────────────────────────────────────────────────────────────────────
Cached any + cache_control 90% discount standard Static context blocks
```
---
## /cost-report Command
```bash
#!/usr/bin/env bash
# Generate token ROI report for current session
BUDGET_FILE="core/memory/L2_session/token-budget.json"
if [[ ! -f "$BUDGET_FILE" ]]; then
echo "No token budget data for this session."
exit 0
fi
python3 - <<PYEOF
import json
with open("$BUDGET_FILE") as f:
d = json.load(f)
total = d.get('total_tokens_used', 0)
actions = d.get('actions', [])
loops = d.get('loop_attempts', {})
fast_triggered = d.get('fast_tier_triggered', False)
# Cost estimate (Sonnet 4.6 balanced tier)
cost_usd = (total / 1_000_000) * 9 # avg input+output blended
print("=" * 50)
print(" YAMTAM Token ROI Report")
print("=" * 50)
print(f" Session start : {d.get('session_start', 'unknown')}")
print(f" Total tokens : {total:,}")
print(f" Est. cost : \${cost_usd:.4f} USD (Sonnet 4.6 blended)")
print(f" Fast tier : {'TRIGGERED' if fast_triggered else 'not triggered'}")
print("")
print(" Loop attempts by tool:")
for tool, count in sorted(loops.items(), key=lambda x: -x[1]):
flag = " ⚠ LOOP" if count >= 3 else ""
print(f" {tool:<30} {count} calls{flag}")
print("")
# ROI assessment
if cost_usd > 0.50:
print(" ROI Assessment: HIGH COST — review if value delivered matches spend")
elif fast_triggered:
print(" ROI Assessment: LOOP DETECTED — strategy switch recommended")
else:
print(" ROI Assessment: Within normal budget")
print("=" * 50)
PYEOF
```
---
## Fast-Tier Auto-Routing
When `token-budget-guard.sh` triggers fast tier, agents MUST:
```
1. STOP current loop immediately
2. Assess: is this a simple fix that Haiku can handle?
YES → switch model to claude-haiku-4-5, retry with minimal prompt
NO → escalate to human with cost summary
3. Fast-tier prompt template (minimal tokens):
"Fix: [one-line error description]
File: [path]:[line]
Error: [exact error message]
Fix in ≤ 20 lines."
```
---
## Token ROI Scoring Formula
```python
def roi_score(tokens_used: int, bugs_fixed: int, tests_passed: int) -> float:
"""
Score 0.0–10.0. Higher = better ROI.
Penalize high token use, reward concrete outcomes.
"""
if tokens_used == 0:
return 0.0
# Value: each fixed bug = 10k tokens of "worth", each test = 2k tokens
value = (bugs_fixed * 10_000) + (tests_passed * 2_000)
efficiency = value / tokens_used
# Normalize to 0–10 scale (efficiency 1.0 = score 5)
score = min(efficiency * 5, 10.0)
return round(score, 1)
# Examples:
# roi_score(5000, 1, 3) → 8.0 ← good (1 bug fixed, 3 tests added, low tokens)
# roi_score(50000, 0, 0) → 0.0 ← bad (50k tokens, nothing fixed)
# roi_score(20000, 2, 5) → 5.5 ← acceptable
```
---
## Session Budget Defaults
```bash
# Override via environment variables
export YAMTAM_MAX_LOOP_TOKENS=50000 # ~$0.15 at Sonnet — warn threshold
export YAMTAM_MAX_FIX_ATTEMPTS=5 # tool call loop limit before fast-tier
export YAMTAM_TOKEN_BUDGET=core/memory/L2_session/token-budget.json
```
---
## Integration with autonomous-patching-loop
```
autonomous-patching-loop attempt 1 → token-budget-guard checks loop count
attempt 2 → guard checks (count=2)
attempt 3 → guard WARNS (count=3)
attempt 4 → guard checks (count=4)
attempt 5 → guard TRIGGERS FAST TIER
loop stops, escalates or switches model
```
---
## Anti-Fake-Pass Checklist
- [ ] Budget file exists at `core/memory/L2_session/token-budget.json` before session ends
- [ ] Loop count tracked per tool name — not total session calls
- [ ] Fast tier triggered when loop count ≥ MAX_ATTEMPTS (default: 5)
- [ ] Cost estimate calculated and shown in /cost-report
- [ ] ROI score computed when both token count and outcomes are known
- [ ] Fast-tier mode uses shorter prompt template (not full context dump)
- [ ] Budget state written to L2 — expires at session end, not promoted to L1 unless anomaly
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!