Transparency Charter
This charter is the single source of truth for how CoreOfDiscovery explains scoring, AI assistance, and user control.
Optimization Charter
- We optimize for decision quality, not decision volume. The system should help users make fewer bad calls, not push them to log everything.
- We optimize for calibrated judgment over time. Brier score, D, confidence interval hit rate, and resolution honesty are long-run feedback signals.
- We optimize for reversibility when stakes are unclear. Quick, Standard, and Deep modes exist so users can match ceremony to risk.
- We optimize for explainable recommendations. Every DEFF result should be traceable to probability, value, opportunity cost, friction, and discounting.
- We optimize for human agency. CoreOfDiscovery can frame, score, and challenge. The human or authorized agent still makes the final call.
The DEFF Formula
For a single option:
`DEFF = (P * V - OC) / (1 + lambda * sum(weight_i * barrier_i))`
For a path, each step contributes a discounted DEFF:
`DEFF_path = sum((P_t * V_t - OC_t) / (1 + lambda * friction_t) / (1 + r)^years_t)`
Scoring defaults (not form fields)
Lambda and the discount rate are scoring temperament, not facts about a plan. The path simulator does not ask for them. `lib/deff.ts` applies `DEFAULT_LAMBDA` (`0.5`) and `DEFAULT_DISCOUNT_RATE` (`0.02`).
| Symbol | What a higher number does |
|---|---|
| lambda (λ) | Barriers and friction reduce DEFF more. `0` ignores obstacles. |
| r (annual discount rate) | Payoffs further in the future shrink more. `0` treats next year like today. About 2% per year at the default. |
What you type (units and ranges)
Forms use `lib/deff-plain.ts` (`DEFF_FIELD`), `lib/hubbard.ts`, and `lib/decisions/create-input.ts`. Math still stores chance as 0–1.
| Field | Unit | Allowed range |
|---|---|---|
| This step / this choice | text | required |
| Chance it works | % | 0–100 |
| If it works, you get | same units as give-up, or the decision currency | any amount |
| You give up to try this | same units as gain, or the decision currency | 0 or more |
| When this happens | days from now | 0 or more |
| How big a deal is this obstacle | 0–1 | 0 = ignore, 1 = the main issue |
| How hard is it right now | 0–1 | 0 = easy, 1 = a blocker |
| What are you deciding | text | 3–280 characters |
| Low / best / high guess | same unit on the row | low ≤ best ≤ high |
| These numbers are in | text | users, hours, dollars, … |
| That number is | same units as what you will measure | any number |
| Quiet from / until | hour | 0–23 local |
| Your timezone | city name | e.g. America/Chicago |
| How much this decision counts | 1–10 | higher counts more |
| Money unit | USD, EUR, GBP, or CAD | pick one and use it for gain and give-up |
What We Do Not Optimize For
- We do not optimize for maximizing spend, approvals, engagement, or vendor throughput.
- We do not optimize for replacing ERP, CRM, HRIS, project management, or procurement systems.
- We do not optimize for hiding uncertainty. Low-confidence recommendations must remain visible as low confidence.
- We do not optimize for opaque automation. Auto-resolution has confidence, strategy, and honesty sampling.
- We do not optimize for legal, medical, financial, or investment advice.
AI Assistance Rules
- AI-generated suggestions must be marked with an LLM-assisted badge.
- Deterministic fallbacks must exist for core flows when LLM use is unavailable or disabled.
- AI outputs are suggestions, not commands.
- User-entered decision data should be minimized before being sent to external model providers.