Prove your pricing algorithm acts alone.
Dynamic pricing systems can learn to hold prices high by watching each other without anyone agreeing to anything. Courts, statutes and enforcers now ask three questions: were the inputs public, were the recommendations binding, did the rivals move together. This engine measures all three from your own logs or from public prices, and returns indices, p-values against simulated competitive markets, and a hash-chained certificate for counsel.
Run a live audit on synthetic data Read the methodologyWhat it measures
Each module answers one question a court or a regulator actually asks. Nothing here is a finding of agreement; everything here is evidence about conduct.
Price Parallelism Index
Co-movement of log returns over 1h, 24h and 7d windows, searched over a small lag band so a one-step-lagged copier cannot hide. Level correlation is reported but labelled spurious-prone.
Lead-lag and reaction latency
Granger causality in both directions on stationarity-checked returns, plus event-based reaction time on the raw clock. Following a rival within 30 seconds in 90% of events is not a human on a dashboard.
Asymmetric response
Rockets-and-feathers test: does the algorithm follow increases faster and more fully than decreases? A Wald contrast on up versus down pass-through, a ratchet index and price-floor rigidity.
Human delegation index
The share of algorithmic recommendations accepted, the longest acceptance streak, and whether the few rejections target large moves. A rubber stamp is not review.
Non-public data commingling
A screen of the input features the algorithm consumed for competitors' private state and shared-pool provenance. This is the input-side pattern the recent cases turn on.
Cartel screens and nulls
Variance screen, structural breaks, and three simulated competitive worlds calibrated to your data, so an index becomes a p-value under the most generous competitive explanation.
Two ways to run it
| Mode | You supply | You get |
|---|---|---|
| A Log audit | Your own execution log: timestamp, SKU, price, proposed price, override status, input features. Read only; the engine never connects to your systems. | Lockstep, lead-lag, reaction latency, ratchet, delegation index, commingling screen, certificate. |
| B Market observability | Public price snapshots across merchants for identical SKUs, from any source. | Lockstep, lead-follower latency, floor rigidity, asymmetric response, per pair. |
Inputs: CSV, Parquet or JSON lines with ts, sku, seller, price and optional Mode A columns. Seller labels are opaque; the mapping to real identities never leaves you.
The legal context the engine is hardened against
Statutes and enforcement positions in force at the time of writing. This is context, not legal advice.
What comes out
A canonical JSON report, a certificate, a PDF, and an evidence log where each entry carries the hash of the one before it. Alter or remove one report and every hash after it breaks. The engine issues a Certificate of Independent Action only when the composite is low and no critical flag fired, whatever the composite says.
CERTIFICATE OF INDEPENDENT ACTION Method version aac-0.2.0 Input hash 3f1c…9a Report hash 7006ecc0438be85ed8c3620a08e841377f1a1baf… Previous entry 0000000000000000000000000000000000000000… Overall risk index 0.136 (0 independent, 1 lockstep) Tests corrected (BH) 4, significant after correction 0 Flags: none
Talk to us about an engagement
Law firms, in-house counsel and pricing teams. Tell us the market and the data you hold; we reply through the channel you give here.