Quantitative & data analysis

Models that survive contact with production.

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.

Analysis profileLive
Foundation
MSc/PhD level statistics & applied maths
Origin domain
mathematical modelling of markets
Reported with
confidence intervals, not vibes
Validation
out-of-sample, walk-forward, residual tests
Delivery
model + service + monitoring in one repo

Every model ships with the test that tells you it stopped working.

Method

Statistics as an engineering discipline.

The same rigour a research group expects, wired into software that has to answer in production. Four areas we work in daily.

Inference and estimation

Maximum likelihood, regularised regression, hierarchical and Bayesian models, with intervals reported next to every point estimate.

Time-series econometrics

Stationarity testing, ARIMA and GARCH families, state-space filtering and cointegration on market and telemetry data.

Stochastic modelling

Diffusion and jump processes, Monte Carlo and quasi-Monte Carlo, variance reduction, sensitivity and scenario analysis.

Experiment design

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

Case study · prediction markets

Market making on Polymarket.

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.

Live book · YES contracttwo-sided · inventory skewed
66¢
65¢
64¢
63¢
our ask
62¢
61¢
60¢
our bid
59¢
58¢
57¢
56¢
fair value
62.0¢
quoted spread
3.0¢
inventory
+2400
skew applied
0.60¢

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.

Model probability vs market impliedmodel vs market · edge shaded
time (5 min buckets)implied probability (%)
max edge
5.0 pts
signals fired
18
direction hit rate
83%

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.

Probability model · resolved marketsreliability diagram
predicted probabilityrealised frequency
Brier
0.158
mean cal. error
1.4 pts
resolved markets
4,320

A market maker that is 5 points overconfident at the tails is insolvent eventually. Calibration is tracked continuously, per market family.

Statistical arbitrage · linked marketsdependency graph · arb cycle
ρ 0.62ρ 0.55ρ 0.38ρ 0.4768%outcome A24%outcome B86%bundled A|B41%threshold market57%timing market
markets linked
5
cycle legs
2
package mispricing
10.3 pts

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

Monitoring

A model that drifts should say so itself.

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.

Realised vs modelled spread capture observed model ±2σ
σ of residuals
1.35
flagged points
2
window
30 intervals

Two excursions flagged: both traced to a settlement backlog on the venue, not to model error. The distinction decides whether you retrain or repair.

Attribution

Correlation is where we start, not what we trade.

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.

Naive vs adjusted signal effectidentification, not correlation
confoundersignaloutcomeinstrument

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.

raw correlation adjusted effect
  • wallet-cluster order flow0.720.54

    adjusted for news arrival and market regime

  • headline sentiment0.660.09

    most of it was the news event driving both sides

  • book depth0.370.28

    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.

Have data and a question you cannot close?

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