factor · Microstructure

Microstructure factor — explained

Microstructure reads how thinly a stock trades and how much its price moves per dollar of volume. Liquid mega-caps absorb information continuously; thinly-traded names accumulate latent dislocation that releases as gap moves. The factor isolates the liquidity premium and the price-impact risk so position sizing can respect both.

Where this comes from

Academic anchor

Amihud 2002 — Illiquidity and Stock Returns: Cross-Section and Time-Series Effects
Constructs an illiquidity measure equal to absolute daily return divided by dollar volume — the price impact per dollar traded — and shows that the cross-section of US stock returns carries a liquidity premium of roughly 1-2% annually for the most illiquid quintile over 1964-1997. The premium is cyclical: it widens in market stress and compresses in calm regimes (Acharya-Pedersen 2005). For a long-only quant strategy the implication is twofold: illiquid names offer compensated extra return, but they also carry execution risk that any honest position-sizing model must respect.
Plain English

What it actually measures

Two stocks both have a 0.6 expected Framler score. One trades $5bn per day on the NYSE; one trades $5m per day on a pink sheet. The signals look identical, but the second name's price will move 10% on a single $500k order — your fill price won't match the model's signal price. Microstructure quantifies this gap directly. It's not a return-prediction factor in the same sense as momentum or value; it's a liquidity and execution-risk factor. We use it to discount thinly-traded names' contribution to the composite (so the composite doesn't load on names you can't actually trade) and to widen prediction intervals where price impact is structurally larger.

No calibration constants

Math sketch

inputs   · daily price moves and dollar volume
         · intraday range proxy for effective bid-ask spread
ideas    · price impact per dollar traded (Amihud 2002)
         · effective-spread proxy from intraday range (Roll 1984)
         · log-scaled absolute trading volume
         · all three blended with sign flips so illiquidity is bearish
           and volume is bullish
output   · cross-sectional standardised score

Three anchors so the factor doesn't collapse to a single number. The blend weights, lookback window, and exact transform on each anchor are calibrated and proprietary. Public: the three building blocks, the sign convention (illiquidity bearish, volume bullish), and the academic anchors (Amihud 2002, Roll 1984, Acharya-Pedersen 2005).

Pipeline

How Framler implements it

Inputs come from Yahoo Finance EOD daily bars (open, high, low, close, volume). The factor refreshes nightly during the 06:00 UTC universe sweep using the trailing 30 trading days. We don't include intraday tick data — the marginal predictive lift is small for our 30-90 day horizon, and the data cost is high. The factor's role in the composite is largely defensive: it prevents the engine from over-loading on micro-cap names where the Amihud measure suggests price-impact risk dominates the signal.

One coherent posterior

How it composes with Framler

Microstructure interacts with Short Interest in the SHORT SQUEEZE SETUP confluence pattern — illiquid names with extreme short interest are exactly the squeeze candidates with the highest convex upside (low float + crowded short = forced cover with no liquidity to absorb it). Microstructure also widens the conformal prediction interval — the Mondrian bin partition uses liquidity as one of its conditioning dimensions, so illiquid names get wider intervals reflecting their genuinely higher uncertainty. Risk-tolerance settings on /pricing reduce position sizing in low-liquidity bins.

Honest limitations

When it fails

Two structural limitations. (1) End-of-day blindness. The factor uses daily bars; intraday liquidity events (a single block trade clearing the order book at a stretched price) are invisible until the close. For institutional flow we'd want tick-level data; we're not there yet. (2) Survivorship in the universe. Our 1,000-ticker universe is curated to exclude micro-caps with average daily volume under ~$5m. So microstructure's role is more about within-universe relative liquidity rather than warning against truly untradeable names — those are excluded upstream. The factor is an internal sizer, not a tradeability filter.

Pro depth

Engineering integration

How Microstructure flows through the production engine
Sign convention
Bullish-when-high. Universal across all 13 factor families — a high Microstructure score reads as a bullish lean, low as bearish, 50 as neutral. The composite inherits the convention unchanged.
Standardisation
Cross-sectional z-score per scoring day across the 1,000+-ticker universe, then mapped to 0-100. Tickers without sufficient input data surface as null and the composite skip-and-renormalise path takes over (Asness-Frazzini-Pedersen 2014).
Refresh cadence
Recomputed daily via the universe-scoring cron (production runs 06:00 UTC on weekdays via Vercel + GitHub Actions). Factor-specific upstream data refresh is described in the implementation section above.
Composite entry
Enters the Bayesian composite with a regime-conditional weight calibrated weekly by the calibrate-weights cron against accumulated forward-return data. Per-regime weight vectors are proprietary; the architecture is in the math sketch above.
Diagnostic surface
Live structural invariants on /coherence exercise the math stack on every request (factor correlation matrix, BOCPD posterior, Mondrian bin coverage). Coverage and IC accumulate weekly via the accuracy-check cron; the sector-honesty panel on /track-record publishes per-cohort calibration tiers.
Hidden by design
The exact factor weight, regime-conditional multipliers, and any constant inside the math sketch marked «calibrated and proprietary» stay private — that's the engineering moat. Everything above architecture-level is published; everything below stays in the engine.
Read next

Related factors

Short InterestOptionsMomentum

See Microstructure score on a real ticker

Every ticker page shows the per-factor decomposition. The Microstructure score is one of thirteen composing the 0–100 the composite score.

Try NVDA →Full methodologyMath coherence live
Microstructure factor explained | Framler