Speedy Onboard

About

What this tool does, where it sits relative to Speedy Labs' product, and where AI is and is not used.

Portfolio demo built for Speedy Labs, YC W23. Not affiliated with Speedy Labs. Every company, item, invoice and rebate agreement here is fictional.

What this is

A rebate-data onboarding accelerator. It takes a distributor’s custom ERP export, works out what reading it correctly requires, computes what the rebates should be, compares that against the numbers the customer’s existing system produced, and explains every dollar of the difference down to the invoice line it came from.

It is a portfolio demo. The distributor, its items, its invoices and its rebate agreements are fictional, generated from a fixed seed so every number on these screens is reproducible.

What it is honest about

The rebate engine is a stand-in

Every amount here was computed by a reference calculator written for this demo, not by Speedy’s rebate engine. It implements the two program kinds the spec names and nothing else: no tiers, no minimums, no accruals, no proration. Its name and version are stored on every row it produces and shown beside every number it computed, so swapping in a real engine relabels these screens by itself.

One rule produces an estimate, and says so

When a catch weight has been stripped from the export, the weight that was actually shipped is gone. It cannot be recovered, only estimated from the same item’s other lines. Those lines are badged “Estimated” in the drill-down and flagged in the export. That estimate’s error is the entire reason the explained figure reads 99.8% and not 100%.

The export is a proposed shape

The attributed-variance download is a documented, versioned JSON with a published schema — a plausible shape a downstream root-cause tool could be adapted to, not an interface anyone has agreed to. Saying otherwise would be the one dishonest claim in this project.

Two timings, and only one is a machine budget

“Upload to first report” is wall clock. On the seeded demo it has measured between 5 and 12 seconds, of which 3 to 7 seconds is this software working; the dashboard shows this instance’s own figures for its latest run. It shows both, because reporting only the first and calling it a pipeline budget would overstate what the machine does. Machine time excludes queue scheduling, which makes it the more meaningful of the two — but both move with how busy the machine is, roughly doubling on a host that is already working hard. Read them as orders of magnitude, not benchmarks.

The seeded demo has no person in it — reset approves the mapping from a committed spec, so nothing waits for a decision. A real onboarding’s wall clock is dominated by the decisions this one skips, and would be measured in minutes or hours.

Where AI is used, and where it is not

A language model is used in exactly one place: proposing which source column maps to which canonical field. Every proposal is a suggestion a human edits, it is validated against a schema before it is shown, it is capped by a spend budget and a rate limit, and it degrades to manual mapping when no key is configured.

Nothing else uses a model. The rebate arithmetic, the readiness checks, the drift comparison and the root-cause attribution are all deterministic code, because they are claims about money that have to be reproducible and explainable line by line. The attribution rules in particular are scored against a committed oracle: they reproduce all 521 seeded defect lines exactly.

Where this sits relative to Speedy Labs

Speedy already automates rebate management. This is deliberately not a second copy of that: it covers the part before go-live, where a distributor’s own export has never been read before and nobody yet trusts the numbers.

Speedy todayWhat this adds
File formatsParsers for the formats it already supportsOne-off custom exports nobody has onboarded, including fixed-width AS/400 output
Column mappingKnown for a supported formatInferred per customer, proposed, edited by a human, then remembered as a versioned spec
Format changesHandled by the parserDetected against the last approved file, blocking on structural change
Data problemsAssumed resolved at onboardingA checklist of what will stop a rebate calculation, priced and assigned to whoever fixes it
Rebate calculationThe real engineA reference stand-in behind an interface the real engine can replace
Legacy comparison—A parallel run against the customer's existing numbers, per program per month
Explaining a differenceOngoing statement and deduction work, after go-liveRoot-cause attribution for the pre-go-live parallel run, to the invoice line
Confidence to switchEarned over timeA measured percentage of variance explained before anyone commits
Where the work happensProduction, continuouslyOnce, during onboarding, then it is done
Scope boundaryEverything after go-liveEverything before it, and nothing after

The last row is the important one. This stops at the switch-over, on purpose.