Skip to content

Add a plain-language Results section to the docs - #255

Open
shivamlalakiya wants to merge 2 commits into
mainfrom
d4-results-pages
Open

shivamlalakiya wants to merge 2 commits into
mainfrom
d4-results-pages

Conversation

@shivamlalakiya

Copy link
Copy Markdown
Contributor

Summary

Fundraisers keep asking the same question about every model in this
library: does it actually beat what we already do without it? This adds a
"Results" section to the docs with one short page per model ($1K upgrade,
response/major gift, lapse, suggested ask, planned giving, who to mail),
each showing the model's picks against a simple rule and against random
picking in donor counts, with a plain verdict ("beats the rule", "about
the same", or "does not beat the rule; use the rule instead").

  • docs/results/index.md plus one page per model, an index table with a
    one-line verdict each, and a short "how we tested" note.
  • scripts/make_results_pages.py generates every number and chart the
    pages cite, running scripts/benchmark_models_vs_baselines.py plus one
    worked example of score_upgrade_prospects on a seeded sample panel.
    Its committed output (docs/assets/results/*.png, results.json) is
    what the pages reference; nothing is typed by hand.
  • CHANGELOG entry under [Unreleased].

Two losing/mixed results are called out plainly rather than smoothed
over: the response/major-gift model does not beat ranking by past giving
on the sample data, and the suggested-ask model loses to "ask what they
gave last time" on the real KDD Cup 1998 file. The lapse page also flags
that on a file where almost every donor is about to lapse (KDD Cup 1998),
a 96% hit rate is about the same as guessing, since the base rate is
already 95%.

Test plan

  • make ci (2229 passed, 30 skipped, 98.42% coverage, floor 92%)
  • make riskcov (98% over the risk tier, floor 93%)
  • mkdocs build --strict passes
  • python scripts/make_results_pages.py --with-kdd98 regenerates the
    committed JSON/PNGs from scratch

Fundraisers keep asking the same question about every model: does it
actually beat what we already do without it? These six pages answer that
in donor counts instead of statistics, one per model ($1K upgrade,
response/major gift, lapse, suggested ask, planned giving, who to mail),
each comparing the model's picks against a simple rule and against random
and giving a plain verdict.

scripts/make_results_pages.py generates every number and chart the pages
cite by running the existing benchmark_models_vs_baselines.py plus one
worked example of score_upgrade_prospects, so nothing here is typed by
hand; its output is committed under docs/assets/results/.
Match the upgrade page's rule figure to its chart (18, not 17), say what the
decile chart actually shows (only the model's top slice stands out), mark
the planned-giving score as untested on real bequest data rather than as a
win, and title the response page by the question it answers.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant