What Acceptance Criteria Actually Cost You If You Skip Them
Published by CodeNicely, the product studio founded by Meghal Agrawal and Ujjwal Agrawal in 2017For: A seed-to-Series-A SaaS founder who just received a milestone-based payment schedule from an offshore dev studio and cannot tell whether 'feature complete' in the SOW is a real gate or a billing trigger the vendor controls entirely
In this guide
- What acceptance criteria actually are, in a contract
- The default rule that bites you if you skip them
- What the vendor's version usually looks like
- The language that actually protects you
- What skipping these clauses actually costs
- What a buyer controls, and what they do not
- An illustrative example — label it as such
- Questions to put to your vendor before signing
- Where this fits in the broader contract
- The one-line test
- Frequently Asked Questions
If your SOW ties payment to phrases like "authentication module delivered" or "dashboard complete" without defining who decides completion, what standard it must meet, and how many business days you have to reject, then under UCC § 2-606 and most US state defaults, the vendor's shipment is the acceptance event. Your invoice becomes due the moment they push to a staging URL and email you. This post walks through the acceptance-criteria and payment-milestones clause family — what it is for, the wording that protects you, the wording that quietly does not, and the questions to ask before you sign. This is not legal advice. Have a lawyer review the final document.
Why this matters right now: 68% of US companies outsource to low-cost countries and 54% of them choose India, per Devico's 2026 offshore statistics roundup. Milestone-payment disputes are a near-universal risk for seed-to-Series-A founders, and SmartDev's 2026 budget guide puts the cost of ambiguous requirements at 15–25% of project cost in scope disputes, versus 8–12% for detailed specs upfront.
What acceptance criteria actually are, in a contract
Acceptance criteria are the written, objective conditions a deliverable must meet before the buyer is contractually obligated to accept it and pay for it. They are not the user stories your PM writes in Jira. They are the clause in the SOW — or an exhibit attached to it — that the court looks at when you and your vendor disagree about whether something is done.
Per ContractKen's clause glossary, acceptance criteria in a contract typically specify: the functional behavior the deliverable must exhibit, the performance thresholds it must meet, the environment it must run in, the test procedure the buyer will run, who runs it, how long the buyer has, and what happens on rejection.
Most offshore SOWs for seed-stage buyers contain none of these. They contain a feature list and a payment schedule. That is the problem.
The default rule that bites you if you skip them
Here is the part that founders routinely miss. If your contract is silent on acceptance, US commercial law fills the silence with defaults — and those defaults favor the seller.

Under UCC § 2-606, acceptance of goods occurs when the buyer, after a reasonable opportunity to inspect, either signifies acceptance or fails to make an effective rejection. Silence counts. Inaction counts. If your vendor delivers on a Tuesday and you spend ten days testing before raising a defect list, the vendor's counsel will argue you accepted on day one.
It gets worse on timing. The Quarles Law Firm's Supply Chain Survival Series notes that when parties fail to specify a time for payment, UCC § 2-511 defaults to payment at the time of receipt — a "very unpleasant surprise" for buyers who assumed they had time to review.
Software contracts are not always governed by Article 2 of the UCC — courts split on whether custom software is a good or a service. But the underlying principle (silence favors the party in possession of the deliverable) runs through common-law contract doctrine too. A clause-free SOW is a clause that reads: the vendor decides.
What the vendor's version usually looks like
Here is representative language from a milestone-based offshore SOW. Read it the way opposing counsel would.
"Milestone 3: Dashboard module complete. Upon delivery of the dashboard module to the staging environment, Client shall pay Vendor USD [X] within fifteen (15) days of invoice."
What this clause does not define: what "complete" means, who tests it, against what criteria, in what environment, with what data, by when, and what happens if the client disagrees. The payment trigger is "delivery to staging." The acceptance step does not exist.
Even clauses that sound more protective often fail on inspection:
"Client shall have a reasonable period to review the deliverable. If no objection is raised, the deliverable shall be deemed accepted."
"Reasonable" is a litigation question, not a planning tool. "Deemed accepted" without a specified objection window means the vendor's lawyer picks the number later. You want numbers in the document.
The language that actually protects you
A workable acceptance-criteria and milestone-payment clause has six moving parts. Miss any one and the clause leaks.

1. A defined acceptance test, attached as an exhibit
Each milestone references a numbered test plan in an exhibit — not prose in the SOW body. The exhibit lists the specific user flows, API endpoints, performance thresholds, and edge cases that must pass. If the test plan is not written at contract signature, require that it be mutually agreed and signed before the milestone begins — and tie the vendor's start-of-work to that signature.
Example clause fragment: "Milestone 3 shall be deemed delivered when the Dashboard Module passes 100% of the test cases set forth in Exhibit C-3, executed by Client in Client's designated staging environment, using the test data set forth in Exhibit C-3.1."
2. A named acceptance window in business days
Not "reasonable." Not "promptly." A number. Ten business days is common for a module-sized deliverable; five is tight; fifteen is generous. The window starts on written notice of delivery, not on the vendor's internal "ready" flag.
Example: "Client shall have ten (10) business days from Vendor's written Delivery Notice to execute the acceptance test and deliver either a written Acceptance or a written Defect List."
3. A defect-cure cycle with teeth
If you raise defects, the vendor should have a defined period to cure — often ten to fifteen business days — after which the acceptance window restarts, not continues. The clause should also cap the number of cure cycles (two is standard) before the buyer gets a termination or fee-reduction right. Without a cap, the vendor can trickle fixes forever while the milestone stays technically open.
4. Payment tied to acceptance, not delivery
This is the single most important sentence in the clause.
Example: "Payment of the Milestone Fee shall become due within thirty (30) days of Client's written Acceptance, not Vendor's delivery."
If your current SOW says "within X days of invoice" and the vendor invoices on delivery, you have already lost the gate.
5. Severity tiers for defects
Not every bug blocks acceptance. A clause that lets the buyer reject on any defect is unreasonable and your vendor will not sign it. A clause that lets the vendor pass with critical defects is dangerous. Define three tiers — Critical (blocks acceptance entirely), Major (must be fixed before next milestone starts), Minor (goes to a punch list, does not block payment) — and spell out the examples. Payment ladders to severity: full on zero Critical and Major defects, partial on Major-only, zero on Critical.
6. A deemed-acceptance safety valve, written in your favor
Vendors will push for deemed acceptance after the window closes. Fine — but condition it. Deemed acceptance should only apply if (a) the vendor has delivered a Delivery Notice meeting the format in the SOW, (b) the deliverable is accessible in the agreed environment, and (c) the client has not raised a written Defect List or extension request. Without these conditions, the vendor can email "delivered" on a Friday night of a long weekend and start the clock.
What skipping these clauses actually costs
The numbers are not subtle. Across the research:
- Ambiguous requirements and unclear acceptance criteria create scope disputes representing 15–25% of project cost, while detailed specifications cost 8–12% of budget upfront, per SmartDev's 2026 budget guide.
- 39% of failed software projects cite unclear requirements as the primary cause, and scope creep now affects 52% of all projects — up from 43% five years ago, per Gitnux's project failure statistics compilation.
- 60% of software projects experience some level of payment disputes, cited in MoldStud's offshore termination clauses guide.
- Only 29.7% of software development projects fully meet time, budget, and quality goals, per the Standish Group 2023 CHAOS Report cited in the same source.
The cost model to carry in your head: the money you "save" by not negotiating acceptance criteria upfront reappears, roughly doubled, as a scope dispute later. It is paid either in cash (change orders you cannot refuse because the vendor holds your code), in time (weeks of back-and-forth while your runway burns), or in equity (a down round because the product missed its ship date).
What a buyer controls, and what they do not
You control: how specific the acceptance criteria exhibit is, how many business days the window is, whether payment ties to acceptance or delivery, whether cure cycles are capped, whether critical-defect severity is defined. These are drafting decisions. They cost nothing except negotiation time at contract signature.
You do not control: your vendor's willingness to accept a tight window if they have other clients, the quality of their internal QA before delivery, the honesty of their status reporting mid-sprint. Clauses do not fix a bad vendor. They just make it cheaper to find out you have one.
An illustrative example — label it as such
Consider an illustrative two-integration MVP: payments via Stripe, auth via Auth0, four milestones over roughly four months, no legacy data migration, a two-person client-side review team. In this shape of engagement, a reasonable acceptance window per milestone is ten business days, a cure cycle is ten business days, cycles capped at two, and payment is 30 days after written acceptance.
This is a shape, not a quote. The specifics that would turn it into one: the number and complexity of third-party integrations, whether the vendor is building on a greenfield or modifying an existing codebase, whether the client has written user stories already, and whether there is a regulated data domain (health, finance, PII at scale) that changes the acceptance test. For a real scoping conversation across those variables, talk to a team like CodeNicely's engagement team or whoever is quoting you.
Questions to put to your vendor before signing
- "Walk me through what happens if I raise a Critical defect on day eight of the acceptance window. Who fixes it, how long do they have, and does the clock reset or continue?"
- "Show me where in the SOW the acceptance test for Milestone 2 is defined. If it is not written yet, when do we write it, and does your work on Milestone 2 start before or after we both sign it?"
- "If I have not sent you a written Acceptance or Defect List by day eleven, what is your position on whether the milestone is accepted?"
- "Does the invoice issue on your delivery or on my acceptance? Show me the clause."
- "How many cure cycles do I get before I can withhold payment or terminate the milestone?"
- "Who owns the code and the staging environment while the milestone is in dispute?" (This matters more than people realize. If the vendor hosts the staging environment and you are in dispute, you can lose access to the thing you are testing.)
If the vendor cannot answer these in a 20-minute call without checking with their lawyer, the SOW is not ready to sign.
Where this fits in the broader contract
Acceptance criteria and payment milestones are one clause family. They interact with — and are weakened by — gaps in others. If your IP assignment clause only transfers title on "full payment of all fees," and you are in a payment dispute because acceptance was ambiguous, you do not own your own code. If your termination clause has no transition-out obligations, winning the acceptance dispute does not get you a working handoff. If your source-code escrow is not actually funded, the escrow clause is theatre.
Treat the SOW as a system. The acceptance clause is the gate; the other clauses determine whether the gate matters. Founders building in regulated or data-heavy domains — healthcare, lending and KYC, fintech — should be especially tight here, because the cost of a disputed "done" compounds with regulatory exposure.
The one-line test
Read your current SOW and answer this out loud: "If my vendor emails me tomorrow saying Milestone 2 is delivered, and I disagree, what does the contract say happens next?"
If your answer is longer than two sentences, or contains the word "probably," the clause is not doing its job. Rewrite it before you sign. If you have already signed, raise it in the next change order — most vendors will accept a tighter acceptance clause in exchange for something they want elsewhere.
Final reminder: this is not legal advice. State law varies, contract context matters, and the clause language above is a starting point for discussion with your attorney — not a template to paste into a signed document.
Frequently Asked Questions
What is the difference between acceptance criteria in a user story and acceptance criteria in a contract?
User-story acceptance criteria are informal checklists your PM writes in Jira to guide development. Contract acceptance criteria are the enforceable, objective conditions in the SOW or an exhibit that determine when the buyer is legally obligated to pay. They can reference the same functional behavior, but they must be written with the lawyer-reading-them-later in mind: numbered, measurable, environment-specific, and tied to a test procedure.
How many business days should the acceptance window be?
It depends on the size of the deliverable and the complexity of the test. For a feature-sized milestone with a straightforward test plan, five to ten business days is common. For a full module with integrations and data flows, ten to fifteen is more realistic. What matters is that it is a number in the contract, not the word "reasonable." The window should start on the vendor's written Delivery Notice, not on an internal "ready" flag.
Can I withhold payment if my vendor says a feature is done and I disagree?
Only if your contract gives you that right. If payment is tied to vendor delivery rather than buyer acceptance, and you have no written objection on record within the acceptance window, your vendor's lawyer will argue — often successfully under UCC § 2-606 or analogous common-law doctrine — that you accepted by inaction. Withholding payment without contractual basis exposes you to breach claims. Fix this at the contract stage, not the dispute stage.
How much extra does it cost to write detailed acceptance criteria upfront?
Per SmartDev's 2026 offshore budget guide, detailed specifications and acceptance criteria represent roughly 8–12% of project budget upfront, versus 15–25% of project cost absorbed later as scope disputes when criteria are ambiguous. The specifics that move the number: how many integrations, whether user stories already exist, whether a regulated data domain is involved, and the size of the internal team available to write and review the exhibits. A scoping conversation turns those variables into a real figure.
Does the UCC actually apply to custom software contracts?
Courts split on this. Some treat custom software as a good (UCC applies), some as a service (common-law contract rules apply), and some apply a "predominant purpose" test. Either way, the underlying principle — that silence on acceptance and payment timing favors the party in possession of the deliverable — appears in both bodies of law. The practical answer is: do not rely on default rules. Write the acceptance and payment terms explicitly, and have a lawyer licensed in your governing-law jurisdiction review them.
Sources & further reading
- 50+ Offshore Software Development Statistics for 2026 — Devico
- Offshore Software Development Projects: Budget Planning Guide 2026 — SmartDev
- Custom Software Development Statistics 2026: 40+ Data Points — RaftLabs
- Project Failure Statistics 2026 — Gitnux
- Termination Clauses in Offshore Software Development Agreements — MoldStud
- § 2-606. What Constitutes Acceptance of Goods — Cornell Law School / Legal Information Institute
- Supply Chain Survival Series: Additional Statutory Default Terms — Quarles Law Firm
- Acceptance Criteria in Contracts: Meaning & Examples — ContractKen
Get one practical guide a week
Costs, AI tools, partner selection — written for people who make the decision. No spam, unsubscribe anytime.
Thanks — you're on the list. One practical guide a week, nothing else.
That didn't work — please check the email address and try again.
Building something in Software & Technology?
CodeNicely partners with founders and tech teams to ship AI-native products that move metrics. Tell us about the problem you're solving.
Talk to our team Book a 30-min call_1751731246795-BygAaJJK.png)