When AI writes half the code, what are you actually billing for?
Clients are starting to ask why a feature still costs the same when an agent wrote most of it. Here is how to answer that honestly and keep your rates intact.
Sooner or later a client is going to say it out loud. “If the AI wrote it, why am I paying full rate?” It is a fair question, and the worst thing you can do is get defensive, because the honest answer is actually very good for you.
You are not billing for the typing. You never really were. You were billing for the outcome, and the outcome still depends almost entirely on you.
The model is a junior with no memory and no stake
A coding agent is genuinely fast and genuinely capable. It is also a contributor with some specific limitations that do not go away no matter how good the model gets. It does not know your client’s business. It has not sat in the meeting where the edge case got decided. It will not be the one explaining to the client why production went down. It produces a confident draft and then forgets the whole thing existed.
What you bring is everything that fills those gaps. You hold the context. You carry the consequences. You make the hundred small judgment calls that separate a demo from a system someone can run a business on. That work has not gotten cheaper. If anything it has concentrated, because now it is most of what you do.
So when the client asks what they are paying for, you can tell them plainly. They are paying for the part that protects them.
Reframe the conversation around results
The trap is letting the conversation stay on inputs. The moment you are arguing about how many keystrokes were yours versus the model’s, you have already lost, because you are negotiating the price of typing and typing is now cheap.
Move it back to results. The client does not want code. They want the thing the code does, working, reliable, and theirs. The price of that has always been about outcome and risk, not effort. A surgeon who finishes early is not cheaper. A faster fix from someone who knows exactly where to look is worth more, not less.
If you bill hourly, this is the moment to make sure your hours reflect the real work and not just the visible burst of generation. Which brings up the practical problem.
Track the whole task, not the flashy middle
Here is what trips people up. The generation is the part that feels like progress, so it is the part that gets logged. The forty minutes of reading the output, the rewrite of the part the model got backwards, the test it skipped, all of that feels like overhead and quietly goes untracked.
That is exactly backwards. The review and repair is the work. If your log only captures the two minutes the agent was running, your own records will undercut you the next time you try to justify a quote.
So track the task as one continuous thing. Start the clock when you start thinking about the problem. Stop it when the work is genuinely done, integrated and tested. The number you get is the honest cost, and it will usually surprise you with how much of it lived outside the editor.
A note that wins the argument before it starts
The single most useful habit we know of is leaving a short note on each entry that says what the time produced. When a client questions a line, you are not reaching for a vague memory. You have a record that says “reviewed generated payment handling, found and fixed a rounding error on partial refunds.” No client argues with that. It is the difference between a defensible invoice and an awkward email.
The shift to AI assisted work did not weaken your position. It just moved the value somewhere your old tracking habits do not point. Fix the habits and the billing conversation gets easier, not harder.
We built TimerStep so a task you come back to stays a single entry instead of a dozen fragments, and so every entry can carry the note that explains it. It is free to start if you want to track the real shape of the work.