Available-to-Promise (ATP) Checker
Build an internal tool that computes true available-to-promise (on-hand minus committed plus time-phased inbound) for a SKU, quantity, and date - then makes a reviewer approve the promise before a rep quotes it to the customer.
A rep enters a SKU, quantity, and requested date; the tool computes the true ATP from on-hand, committed, and time-phased inbound; a reviewer approves the promised date and quantity; and only then does the rep get a defensible promise figure to quote.
Before you start
- A free Vercel account
- A free Supabase account
- A free Resend account
- A CSV (or Google Sheet) of on-hand, committed, and inbound-PO quantities
The problem this kills
A customer asks "can I get 200 by the 30th?" and your rep glances at the on-hand number, sees 240, and says yes. What they didn't see: 180 of those units are already committed to other orders, and the next inbound PO doesn't land until the 2nd. The promise was wrong the moment it left their mouth - and now you're firefighting a broken commitment, an angry customer, and a planner who has to rob another order to cover it.
On-hand is not availability. Available-to-promise (ATP) is on-hand, minus what's already committed, plus inbound stock that actually arrives in time for the requested date. Most teams don't have a tool that does that math - so they promise from a raw stock number, or they ping the planner on Slack and wait, or they guess. Every wrong promise costs trust, expedite fees, and a scramble.
This plan builds the tool that does the math correctly, every time, and won't let a promise go out the door until a human has approved it.
What you'll build
A small, secure web app where:
- A rep types in a SKU, a quantity, and a requested date.
- The tool pulls on-hand, committed, and inbound-PO data and computes the true ATP - time-phasing the inbound into date buckets so a PO arriving after the requested date doesn't count toward it.
- The tool proposes a promise: either the full quantity by the requested date, or the earliest date the full quantity can be met, or a partial-now / rest-later split.
- A reviewer (planner or supervisor) approves the promised date and quantity before the rep can quote it.
- Every check and every decision is logged - who asked, what the numbers were, who approved, and when.
It runs on data you already have: an on-hand + committed + inbound-PO CSV or Google Sheet. No ERP integration required to get started.
What's inside the Implementation Plan
- It interviews you first. Before writing a line of code, the plan has the AI agent interview you about your actual business - your SKU and warehouse naming, how you track "committed," how your inbound POs are structured, your real volumes, and your promising rules. It reflects a short spec back to you for a thumbs-up, then tailors the data model and every later step to your answers. This is not a generic template.
- A step-by-step build, each step ending with a ready-to-paste prompt for your AI coding agent.
- The exact ATP math, including time-phasing inbound into date buckets so you only count stock that lands in time.
- Login, per-organization data isolation, an audit trail, a human approval gate, and duplicate guards - built in from the start.
- A "No API yet?" fallback so you can build and use the whole thing today from a Google Sheet or CSV, and export a clean promise record in the columns your order system expects.
The governance it includes (this is the point)
- Login so only your team can use the tool.
- Row-level security so each organization only ever sees its own data.
- A complete audit trail - every ATP check, the numbers behind it, and every approval is recorded with who and when.
- A hard human-in-the-loop approval gate: the tool computes and proposes a promise, but a reviewer must approve the date and quantity before it can be quoted. The AI drafts; a person commits.
- Duplicate guards keyed on SKU + check ID so the same promise can't be approved or recorded twice.
Who it's for
Inside sales reps, customer service reps (CSRs), and planners who field "can you get me X by Y?" all day and need a fast, defensible answer instead of a guess - and the supervisors who are tired of cleaning up promises that were never real.
You've got this. Make a folder, start Claude Code, and paste the first prompt.