docs: state that grateful-patient features time every gift against the latest discharge
Maintainers usually reply within 1 day
@jimoholayinka01 is already working on this.
Since Nov 11, 2026.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 76/100
- Issue type
- Documentation
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- markdown, python, scikit-learn
- Domain
- data, documentation
Research direction
Read the Notes sections of GratefulPatientFeaturizer in philanthropy/preprocessing/_grateful_patient.py and EncounterTransformer in philanthropy/preprocessing/_encounters.py, then check docs/explanation/compliance_considerations.md and docs/how-to/build_grateful_patient_features.md. Add the limitation paragraph, pointer, matching docstring sentences, and changelog bullet described in the acceptance criteria. Done means mkdocs build --strict and make ci pass.
Written by the indexing model from the issue text.
Description
Goal
A reader of the grateful-patient docs learns, before they use the features, that a donor with several hospital stays is measured against their most recent discharge, not the stay closest to each gift.
Background
This is the "document the limitation now" half of the decision proposed on #110 (comment of 2026-09-06). It was agreed as cheap and honest but never filed, so the limitation is still undocumented.
What the code does, so the paragraph describes it exactly:
GratefulPatientFeaturizer.fit(philanthropy/preprocessing/_grateful_patient.py, "Step 4") groups encounters bymerge_keyand keeps onelast_dischargeper donor (grouped[discharge_col].max()), after theas_ofcutoff.EncounterTransformer(philanthropy/preprocessing/_encounters.py) stores the same per-donorlast_discharge.__getstate__drops the rawencounter_dfso a saved model carries no patient rows (#78). Keying each gift to its own nearest prior discharge would need those rows attransformtime, which is why this is a limitation rather than a quick fix.
Acceptance criteria
- A short "Known limitation: repeat patients" paragraph in
docs/explanation/compliance_considerations.md, and a one-line pointer to it fromdocs/how-to/build_grateful_patient_features.md. - It says who is most affected (repeat or long-course patients, e.g. oncology or transplant), what goes wrong (a gift made after an earlier stay is timed against a later one), and that
as_ofdoes not fix it (it cuts future encounters, it does not pick the nearest one). - It links #110 for the per-gift keying design.
- A matching sentence in each class's docstring
Notessection. -
mkdocs build --strictandmake cipass; one CHANGELOG bullet under[Unreleased],### Documentation.
Scope
Docs and docstrings only. Changing the keying itself is #110.
Where to start
philanthropy/preprocessing/_grateful_patient.py(fit,__getstate__)philanthropy/preprocessing/_encounters.pydocs/explanation/compliance_considerations.md
Dependencies
- None
Comment on this issue before you start so two people don't build the same thing.
- Dominant language
- Python
- Stars
- 11
- Forks
- 23
- Avg merge
- 15h 13m
- Merged PRs (30d)
- 30
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from PhilanthroPy-Project/PhilanthroPy
-
bug roadmap
Difficulty 2/5 1-3 hours Newbie friendliness 77/100
PhilanthroPy-Project/PhilanthroPy#366 ·
Maintainers usually reply within 1 day
-
enhancement help wanted roadmap
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
PhilanthroPy-Project/PhilanthroPy#345 ·
Maintainers usually reply within 1 day
-
docs: "How to add a CRM ingest reader" checklist for contributorsPossibly taken @IG-ABHINAV claimed this 1 day ago. Openbeginner documentation good first issue roadmap
Difficulty 2/5 Half a day Newbie friendliness 68/100
PhilanthroPy-Project/PhilanthroPy#342 · 3 comments · 1 assignee ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 25/100
PhilanthroPy-Project/PhilanthroPy#369 ·
Maintainers usually reply within 1 day
-
good first issue roadmap
Difficulty 3/5 Half a day Newbie friendliness 35/100
PhilanthroPy-Project/PhilanthroPy#357 ·
Maintainers usually reply within 1 day
All issues in PhilanthroPy-Project/PhilanthroPy
Similar issues
-
release
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
MichaelYcJo/SpecSeal#1535 ·
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
valentinfrlch/ha-llmvision#769 ·
Maintainers usually reply within 1 day
-
bug
Difficulty 1/5 Under an hour Newbie friendliness 75/100
daniel-ospina/tortoise#11937 · 1 comment ·
Maintainers usually reply within 1 day
-
good first issue help wanted python up-for-grabs
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
andrewsiah/agentswarm-data-tasks#238 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
cadence-workflow/cadence-ai-samples#175 ·
Maintainers usually reply within 1 day