← ClaudeAtlas

billing-ai-assisted-worklisted

How to track and bill time honestly when AI agents do part of the work — the concurrency rule for parallel timers, what happens to the hour when you are waiting rather than typing, and the failure modes that silently over-bill or lose hours. Use when designing or auditing time tracking for an agency, freelancer or studio that runs AI coding agents; when a client asks what they are actually paying for; when reconciling logged hours against a calendar or an invoice; or when building the timer, hours-bank or invoicing part of a practice-management app.
gidila91/claude-skills · ★ 0 · AI & Automation · score 70
Install: claude install-skill gidila91/claude-skills
# Billing AI-assisted work An AI coding agent changes the unit you are selling. You used to sell an hour of typing. Now you sell an hour of judgment, during much of which you are waiting. That is still worth money, but the old way of counting hours breaks in two directions at once, and both are invisible until someone reconciles. This skill is the set of rules that survive contact with a real practice. ## The core problem: one hour, three clients While an agent builds for client A you switch to client B, then C. Three stopwatches run. At the end of the day they total nine hours against a six-hour day. Nobody typed nine hours. Billing all three at full rate is not "being busy", it is **charging three clients for the same hour**, split across three invoices where none of them can see it. It survives precisely because no client can detect it. **The rule: wall clock is the only real resource, and it is counted once.** Each of N concurrent timers counts **1/N** of the elapsed time. One hour with three timers running is twenty minutes billed to each. This holds **whether or not the timers belong to the same client**. Two timers on two projects for the same client is the same double count, just harder to notice. ## Store three numbers, not one A single `hours` column cannot survive an audit. Store: | Field | Meaning | |---|---| | `measured_hours` | the raw stopwatch reading, untouched | | `hours` | the billable number after division | | `concurrent_timers` | the divisor |