Forecast Desk

The browser does the weighting, the buckets and the gap arithmetic; the model makes the call on each deal.

Back to SkillSafe
How it works

Nothing to hand? Load the — short of the number, but two upside deals cover it — the , where the question is how much could evaporate before it misses, or the , a raw CRM dump with a duplicate row, an amount reading “TBD”, a deal with no close date, two unrecognised stages and a gap the pipeline cannot cover. All three replay a saved run for free. Or press to watch the checker refuse a document that quietly moved a deal between buckets, with no model call at all.

1

A forecast is arithmetic before it is a conversation

Every row is parsed here: amounts written as $50K, 1.2M, 45,000 or (1,000); close dates written as 2026-03-31, Mar 31, 31 Mar or 3/31/2026 — and where that last one is genuinely ambiguous between day-first and month-first, it says so instead of picking silently. Free-text stages are matched to probabilities, and any stage the rules do not recognise is weighted at 20% and reported as an assumption, never as a fact.

2

Every deal lands in exactly one bucket

Closed, commit, upside, excluded — and the four together account for every row you pasted. A deal with no amount, no readable close date, or a close date after the period end is excluded and named, because a deal quietly dropped from the arithmetic is how a forecast becomes wrong without anyone noticing. Risk flags come from signals that are not the weighting: a close date already in the past, an activity date older than your staleness window, and a deal closing this week while still in discovery.

3

The gap gets solved, not just reported

Short of quota, the engine finds the smallest set of upside deals whose full close erases the gap and names them, then prices the alternative as new pipeline at the rate this pipeline is being weighted at, in deals at your median size, and as a per-business-day run rate against the days actually left. Over quota, it measures the cushion instead: how many commit deals could slip before the number breaks, and which single deal is large enough to break it alone. And when the gap simply cannot be closed from this list, it says that plainly rather than promoting early-stage deals until the arithmetic works.

4

The metered pass is judgement, and it is counted

What a model is for: whether you would really stake the number on this deal, what to do this week about the one that went quiet, what to ask on the call. It returns exactly one call per forecastable deal and exactly one action per flagged deal, and the app counts both — missing, repeated, off-contract and not-a-deal-id are four different failures reported four different ways. Deals the engine itself excluded stay out of the partition, so the pass is never blamed for a gap the browser found. Every dollar figure in its narrative is traced back to a measured total or a deal amount, and the worst case implied by its own commit set is printed beside the engine's.

A derived work of @anthropics/forecast: its output structure — summary, scenarios, pipeline by stage, commit versus upside, risk flags, gap analysis — and its default stage probability ladder are what this app implements and measures. The skill is a slash command that asks a model to fill in that template; this is the same forecast with the arithmetic computed, the buckets proved, and the model held to them.