Skip to content

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

  1. Strategy Object
  2. FeatureTimeSeries
  3. WeightTimeSeries
  4. WeightTimeSeries Schema

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.

API pointers