-
Notifications
You must be signed in to change notification settings - Fork 0
Data Shape Invariants
This page describes the shape of data as it moves through the pipeline so tests and downstream tools can rely on consistent expectations.
Each package’s data is a Polars LazyFrame with columns (before lowercasing):
Date-
Open,High,Low,Close,Volume -
Dividends,Stock Splits
(as renamed from Yahoo’s multi-index columns for that ticker).
Column names are lowercased by zipping original names with lower():
-
Date→date -
Close→close - …
Spaces in names become part of the lowered string (e.g. Stock Splits → stock splits).
See Indicators (Overview). Notable case exceptions in current code:
-
ATR(uppercase) -
K,D(stochastic, uppercase)
Intermediate columns used for RSI/ATR (e.g. returns, gains, losses, true_range) remain in the frame unless dropped elsewhere.
Row count equals the number of history rows returned by Yahoo for that (ticker, period, interval) after filtering invalid tickers.
Leading nulls are normal for rolling indicators until the window is filled.
- Computation is built on a
LazyFrameuntilcollect(engine=...). - The returned package’s
datais a materializedDataFrame.
Related pages:
- Getting Started
- CLI Reference
- Configuration & Templates
- Indicators (Overview)
- Output Formats
- Advanced Usage
- Troubleshooting
- Pipeline
- CLI Parsing
- Data Source (Yahoo Finance)
- Source Data Deep Dive
- Schema Normalization
- Data Shape Invariants
- Output Writing
- Write Output Deep Dive
- Config Resolution
- Polars Engine
- Source Modules
- Testing
- Performance
- Indicators Engine
- Reproducibility