Skip to content

PIT Panel Builder

alphaforge.pit.panel

PIT panel building utilities.

Generic functions for assembling aligned panels from PIT snapshots. Used by positioning (SignalContext) and nowcast-data (benchmark PIT builder).

build_pit_panel(pit: PITAccessor, series_keys: dict[str, str], asof: pd.Timestamp, start: pd.Timestamp | None = None, end: pd.Timestamp | None = None, align_freq: str | None = None) -> pd.DataFrame

Build an aligned wide panel from PIT snapshots.

Parameters

pit : PITAccessor series_keys : mapping from desired column name to PIT series_key asof : point-in-time cutoff start, end : date range align_freq : if set, reindex to this frequency (with ffill for slower series)

Returns

Wide DataFrame with index=obs_date, columns=column_name.

build_pit_panel_long(pit: PITAccessor, series_specs: Sequence[dict], asof: pd.Timestamp, start: pd.Timestamp | None = None, end: pd.Timestamp | None = None) -> pd.DataFrame

Build a long-format panel (obs_date, entity_id, value columns).

Parameters

series_specs : list of dicts with keys: - name: column alias - series_key: PIT series key - entity_id: (optional) entity identifier asof, start, end : PIT query params

Returns

Long DataFrame with columns: obs_date, entity_id, and one column per spec name.

long_to_wide(df: pd.DataFrame, index_col: str = 'obs_date', columns_col: str = 'series_key', values_col: str = 'value') -> pd.DataFrame

Pivot long PIT DataFrame to wide format.