research: test `FinancialForecastModel` on a real monthly revenue series

Aperta
#350 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
25/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
python

Direzione di ricerca

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.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

enhancement help wanted roadmap
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 and predict_revenue_forecast(X, horizon) rolls forward from the context in X (see the docstrings in _forecast.py); state the X you 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.py
  • docs/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.

Lingua principale
Python
Stelle
11
Fork
23
Merge medio
1g 11h
PR unite (30g)
30

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di PhilanthroPy-Project/PhilanthroPy

Tutte le issue di PhilanthroPy-Project/PhilanthroPy

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.