Inference and estimation
Maximum likelihood, regularised regression, hierarchical and Bayesian models, with intervals reported next to every point estimate.
Shadows Technologies began where systems engineering meets mathematical modelling of financial markets. That pairing is still the practice: academic-level statistics on one side, engineers who can put the model in the hot path on the other.
We do not hand over a notebook and wish you luck. The estimator, its diagnostics and the service that serves it are the same piece of work.
Every model ships with the test that tells you it stopped working.
The same rigour a research group expects, wired into software that has to answer in production. Four areas we work in daily.
Maximum likelihood, regularised regression, hierarchical and Bayesian models, with intervals reported next to every point estimate.
Stationarity testing, ARIMA and GARCH families, state-space filtering and cointegration on market and telemetry data.
Diffusion and jump processes, Monte Carlo and quasi-Monte Carlo, variance reduction, sensitivity and scenario analysis.
Power calculations, sequential tests, causal identification and honest treatment of multiple comparisons.
10+ yrs
modelling and systems work in production
95%
intervals on every estimate we report
Out-of-sample
the only score we accept
1 team
quants and engineers, not a handover
We build on-chain market-making systems: a probability model fed by news, social tone and wallet-level order flow, an inventory-aware quoting engine, and settlement executed directly against the on-chain exchange. The model prices the event, the engine decides where to rest, and the chain is treated as a venue with its own latency and failure modes.
Fair value comes from the probability model, not from the mid. Long inventory pushes both quotes down until the position bleeds off, so the book, not a human, manages risk.
Sentiment and order-flow features move the estimate before the crowd repositions. Signals fire only where the gap clears the threshold, after fees, gas and expected adverse selection.
A market maker that is 5 points overconfident at the tails is insolvent eventually. Calibration is tracked continuously, per market family.
Related markets must price consistently. Where the bundle disagrees with its legs, the cycle is executed as one atomic package on chain, so a partial fill cannot leave a naked leg.
On-chain
quoting, cancels and settlement executed natively
Atomic
multi-leg arbitrage packages, no naked legs
Per-market
calibration and inventory limits enforced in code
Fee-aware
edge measured after gas and adverse selection
Realised spread capture against the modelled expectation with a two-sigma band. Excursions are flagged automatically and land in the same alerting path as any other production signal, whether the cause is the model or the venue.
Two excursions flagged: both traced to a settlement backlog on the venue, not to model error. The distinction decides whether you retrain or repair.
A signal that moves with the outcome is usually moving with something else too. We draw the causal graph, block the paths that create the spurious part, and estimate the effect that survives. Only that part gets capital or code.
Draw the graph first. Block the back-door path through the confounder, use the instrument where you cannot, then estimate what is left. Whatever the graph will not identify does not get traded.
adjusted for news arrival and market regime
most of it was the news event driving both sides
instrumented with venue-side settlement delays
Headline sentiment looked like the strongest signal and was almost entirely confounded by the news event itself. Wallet-cluster order flow kept most of its effect under adjustment, so that is the one we built around.
Bring the dataset and the decision it is supposed to support. We will tell you what can be estimated, how precisely, and what it takes to run it in production.
Talk to an analyst-engineer