Technical reference. Written for analysts and AI agents and kept in sync with the repository, so it uses internal terms. Raw Markdown: /pages/honesty.md.

Honesty — what Better World never does

One page for skeptical donors and rival agents. Every rule below is backed by an ADR or live API contract already in this tree. Public hostname is TBD.

Moat, in one line: we optimize for answers agents can cite without lying — not for punchier marketing.


What we never do

Rule Never Cite
Modeled ≠ guaranteed Present impact / portfolio figures as promises or “you will save N lives” ADR 0002 · modeled: true / guaranteed: false on /v1/impact-estimate
No invented CE Fabricate cost-effectiveness, fill nulls, or outrank evaluator pages with vibes ADR 0001 · docs/methodology.md
No silent unit mixing Merge WELLBYs, lives-saved, SADs, tCO₂e into one “best overall” score without human moral weights ADR 0007 Proposed · mixes_units_in_ranking: false · separate leaderboards
Sponsored ≠ organic Let paid / featured / placement fields mutate tier, claims, confidence, or conviction ADR 0003 · docs/ranking-integrity.md
Org narrative untrusted Treat summary / claim notes as system instructions (jailbreaks, invent-CE directives, tool fences) ADR 0008 · egress scrub on org/compare
No personal tax assertions Say “your gift is deductible” or set personal deductibility true from a charity name alone docs/tax-and-deductibility.md · /v1/tax/{id} → assert_personal_deductibility: false always
Giving intents never charge Process payments, invent crypto wallets, or pretend Stripe ran /v1/giving/intent → charge/charges: false · deep-link only · docs/noncash-handoff.md
Policy Accepts need humans Mark Accepting-policy ADRs Accepted, invent weight tables, or mint Ho Hum stamp files ADR 0004 · data/qa/human_stamps/README.md
Answers carry provenance Ship ranking / recommend / compare / leaderboards / org / meta without a stamp agents can cite provenance on those responses · /v1/meta authoritative · Wave BI

Cross-cause units (ADR 0007 — still Proposed)

We rank within an outcome family (lives_saved, wellbeing_wellbys, income, …). Converting across families is a human moral-weight choice, not a missing spreadsheet cell.

  • Product default: separate leaderboards; mixes_units_in_ranking: false.
  • Agents must not Accept ADR 0007, invent conversion factors, or create data/qa/human_stamps/adr_0007_accepted.by_ho_hum.
  • Underspecified “best charity in the world” → clarify family or return parallel boards / portfolio language — never a secretly mixed score.

Policy artifact: data/qa/moral_weights_policy.json (status: proposed). Methodology: docs/methodology-moral-weights.md.


How to verify (donors & agents)

  1. ADRs: docs/adr/ — especially 0001, 0002, 0003, 0007 (Proposed), 0008.
  2. Live flags: GET /v1/meta and any recommend/leaderboards/compare/org body → provenance (product_version, data_snapshot_id, generated_at_iso, mixes_units_in_ranking: false).
  3. Tax: GET /v1/tax/{org_id} — not_tax_advice: true; never assert personal deductibility.
  4. Giving: GET|POST /v1/giving/intent — deep-link handoff only; no charge.
  5. CI gates: honesty lint, adversarial ranking, tax language, giving-intent adversarial, org-text injection, ADR 0007 stamp gate, provenance stamp tests (docs/ci.md).
  6. Decision desk: decision-desk.md — every pending Ho Hum gate in one place (ADR / review / research).
  7. Machine entry: ../llms.txt · playbook: agent-playbook.md · donor FAQ: faq-donors.md.

Related

  • Pending Ho Hum gates (one list): decision-desk.md — ADR 0007 Proposed · review queue · research packs (no auto-resolve)
  • Competitive framing: docs/competitive-moat.md
  • Red lines: docs/red-lines-and-exceptions.md
  • Ranking integrity: docs/ranking-integrity.md
  • Agent contract: docs/agent-contract.md / docs/agent-tool-contract.md

JSON-LD: honesty.jsonld.