Metrics

A rule reads one metric about the paired company. Price and momentum come from Chainlink; fundamentals come from a permissioned publisher.

Coverage is a data question, not a tokenization question. A rule can watch any listed company — 5,485 of them in the US, 3,270 on NASDAQ. Whether that company’s stock is onchain decides only what a pool can pair against. The two sets barely overlap and are not related.

What a rule can read

MetricSourceScaleNotes
PRICEChainlink1e8Absolute price. Demo-grade — see below.
CHANGE_1DDerived1e6 signedPercentage, can be negative.
CHANGE_7DDerived1e6 signedPercentage, can be negative.
RELATIVE_VOLUMEDerived1e6Ratio against the trailing average.
DISTANCE_FROM_52W_HIGHDerived1e6 signedDrawdown from the annual high.
RSI_14Derived1e6Standard 14-period index.
PEPublisher1e6 signedFundamental. Not available for every stock.
REVENUE_GROWTH_YOYPublisher1e6 signedFundamental.
EPS_GROWTH_YOYPublisher1e6 signedFundamental.

Availability is per stock

Not per asset class. Funds — SPY, QQQ, USO, SLV — have no P/E and no growth figures. Neither does SPCX, because SpaceX is private, even though it is an equity by every classification you would apply. The contract answers this exactly through supportsMetric, which reports whether we actually hold that datum for that stock. Never filter with a hardcoded list.

Because one unusable metric discards the whole evaluation, a fundamentals rule on a stock without fundamentals pins that pool to its high-water maximum forever. Always check support first.

Absolute price is the weakest primitive

A share multiplier drifts with dividends and jumps on splits, so an absolute-price threshold quietly stops meaning what it meant when it was written. AAPL already sits at 1.000566 rather than 1.0. Percentage and ratio metrics are the durable primitives; absolute price is best treated as demo-grade.

Freshness

Equity feeds cover market hours — roughly 24 hours a day, five days a week — with a 24-hour heartbeat. They go stale over weekends by design, and a pool that references them falls back accordingly. That is expected behaviour, not an outage. See Staleness and fallback.