Skip to content

feat(etl): multi-period fundamentals ETL and PIT history - #116

Merged
JLaborda merged 4 commits into
developfrom
feat/87-multi-period-fundamentals
Jul 1, 2026
Merged

feat(etl): multi-period fundamentals ETL and PIT history#116
JLaborda merged 4 commits into
developfrom
feat/87-multi-period-fundamentals

Conversation

@JLaborda

@JLaborda JLaborda commented Jul 1, 2026

Copy link
Copy Markdown
Owner

Summary

  • Extend download-simfin with annual/quarterly income, balance, and cashflow SimFin bulk variants (phase 2, non-critical).
  • Normalize multi-period statements with QV forensic/FS-Score columns (accounts_receivable, cost_of_revenue, depreciation_amortization, sga_expense, operating_cash_flow) and route missing inputs to the review queue (missing_qv_inputs).
  • Add load_pit_fundamentals_history() for per-fiscal-period PIT queries without look-ahead; Magic Formula loaders keep using TTM rows.

Closes #87

Pre-commit gate

  • format: no changes
  • lint: passed
  • test: passed (236 tests)

Test plan

  • poetry run pytest tests/test_download_simfin.py tests/test_simfin_normalizer.py tests/test_pit_fundamentals.py
  • make test (full suite, 236 passed)
  • Manual: poetry run download-simfin with SIMFIN_API_KEY to verify live annual/quarterly downloads
  • Manual: poetry run normalize-simfin --snapshot-date <date> --ticker AAPL after download

Made with Cursor

JLaborda and others added 3 commits July 1, 2026 10:42
Record issue #87 delivery: annual/quarterly SimFin variants, QV field
mapping, PIT history interface, and updated operator download table.

Co-authored-by: Cursor <cursoragent@cursor.com>
Download annual/quarterly statement variants, normalize with QV field
mapping and review-queue routing, and expose load_pit_fundamentals_history
for per-period PIT queries without look-ahead.

Closes #87

Co-authored-by: Cursor <cursoragent@cursor.com>
Cover phase 2 download variants, quarterly QV field normalization,
missing-input review queue routing, and PIT history look-ahead guards.

Co-authored-by: Cursor <cursoragent@cursor.com>
@codecov

codecov Bot commented Jul 1, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 98.13%. Comparing base (1fd4c13) to head (f1b9045).

Additional details and impacted files
@@             Coverage Diff             @@
##           develop     #116      +/-   ##
===========================================
+ Coverage    97.87%   98.13%   +0.26%     
===========================================
  Files           23       23              
  Lines         1552     1665     +113     
  Branches       192      216      +24     
===========================================
+ Hits          1519     1634     +115     
  Misses          25       25              
+ Partials         8        6       -2     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Exercise PIT history edge paths, partition readers, statement matching,
and YAML list parsing so Codecov patch coverage meets the threshold.

Co-authored-by: Cursor <cursoragent@cursor.com>
@JLaborda
JLaborda merged commit 0ac329a into develop Jul 1, 2026
4 checks passed
@JLaborda
JLaborda deleted the feat/87-multi-period-fundamentals branch July 1, 2026 11:43
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