ThresholdIQ Adaptive Detection Engine
Few weeks ago, I shipped ThresholdIQ with a simple premise: monitor your spreadsheet data without needing a BI tool. You uploaded a file, set some threshold rules, and got email alerts when values crossed them.
It worked. But users kept hitting the same wall: setting thresholds is harder than it sounds. What's the "right" threshold for revenue when your business has seasonality? What about a metric that's been quietly drifting for three months?
So we scrapped the rule-based approach entirely. ThresholdIQ v2 uses 9 concurrent ML detection methods to find anomalies automatically — no thresholds to configure, no false positives from stale rules.
What the engine actually does
When you press Detect, the engine runs per group, per metric, per row — all inside your browser. Nine methods run in parallel:
Multi-Window Z-score builds rolling baselines at four window sizes simultaneously. EWMA catches sudden deviations from exponential trends. SARIMA handles weekly and monthly seasonal patterns. Isolation Forest finds global outliers that local windows miss. Correlation deviation checks whether related metrics moved together. DBSCAN labels isolated noise points. The remaining three catch seasonal day/hour patterns, slow trend drift, and stuck or zero-value anomalies.
Each method contributes a weighted score. The final severity — Warning, Critical, or Emergency — is determined by how many window tiers breach simultaneously. More windows breaching means a more persistent, significant anomaly.
The window control actually works now
The sidebar has always had a 50 / 100 / 200 / 500 pts window selector. In v1 it only changed the chart viewport. In v2, it scales all four detection window sizes proportionally. Choose 50 pts and the engine uses windows of [25, 50, 100, 250] — reactive, catches fast spikes. Choose 500 pts and it uses [250, 500, 1000, 2500] — stable, only flags sustained anomalies. Same data, meaningfully different detection.
The alert log shows real numbers now
One piece of feedback we kept getting: "the Threshold column shows 7,484 for a metric that's measured in percentages." That was because the threshold was inherited from the primary metric's rolling stats, not computed per-metric.
Now every alert row shows the threshold and deviation for that specific metric — in that metric's own units. Revenue deviation shows in dollars. Profit margin shows in percentage points. A new Z-Score column sits alongside Deviation so you get both the raw difference and the statistical significance.
Why browser-side matters
Every calculation — all 9 ML methods, all rolling windows, all group splits — runs entirely in your browser. Your data never hits a server. For finance and operations teams handling sensitive spreadsheets, this isn't a nice-to-have. It's the whole point.
The ML libraries (Isolation Forest, simple-statistics) are now bundled locally. No CDN dependencies that can break, no MIME type errors, no third-party calls.
What's next
We're focused on getting the first real external paying customer before we expand the roadmap. If you're a Finance Analyst, FP&A manager, or Operations lead who monitors spreadsheet data regularly — ThresholdIQ is built specifically for your workflow.
Try it free for 7 days at thresholdiq.app — no credit card, no setup, zero configuration.

Top comments (0)