9 min readBy Matt Delgado
How to Structure Pricing for Web and AI Work
Hourly, project, and retainer, and what each one does to risk and scope. Deposits, change orders, scoping a fixed price, and what a discount request is really testing. Structure only, no figures.
Hourly, project, and retainer are not interchangeable labels for the same arrangement. Each one moves a different risk onto a different party. Picking the wrong one usually starts the trouble. Work that looked simple at the outset ends in an argument. The structure matters more than any number attached to it.
Hourly, project, and retainer move risk, not just money
The federal government buys an enormous amount of contracted work every year. Its own procurement rules sort every contract into a small number of types. The reason is simple: each type puts the risk of a bad estimate on a different party. The same three shapes show up in web and AI work, under plainer names. The same tradeoff applies.
Three shapes, and who carries the risk in each:
- Hourly, or time and materials. You are paid for the hours actually worked. Federal procurement rules describe this contract type as one used “when it is not possible… to estimate accurately the extent or duration of the work.” The same rules note that it gives “no positive profit incentive… for cost control or labor efficiency.” The client carries the risk that the job runs long. That arrangement only holds up if the client trusts you to work efficiently. There is no built-in incentive pushing you toward it.
- Project, or fixed price. You quote one figure for a defined scope. It does not move if the job takes longer than planned. Federal procurement rules describe the fixed-price arrangement the other way around. It places “maximum risk and full responsibility for all costs and resulting profit or loss” on the party doing the work. That only holds up if the scope is specific enough to estimate with real confidence before you start. More on that below.
- Retainer. A standing arrangement, paid on a schedule, for ongoing access to your time, rather than for one deliverable. It moves a different risk entirely: not who absorbs a cost overrun. The real question is whether there is enough recurring work to justify the arrangement, for both sides. A retainer with nothing to do in a given stretch is a bad deal for the client. A retainer asked to carry more than it was scoped for is a bad deal for you.
Deposits and payment milestones
A deposit is not a formality. It is the first real test of whether a client will actually pay. You take that test before spending real time finding out the hard way. A project with no deposit and no milestones puts the entire payment risk on the person doing the work. It all gets collected at the end, after every hour is already spent.
What a deposit and milestone schedule actually does:
- It splits one large fixed-price risk into several smaller ones. Instead of a single payment at the end, agreed milestones release payment as the work is delivered. Design approved. First build reviewed. Content integrated. Launched. The exposure at any one point is the current phase, not the whole project.
- It filters for a client who will pay. A prospect who balks at a deposit before work has even started is telling you something true. That something is about the rest of the relationship.
- It should be tied to a deliverable, not a date. A milestone based on time passing gets missed and argued about. A milestone based on an approved deliverable gets confirmed and paid.
Change orders, and what one contains
A fixed-price project with no change-order process is a project where scope grows for free. It grows one small ask at a time, until the fixed price no longer matches the work being done. Federal procurement law formalizes exactly this problem. It defines a “change order” as a written, signed order directing a change. It defines a “contract modification” as any written change to a contract’s terms at all. The load-bearing word in both is written.
What a change-order clause generally covers, and what each part is there to do:
- A specific description of what changed from the original scope, not a vague note that “more got added.”
- The effect on the schedule, stated plainly. Almost every scope addition moves the delivery date, whether anyone says so or not.
- A defined approval step, both sides signing off before the new work starts, not after it is already done. A federal contracting officer can order a change without the contractor’s consent, and the reason is a clause the contract already carries: the FAR Changes clause says the contracting officer “may at any time, by written order” make changes within the general scope of the contract. That authority is negotiated in advance, in writing, and a private agreement between an agency and a client almost never grants it to either side. That is exactly why the approval step has to be explicit. Without it, “the client asked for it” and “the client approved it” quietly become the same sentence. They are not the same thing.
Scoping so a fixed price is deliverable
A fixed price only works when the job can be estimated with real confidence before it starts. That is not a rule of thumb. It is the actual test procurement rules use to sort contract types. A job gets a fixed price when its extent can be estimated accurately in advance. It gets billed by the hour specifically when it cannot.
What makes a scope specific enough to quote a fixed price against:
- A finite, named list of pages, screens, or deliverables, not “a website” or “an integration.”
- A stated number of revision rounds, so “keep changing it until it’s right” does not quietly become the actual scope.
- Content and assets arriving from the client by a stated date. A fixed price assumes inputs arrive on schedule. The schedule is the first thing that moves when they do not.
- Anything genuinely undefined at the time of quoting, carved out and billed by the hour instead. A data migration of unknown size. An integration with a system nobody has access to yet. Guess at either one and fold it into the fixed figure, and it stops being a fixed figure.
What to do when a client asks for a discount
A discount request is rarely about the figure itself. It is a test of whether the figure was real in the first place. How the request gets answered says more about the relationship than the number does.
Three answers keep the figure and the scope connected:
- Trade scope for the discount, not just grant it. A smaller version of the same project, priced lower, respects the arithmetic. Keeping the full scope at a reduced price teaches every future client that the first figure was padding.
- Move the terms instead of the figure. Faster payment. A longer commitment. A case study you can publish. Each one costs the client something too, so the trade stays a trade. A review is not on that list and cannot be: 16 CFR 465.4 prohibits an incentive “conditioned expressly or by implication on” a review “expressing a particular sentiment,” and a discount handed over for a review worth quoting is that condition. Ask for the review afterwards, on its own, with nothing attached to it.
- Say no plainly when the figure already reflects the actual scope. “This is what the project costs to do well” is a complete answer. A client worth keeping respects a straight one more than a padded figure that bends on request.
When to walk away
Some clients cost more than they pay. The earlier that becomes visible, the cheaper it is to act on it. The most common version of this is a fixed price paired with an unwritten expectation of unlimited changes. It usually shows up in the first month, not the last.
Signs worth acting on rather than working around:
- Scope keeps expanding. The change-order process from earlier in this post keeps getting skipped, by mutual habit rather than by agreement.
- Payment terms get renegotiated after work is delivered, not before it starts. A client testing the schedule once a deposit is already spent is testing whether it can be moved again.
- A written exit clause helps here more than a threat does. A good one describes what is owed if either side ends the engagement early. It covers time already spent and work already delivered. It only holds up if it genuinely reflects that cost. Contract law calls a clause like that liquidated damages. The test for whether it holds up is specific: “courts will not impose liquidated damages if the clause is punitive, illegal, unconscionable, or contrary to public policy.” The distinction that test draws is between a clause estimating a real cost and a clause penalizing a departure. Which side any particular clause falls on turns on its own facts and on the law where the agreement is signed, and that question is not answered on this page. See the note below.
Everything above describes what these clauses generally do. None of it tells any particular reader what to put in one, and that omission is deliberate. Under Florida Statutes section 454.23, a person who is not licensed or otherwise authorized to practice law in Florida and who practices law here commits a felony of the third degree. Describing what a clause is falls on one side of that line. Telling one reader how to draft theirs falls on the other. This page stays on the describing side, the same way the post on agency structure does.
This is not legal or tax advice. NovraScale does not form your company and does not advise on entity selection. Talk to an attorney licensed in your state. A change-order clause and an exit clause both belong in a written agreement, reviewed by that attorney before you rely on either one.
Sources
- 48 CFR 16.202-1, Firm-fixed-price contracts, Cornell Legal Information Institute
- 48 CFR 16.601, Time-and-materials contracts, Cornell Legal Information Institute
- 48 CFR 2.101, Definitions (change order, contract modification), Cornell Legal Information Institute
- 48 CFR 52.243-1, Changes (Fixed-Price) clause, Cornell Legal Information Institute
- Cornell Law School, Wex, Liquidated damages
- 16 CFR 465.4, Buying positive or negative consumer reviews, Cornell Legal Information Institute
- Florida Statutes section 454.23, Penalties (unlicensed practice of law), Florida Senate