Founder reviewing an offshore dev studio SOW milestone payment clause at her desk late at night

Images: AI-generated for CodeNicely

Startups Software & Technology October 28, 2026 • 11 min read

What Acceptance Criteria Actually Cost You If You Skip Them

For: 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
  1. What acceptance criteria actually are, in a contract
  2. The default rule that bites you if you skip them
  3. What the vendor's version usually looks like
  4. The language that actually protects you
  5. What skipping these clauses actually costs
  6. What a buyer controls, and what they do not
  7. An illustrative example — label it as such
  8. Questions to put to your vendor before signing
  9. Where this fits in the broader contract
  10. The one-line test
  11. 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.

Side-by-side comparison: no acceptance criteria causes 15–25% cost disputes and immediate payment on delivery; defined criteria cut disputes to 8–12% and give buyers a formal rejection window.
Notice how the left column's payment trigger fires the moment the vendor pushes code — before you've tested a thing — while the right column keeps payment gated behind your sign-off.
Printed SOW with 'feature complete' circled in red pen and a sticky note asking 'who decides?'
Without defined acceptance criteria, 'feature complete' is whatever the vendor says it is — and US commercial law defaults back them up.

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.

Laptop screen showing a well-drafted acceptance criteria clause in a SaaS development SOW
Protective language names the test procedure, the reviewer, the deadline, and what a valid rejection looks like — leaving no gap the vendor can invoice through.

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:

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

  1. "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?"
  2. "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?"
  3. "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?"
  4. "Does the invoice issue on your delivery or on my acceptance? Show me the clause."
  5. "How many cure cycles do I get before I can withhold payment or terminate the milestone?"
  6. "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

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.

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