ak-labz/Forecasting

Which of your 200 customers is about to leave? You won't know until they cancel.

By the time they tell you, the decision is already made. Save attempts after cancellation rarely work. And you only see the churn problem in next quarter's numbers, when it's too late to do anything about it.

Recent bad guesses
Acme Corp
Cancelled in Q2. We didn't notice the usage drop in March.
Pegasus Logistics
3 support tickets in February. AM never saw them.
Northwest Furniture
Stopped using core feature in week 4. Renewal call: "we found something else."

NPS surveys quarterly. Account manager gut feel. Spreadsheet that nobody updates.

NPS is lagging. AM gut feel is biased toward the squeaky wheels. The "at-risk" spreadsheet gets touched once a quarter, the day before the QBR. By then, the customer has been deciding for months.

Current method
Quarterly NPS + AM intuition
=AVERAGE(B2:B29) * IF(C30="holiday", 1.15, 1.0)
# Then nudge it.
Why it fails
  • NPS lags actual sentiment by 60-90 days
  • AM biased toward customers who complain (the quiet ones are most at risk)
  • No prioritization (which of the 20 "at-risk" to call first?)
  • No reasons attached — just "feels off"

Score every customer by signal-weighted risk, ranked by dollar exposure.

Pull every behavioral signal you already have. Weight recent shifts. Rank by expected churn × MRR. Attach the top 2-3 reasons so the CSM walks into the call already calibrated.

Inputs (already in your stack)
Usage data
Login frequency · feature adoption · session depth · trend direction
Support tickets
Volume · sentiment · resolution time · open tickets
Communication history
Email tone shifts · response lag · CFO joining calls
Account data
MRR · contract length · renewal date · payment behavior
Building the forecast
~5 sec
Scoring 200 active accounts on 14 behavioral signals…
Weighting last 30 days at 3× recent vs. trailing 90…
Identifying 7 accounts crossed into "high risk" this week…
For each: top 3 contributing reasons + recommended outreach window…
Cross-checking against CSM workload (don't flood any one rep)…
Drafting Slack-ready briefing for the morning #cs channel…

Explainable rules, not black-box ML. You can read why a forecast is high or low. That means operators trust it, edit it when their gut disagrees, and the model learns from the edits.

Confidence shown. Reasoning attached. Format you already use.

Output lands in the systems your team already opens. No new dashboard to log into.

Top churn-risk customers · this week
Ranked by risk score × MRR at risk. Refreshed today 9:02 AM.
200 customers scored
1.
Acme Corp
$48,000 MRR
87
  • · Usage dropped 42% in last 30 days
  • · CFO joined the last 2 calls
  • · Sentiment in tickets turned negative May 8
2.
Pegasus Logistics
$22,500 MRR
74
  • · 3 unresolved support tickets
  • · Champion left (Sarah K., 6 weeks ago)
  • · Stopped using core feature week of 4/22
3.
Northwest Furniture
$18,000 MRR
71
  • · Renewal in 6 weeks, no QBR scheduled
  • · Last login: 11 days ago
  • · Asked about pricing alternatives (call 5/12)
4.
Cascade Brewing
$12,400 MRR
62
  • · Usage flat for 90 days
  • · Account owner Mike R. on PTO 2 weeks
5.
Bridgeway Logistics
$31,000 MRR
58
  • · Late on May invoice (10 days)
  • · Mentioned "evaluating options" in support thread
Sent to Slack #cs each morning at 9 AM$131,900 MRR at risk in top 5
Sent to
  • Slack #cs each morning at 9 AM
  • Per-CSM Linear tickets created
  • HubSpot owner activity stream
  • Risk score flagged on the account record
Why this matters
Generic AI forecasters give you a black box and a number. This shows the confidence, names the inputs, and explains every prediction so your team trusts it enough to act.

20% churn → 12%. Catch them before they decide.

Before
20
% annual churn
· $480K revenue lost last year
· Save attempts after cancellation: 8% success
· No early warning, no prioritization
After
12
% annual churn
· Daily risk list at 9 AM in #cs Slack
· Proactive outreach catches 40% of would-churn
· Top reasons attached — CSM walks in calibrated
8 points lower churn.
Refreshed daily. Top-3 sent to each CSM each morning.

Same engine forecasts anything time-varying.

Demand, churn, and inventory are three shapes. The underlying engine takes any historical series with a few signals attached and gives you a forecast with confidence and explanations.

Cash flow
Next 90 days of inflows and outflows, with confidence bands. Surfaces tight weeks 6+ weeks early.
Sales pipeline
Per-deal close probability and expected close date. Ranks the deals worth pushing this week.
Customer LTV
Predicted lifetime value per customer segment. Informs acquisition spend by channel.
Capacity / staffing
When will you hit your team's ceiling? Predicts the week to hire, by role.
Seasonal trends
Year-over-year shifts in your business. Spots the 6-week change before the quarterly review does.
Anything time-series
If you have a thing that varies over time and want to know what it'll do next, this is the engine.
Trained on your data, your signals, your seasonality. Set it once. It refreshes on the cadence the team needs.