Runtime Objects Overview¶
StackSats has three fundamental runtime objects:
- FeatureTimeSeries: validated input to a strategy (Polars-backed feature time series with schema and time-series validation).
- BaseStrategy: user intent and logic (hooks, identity, allocation intent).
- WeightTimeSeries / WeightTimeSeriesBatch: validated output of a strategy (weights, prices, metadata; framework invariants per Framework).
Input → Strategy → Output
FeatureTimeSeries is the input (features, schema, no forward-looking). BaseStrategy consumes it and produces allocation intent. WeightTimeSeries is the output object that enforces budget, daily bounds, and validation guards.
Fundamental objects¶
| Object | Role | Validation |
|---|---|---|
| FeatureTimeSeries | Input to strategy | Schema (required columns), sorted unique dates, optional no-future-data and finite-numeric checks. |
| BaseStrategy | Strategy logic | User-defined hooks; framework runs the allocation kernel. |
| WeightTimeSeries / WeightTimeSeriesBatch | Output of strategy | Framework invariants: weight sum = 1, min/max daily weight, no forward-looking at export, NaN/inf/range guards. See Framework. |
Read in this order¶
Why this split exists¶
- FeatureTimeSeries defines validated feature input (schema and time-series checks).
- BaseStrategy defines user-owned hooks and metadata.
- WeightTimeSeries defines framework-validated outputs and export contracts.
- Schema docs are generated from code and kept synchronized in CI.
Stable public API¶
For the supported 1.x import surface, CLI subset, and artifact contracts, use Public API.
This page stays focused on the runtime object model rather than acting as the full stable API index.