Step 01 · Source
Epicor CSV
- Orders export
- Customers export
Case Study · Contextual AI
Demo pausedA Weibull AFT survival model over thousands of customer orders, pushed to Supabase, wrapped in a two-stage Claude API chat interface. The sales team stops asking 'who should we call?' and starts answering 'we called — here's what we learned.' Built in about two weeks. Zero new SaaS spend.
Demo Reel · Coming
Reorder Intelligence · Chat Demo
25-30 second walkthrough: empty chat → ‘Who's overdue for reorder?' → ranked response → click a customer for detail. Recording queued once the app is back up.
System Architecture
Step 01 · Source
Step 02 · ETL
Step 03 · Store
Step 04 · Model
Step 05 · AI Layer
Step 06 · UI
The commercial team sat on top of two years of order history — 5,976 orders across 854 customers — and no one could answer the simplest growth question: who's about to churn, and who's already gone? Historical reports were snapshots, not predictions. The standard RFM buckets said "these customers bought recently" but couldn't say "this customer bought on a 92-day cadence for three years and it's been 148 days — go call." The team was flying on memory and Excel filters. Meanwhile, seven-figure accounts slipped into silence because nobody realized they had.
A Weibull Accelerated Failure Time (AFT) survival model, fit per customer, that predicts the expected time to the next order from the covariates that actually matter: product mix, order size trend, seasonality, and historical interval variance. Each customer gets a survival curve and a confidence interval. When the observed silent interval crosses the predicted threshold, the customer flips tier.
Three churn tiers surface automatically:
Canned prompts below — no real data — but the responses match what the live app actually returns. Click any prompt to see the flow.
lifelines, added a three-tier churn detector, wrote 1,833 customer predictions back to Supabase.customer_revenue Postgres view to make revenue-weighted queries fast.Outcomes
Stack