Skip to content

Savings Report

kaddo savings turns the impact metrics into approximate time/effort/value estimates, so you can talk about Kaddo’s impact in terms non-technical stakeholders understand.

Evidence and periods

Historical estimates (all recorded project history) and monthly projections are deliberately separate and are not added together. Default assumptions are uncalibrated estimates and cannot justify High confidence.

In JSON, totals.observed_history_estimate and totals.monthly_projection are the authoritative period-separated totals. The deprecated compatibility field total contains only the historical estimate; it is never a combined total.

Terminal window
kaddo savings # Markdown to stdout (writes nothing) — scope: all
kaddo report savings # alias
kaddo savings --json
kaddo savings --scope active
kaddo savings --output .kaddo/reports/savings-report.md
kaddo savings init # write an editable .kaddo/savings.yml

Evidence-based estimate, not exact ROI. These figures are estimates, not accounting savings. Calibrate the assumptions with real team data.

Assumptions: .kaddo/savings.yml

Estimates = metrics + explicit assumptions. Run kaddo savings init to create an editable .kaddo/savings.yml (use --force to overwrite):

currency: USD
hourly_cost: 40
assumptions:
context_preparation_minutes_saved_per_work_item: 30
rework_hours_avoided_per_resolved_drift: 2
onboarding_hours_saved_per_new_contributor: 4
review_minutes_saved_per_work_item_with_ownership: 20
clarification_minutes_saved_per_ready_work_item: 25
architecture_discovery_hours_saved_when_graph_good: 3
team:
expected_new_contributors_per_month: 1
expected_work_items_per_month: 8

Without the file, Kaddo uses conservative defaults and says so.

What it estimates

DriverFormulaSource
Context preparationcompleted Work Items × minutes savedimpact evidence
Review effortWork Items with ownership × minutes savedimpact evidence
Clarification reductionWork Items with acceptance criteria × minutes savedimpact evidence
Onboardingnew contributors × hours × Context-Readiness multiplier (Low .25 → Very High 1.0)impact evidence
Architecture discoveryhours × graph-quality multiplier (empty 0 → good 1.0)impact evidence
Drift preventionresolved drift warnings × rework_hours_avoided_per_resolved_driftguard history

Estimated value = estimated hours saved × hourly_cost, shown as Estimated value (never “ROI”, “profit” or “real savings”). Defaults to scope: all like kaddo impact; --scope active measures only the active context.

Guard history and drift prevention

Drift prevention reflects recorded guard history (kaddo guard --record), with three distinct states:

StateEvidenceDrift prevention
No history recordedGuard history: not availablenot available
History, 0 resolved warningsGuard history: available · Resolved drift warnings: 0available, 0 h (“no resolved drift warnings recorded yet”)
History, resolved warningsResolved drift warnings: NN × rework_hours_avoided_per_resolved_drift

Guard history available with zero resolved warnings still counts as available evidence, but drift-prevention savings remain 0 until at least one warning is resolved.

What it does NOT estimate

No exact ROI, no individual productivity, no per-person attribution, no team benchmarking, no time trends, no Jira/Linear/GitHub integration, no LLM, no dashboard. It never modifies code or knowledge, and writes nothing unless you pass --output.

Confidence

Each report carries a confidence level: Low (insufficient delivery, ownership or graph evidence), Medium (strong evidence but default assumptions and/or no resolved drift history), High (strong evidence + calibrated assumptions in .kaddo/savings.yml + recorded resolved drift warnings). Reaching High requires real drift-resolution evidence from kaddo guard --record. The deprecated Impact score is not a confidence input. When shown in Markdown, it is explicitly labelled Legacy Knowledge Impact Score and is informational only.

Calibration opportunities

When assumptions are default or not marked with calibrated_at, the additive calibration_opportunities field explains what aggregate project evidence could calibrate context preparation, review effort, clarification reduction and architecture discovery. It never collects or stores personal data, changes formulas or turns an estimate into a measured saving.

Over MCP

The MCP server exposes it read-only: kaddo://savings-report (saved or in-memory) and the kaddo_generate_savings_report tool (format · scope · output) which writes only under .kaddo/reports/.

Using it with stakeholders

Pair it with the Impact Report: impact shows what is true about the knowledge; savings translates that into directional time and value. Always present it as an estimate to calibrate — that honesty is the point.

Created by Julian Dario Luna Patiño · v3.138.0