Feature engineering
Polymarket Feature Engineering
The respectable Polymarket features all read the executable side: bound distance, depth at the executable price, imbalance, spread persistence, and reprint timing. This page inventories the features that work and the optical ones to avoid.
Figures measured as of 2026-09-24 on the published PolyOrderbooks archive.
Taxonomy
Feature families that carry signal
Avoid
Features that leak or lie
Mid-based aggregates leak the venue's one-sidedness into the feature; flag-dropped curves fake liquidity; and minute-bucketed features destroy the reprint timing that carries the real signal on this record.
The honest engineering test: a feature that uses anything after the resolve second is a label, not a feature, and a feature that ignores the one-sided flag is a miss at 16.9% of frames.
Build
Building from the grid
Walk the 250ms rows per market, compute the feature series with a look-back window that ends before the resolve second, and store the flag columns beside the features so the model and the reviewer see the same texture.
Parquet exports (format) and Polars/DuckDB (libraries) keep the engineering at laptop scale even for the full corpus.
Honest
The honest framing
Feature engineering on this record is mostly discipline: the venue's real signal lives in depth and timing near the bound, and every other feature family is measured noise unless it beats the structural baseline on held-out resolved markets.
Baseline
The baseline first
Polymarket features should be scored against the venue's structural baseline before anything else: executable prices bunch on the 0.99/0.995 grid 98.6% of the time, and a 0.99-predicting model and a 0.51-predicting model are different statistical beasts. A feature family that cannot beat a calendar-and-grid dummy on held-out resolved markets is measurement noise.
The honest build order is therefore baseline, then feature, then claim — the record makes every comparison reproducible, and the resolved outcome column provides the label.
FAQ
What features actually matter?
Bound distance, depth at the executable price, imbalance, spread persistence, and reprint timing.
What features leak?
Anything computed after the resolve second, and any mid-based aggregate over one-sided frames.
How do I build at scale?
Walk 250ms rows into Parquet features with look-back windows that end before resolution, using the flag columns throughout.