research: test `FinancialForecastModel` on a real monthly revenue series
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 25/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- python
- Domain
- data, machine-learning
Research direction
Start with philanthropy/models/_forecast.py to see how FinancialForecastModel produces forecasts, then check docs/results/ for the write-up format. Pick a licensed monthly revenue series and load it from a local file, with no download code. Run a rolling-origin evaluation over the last 12 months comparing MAE against a 12-month mean and last-year-same-month. Done means the result is recorded in the docstring and Results pages, whether or not the model wins.
Written by the indexing model from the issue text.
Description
Goal
Find out whether FinancialForecastModel beats a 12-month moving average on real fundraising revenue, since it has only been checked on synthetic data.
Acceptance criteria
- Pick a public monthly series with clear licence terms and read it from a local file; no download code in the package. Say in the write-up how close it is to an organisation's own gift revenue: 360Giving GrantNav, for example, is grants awarded by funders, so summed by month it is a sector series, not one fundraiser's income. One organisation's own series is better if a licence allows it.
- Rolling-origin evaluation: forecast each of the last 12 months from the data before it; report MAE for the model, a 12-month mean, and last-year-same-month.
fit(X, y)takes a per-period feature matrix andpredict_revenue_forecast(X, horizon)rolls forward from the context inX(see the docstrings in_forecast.py); state theXyou built. - Record the result. If the model loses, say so in its docstring and the Results pages rather than leaving the claim untested. It is Tier 3 in
docs/reference/index.md, so a losing result can also update that row's "Why" text.
Scope
Evaluation only. No new dependency: no statsmodels, no torch (see AGENTS.md).
Where to start
philanthropy/models/_forecast.pydocs/results/for how results are written up
Dependencies
- None
Phase order is a release plan, not a rule against picking up independent work early. 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
-
docs: state that grateful-patient features time every gift against the latest dischargePossibly taken @jimoholayinka01 claimed this today. Opendocumentation good first issue roadmap
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
PhilanthroPy-Project/PhilanthroPy#361 · 2 comments · 1 assignee ·
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
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