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
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 today | What this adds | |
|---|---|---|
| File formats | Parsers for the formats it already supports | One-off custom exports nobody has onboarded, including fixed-width AS/400 output |
| Column mapping | Known for a supported format | Inferred per customer, proposed, edited by a human, then remembered as a versioned spec |
| Format changes | Handled by the parser | Detected against the last approved file, blocking on structural change |
| Data problems | Assumed resolved at onboarding | A checklist of what will stop a rebate calculation, priced and assigned to whoever fixes it |
| Rebate calculation | The real engine | A 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 difference | Ongoing statement and deduction work, after go-live | Root-cause attribution for the pre-go-live parallel run, to the invoice line |
| Confidence to switch | Earned over time | A measured percentage of variance explained before anyone commits |
| Where the work happens | Production, continuously | Once, during onboarding, then it is done |
| Scope boundary | Everything after go-live | Everything before it, and nothing after |
The last row is the important one. This stops at the switch-over, on purpose.