Dual tags
Every predictor is a registered function carrying two tags:- category — the standard financial taxonomy, shown to humans (valuation, profitability, efficiency, leverage, growth, momentum, size, liquidity)
- group — the ML feature-set alias used by models (value, profitability, investment, momentum, size)
get_metrics, list_metrics, and
every REST endpoint pick the new metric up automatically.
The taxonomy
Definitions follow the open-source asset-pricing literature
(Chen-Zimmermann):
ps = Piotroski F-score, nincr = consecutive
earnings-increase quarters, depr = depreciation/PP&E, chcsho = net share
issuance, agr = 12-month asset growth, operprof = operating profits over
book equity.
Point-in-time rule
A metric value for month-endt may only use data observable at
t - asof_lag months:
asof_lag=0— a fiscal year ending 2015-03-31 is usable from 2015-03-31 (the academic standard)asof_lag=3— approximates the results-announcement delay
MetricContext carries only data that passes the filter — metric functions
cannot see the future even if they try.
Panels
build-panel runs the registry over every ticker’s staged monthly prices and
writes one CSV per ML group to intermediate_data/panels/:
get_panel(metric) reads the panels back as a wide date × ticker
cross-section — the exact shape the ML pipeline consumes.