vertiq
Benchmarks

Benchmark results

Each scenario uses synthetic data with a known ground truth, so results can be checked against the correct answer. Values are means ± standard deviation over 5 runs. The full suite runs in 196 seconds on a laptop using 4 cores (arm64, Python 3.10.10).

ScenarioResultInterpretation
Customer retention
Two businesses, 500 customers with irregular purchase intervals; two thirds of churners slow down before leaving
AUC 0.976 ± 0.005 vs 0.969 ± 0.005; Brier 0.043 ± 0.004 vs 0.061 ± 0.006Ranking comparable to the recency rule; probability estimates about 30% more accurate (Brier score)
Equipment failure
240 assets; each skipped maintenance in the last 60 days triples failure probability
AUC 0.674 ± 0.050 baseline, 0.735 ± 0.059 generic, 0.767 ± 0.043 with a pluginThe generic task detects the signal; one domain feature improves it further
Length of stay
300 patients; stay length increases with recent admissions
MAE 1.61 ± 0.06 days vs 2.18 ± 0.14 for the previous valueValue prediction outperforms the previous-value baseline
Random data
300 entities with a memoryless 4% weekly event rate
Models promoted: 2 of 25 with the default gate; 11 of 25 with the confidence check off; promoted models worse than the baseline: 0The default gate requires the gain to be clear at 90% confidence and keeps the baseline on most random datasets. Without that check, a model that only ties the baseline passes about half the time
Intervention uplift
800 customers; the intervention raises response by 30 points for overdue customers only; 25% held out
Top-ranked half 23.6 pts ± 5.9; bottom half -1.8 pts ± 5.2Uplift ranking separates responsive from non-responsive customers
Offer effect on order value
Half of interventions include an offer that reduces order value by 20%
Estimated -20.2% ± 0.9The order-value model recovers the true effect
Insight detection
600 new customers; one first-order product doubles the repeat rate; a matched dataset with no effect
Planted pattern detected 5/5; false patterns on random data: 0False-discovery control holds
Non-linear effects
400 assets; failure risk is high outside a 40–60 degree operating band on either side
AUC linear 0.670 ± 0.024, boosted 0.690 ± 0.022, auto 0.676 ± 0.024Boosted trees capture the U-shaped effect; auto chose them in 1/5 runs
Time to next event
400 customers with purchase rhythms of 5 to 40 days; half eventually stop
AUC 0.947 ± 0.014 without, 0.954 ± 0.013 with the survival featureBetter in 5/5 runs on rhythm-driven data
Effect of any action
1,500 machines; a programme lowers 30-day failure from 50% to 25% for old machines only; 30% held out
Estimated effect: old -0.266 ± 0.035, new -0.018 ± 0.021 (true −0.25 and 0)The uplift model identifies which entities the action helps
Effect without a control group
1,000 entities; treatment is more likely where the outcome is already higher; true effect +1.0
Matched estimate 1.017 ± 0.019; naive difference 3.076 ± 0.131Matching removes the confounding; the 90% interval covered the truth in 4/5 runs
Sequential test
Baseline 10%, smallest worthwhile rate 15%, alpha 0.05, power 0.8; 600 streams per run
False alarms 0.041 ± 0.014; detection 0.799 ± 0.017; 147 observations on average against 253 for a fixed-sample testError rates on target with fewer observations
Drift
Feature rows from the same distribution, and with one input shifted by one standard deviation
Largest PSI 0.011 ± 0.004 when stable, 0.931 ± 0.037 when shiftedVerdicts: stable, and retrain with the shifted input named
Lagged sequences
500 customers; 60% of Apparel orders are followed by Cosmetics 18 to 22 days later
Found 5/5; median lag 20 days; false patterns on random data 0.2 ± 0.4 per runPatterns and their timing are recovered
Automatic tuning
The 240-asset plant; the search may switch learner, add the survival feature and add any of four candidate features: skipped maintenance and three random numbers
Real feature kept 5/5; random features kept 0.0 per run; tuned model promoted 2/5; AUC 0.761 ± 0.047 tuned vs 0.735 ± 0.059 untunedChanges are kept only when most validation folds improve; the gate promotes the tuned model only when the held-out gain is clear
Two live arms
Arm A converts at 10%; B at 10% (no difference) or 13%; checked after every observation
False alarms 0.042 ± 0.007 against 0.363 ± 0.024 for a z-test checked every 100 pairs; detection 1.000 ± 0.000, median 1,587 per armContinuous monitoring without the inflated false-alarm rate of repeated checks
Doubly robust effect
3,000 entities; treatment more likely where the outcome is already higher; outcome curved (exp), true effect +1.0
AIPW 0.906 ± 0.171; outcome model alone 0.849 ± 0.010; naive 2.450 ± 0.121Consistent although the outcome model is wrong; the 90% interval covered the truth in 5/5 runs
Planning under a budget
2,000 machines, two actions with known effects (a call and a visit), budget 8,000 for 400 machines
Expected benefit 22332 ± 955 planned, 6800 ± 1354 random; 93% of the best possible planThe plan sends visits where they work and calls elsewhere
Checks on proposed actions
300 proposals: a helpful call, a harmful overtime action and an unmeasured part replacement
Harmful allowed: 0 of 495; unmeasured held: 505 of 505; helpful allowed: 265 of 500, blocked 0Harm is blocked and the unknown goes to a person; helpful actions pass only in runs where their measured effect was clear, and are otherwise held for a person
Features from the menu
The 240-asset plant without the hand-written plugin
Skipped-maintenance count kept 5/5; AUC 0.778 ± 0.034 tuned vs 0.735 ± 0.059 untuned; tuned promoted 3/5The search finds the feature a person wrote by hand
Several possible outcomes
600 machines; repair, replacement or nothing within 60 days
Macro AUC 0.803 ± 0.011 vs 0.686 ± 0.022 for each machine's past mixRecent repairs predict a replacement; the past mix does not
Why a rate changed
Plant B's rate doubles while plant C's share doubles
Only B named as a driver: 5/5; C's mix effect 0.030 ± 0.001, rate effect -0.002 ± 0.002Rate and mix effects separate exactly
Pattern search
400 orders with two planted patterns (online orders rarely include a drink; pizza orders are worth more), and 400 with none
Planted found 2.0 ± 0.0 of 2; other findings 0.4 ± 0.5 per run; findings in random data 0.0 ± 0.0126 comparisons per dataset under false-discovery control at 10%
Mapping validation
2,100 correct mappings across 15 domains
Correct mappings altered: 0Validation never alters a correct mapping

Effect of a domain plugin

020406080100Rule baselineAUC: 67.467.4Generic taskAUC: 73.573.5With domain pluginAUC: 76.776.7
Equipment failure prediction on held-out assets (AUC × 100). A single feature counting skipped maintenance adds information that is not present in the event log.

Real data: Online Retail II

Repeat purchase on the UCI Online Retail II dataset (CC BY 4.0): 1,067,371 invoice lines from a UK online retailer, 2009 to 2011. Cancellations and lines without a customer are removed, and lines are combined into 36,975 orders from 5,881 customers. The task predicts whether a customer orders again within 60 days, with point-in-time features and 20% of customers held out. The baseline is the recency rule. Recency baseline AUC: 0.761.

LearnerAUC90% intervalGain over baseline (90%)Time
Linear (logistic)0.8070.790–0.824+0.036 to +0.0537 s
Linear with the survival feature0.8070.790–0.824+0.037 to +0.0547 s
Boosted trees0.8120.795–0.827+0.043 to +0.05938 s
Auto (chose boosted)0.8120.795–0.827+0.043 to +0.05993 s
scikit-learn logistic regression (reference)0.807

One dataset and one task. The scikit-learn row uses the same features and split and confirms the linear learner's implementation. Boosted trees score slightly higher; the automatic choice, made by 3-fold cross-validation on the training customers, picked BoostedClassifier. Reproduce with python benchmarks/public/online_retail.py --data online_retail_II.xlsx.

Scope. The synthetic benchmarks verify that the methods detect real signal, reject noise and do not promote weaker models; the Online Retail II result shows the same pipeline on real transactions. Neither measures accuracy on a specific organisation's data; the evaluation gate measures that on held-out records at every training run. Further public benchmarks (the Hillstrom email uplift dataset and NASA C-MAPSS) are planned.

Reproduction

python benchmarks/run.py --seeds 5        # writes benchmarks/results/core.json
python benchmarks/collect_lm.py --lm lm   # summarises scored Vertiq LM runs into results/lm.json
python docs/build.py                      # rebuilds this site and the README