Time tracking for development agencies that bill by the hour or the bid.
Dev shops sell two kinds of work. On time and materials, every hour has to be billable and defensible. On a fixed bid, every hour past the estimate comes out of margin. TrackTimer handles both, prices time at each developer’s pay rate, and keeps the timer a keystroke or a sentence away from the editor.
At a glance
- Use hourly projects for time and materials and fixed-fee projects for bids, with fee less cost shown while the build is underway.
- Engineers can start, switch, and stop timers from Raycast, or ask Claude Code, Cursor, Codex, or VS Code to do it through TrackTimer’s MCP server.
- A REST API with personal keys starts and stops timers and reads entries for your own scripts.
- Timers are recorded on the server, so time never overlaps and a laptop’s clock or sleep never changes what was recorded.
- Contractors see their own hours and earnings, never client billing rates or agency margins.
- Clients can have a free, read-only dashboard of completed hourly billable time by project and day.
Where development agencies lose time and margin
Fixed bids that overrun quietly
The estimate said 320 hours. Integration work, an unexpected data migration, and a round of QA fixes later, nobody is sure where the project stands until the last invoice, when the margin is already gone.
Engineers who reconstruct timesheets on Friday
Developers switch between tickets, reviews, and calls all day. Asking them to open a separate app for each switch fails, so timesheets get rebuilt from commit history and memory at the end of the week.
Contractors at different costs
A senior contractor, a nearshore developer, and an in-house lead can all bill the client the same rate while costing the agency very different amounts. The margin lives in the difference.
Time and materials invoices clients question
On hourly work, the client wants to see where the hours went. An agency that can show completed hours by project and day spends less time defending invoices.
How TrackTimer works for development agencies
Hourly for time and materials, fixed fee for bids
Choose a billing mode per project: Hourly for time and materials, Fixed fee for a bid with its agreed USD amount, and Non-billable for internal tooling, pre-sales, and bench time. Individual entries on hourly projects can be marked non-billable, for example when fixing your own bug.
Timers where engineers already work
The Raycast extension starts, stops, and switches timers in a few keystrokes. Through the MCP server, an engineer can ask Claude Code, Cursor, Codex, or VS Code to start a billable timer with a note, switch projects, stop, or review and correct their own entries. The assistant acts only when asked, and only on that person’s time.
An API for your own tooling
Each person can create a personal API key bound to one workspace. The REST API lists clients and projects, starts and stops timers with idempotency keys so retries never duplicate work, and reads that person’s entries. Owners and admins can also create projects. The OpenAPI specification is public.
Recorded time the database can defend
Starting a timer stops the person’s previous timer at the same instant, so time never overlaps. Durations come from the server, not the device, so a sleeping laptop or a wrong clock does not change what was recorded. Corrections need a reason and keep an audit history.
Separate billing and pay rates per project
Set each developer’s billing and pay rates, then override either for a client or project. Rates are saved with each entry when its timer starts, so a raise or a new client rate applies to new work without rewriting old totals.
Hours clients can check, invoices you can defend
Invite the client to a free dashboard of completed hourly billable time by project and day. With Mercury connected, create an unsent invoice from reviewed hours at saved rates, with one line per project, and send it from Mercury.
Example: a $48,000 fixed bid that started to slip
An agency bid $48,000 for an MVP, assuming about 320 hours and $23,000 of labor, a 52% margin. Six weeks into an eight-week build, the fixed-fee project shows this.
| Person | Tracked | Pay rate | Labor cost |
|---|---|---|---|
| Lead engineer | 64h | $95/h | $6,080 |
| Developer | 150h | $70/h | $10,500 |
| Contract developer | 120h | $75/h | $9,000 |
| Designer | 36h | $60/h | $2,160 |
| Total | 370h | $27,740 |
- Agreed fee
- $48,000
- Tracked time
- 370h
- Labor cost to date
- $27,740
- Fee less cost
- $20,260 · 42%
Illustrative example with hypothetical people, hours, and rates. Against the bid, the project is already 50 hours past its estimate. If the last two weeks need 40 more hours each from the developer and the contractor, labor cost reaches $33,540 and fee less cost falls to $14,460, or 30%. Knowing that at week six leaves time to cut scope or raise a change request.
Set up your first week
Add clients and projects. Create a project per engagement and choose Hourly, Fixed fee, or Non-billable. Enter the bid amount for fixed-fee work.
Set billing and pay rates. Give each person defaults, then override them for clients with negotiated rates or contractors with project-specific terms.
Invite engineers and contractors. Assign people to the projects they work on. Contractors can track only those projects and never see billing rates.
Connect the tools engineers use. Install the Raycast extension, connect an AI coding tool through MCP, or create a personal API key for scripts.
Review weekly. Check fee less cost on each bid against your estimate, and hourly billable time on time-and-materials projects before invoicing.
Frequently asked questions
Can developers start timers from Claude Code or Cursor?
Yes. Connect the tool to TrackTimer’s MCP server, approve access in the browser, and ask it to start, switch, or stop a timer. It acts only on request and only on the connected person’s own time.
How do we connect time to tickets and pull requests?
Add the ticket key or pull request to the timer note, which holds up to 500 characters. Notes stay internal to your team and are never shown on the client dashboard.
What happens when a fixed bid runs over?
The project keeps counting labor cost against the agreed fee. Fee less cost can go negative, and TrackTimer shows the negative number instead of hiding it.
Can contractors see the client’s billing rate?
No. Contractors see their own hours, pay rate, and earnings on the projects assigned to them, never billing rates, other people’s time, or agency financials.
Is there an API?
Yes. The REST API uses personal bearer keys bound to one workspace and covers clients, projects, timers, your own time entries, and a daily summary. Owners and admins can create projects. An OpenAPI specification is published at /openapi.json.
Can we move from Toggl Track?
Yes. The importer copies your Toggl Track clients, active projects, and team into TrackTimer, and the migration guide walks through each step.
See what your time earns.
Set up your first client and project in a few minutes. Free during early access.
Written by TrackTimer about its own product and reviewed . Examples use hypothetical people, hours, and rates. Features and planned pricing can change; the pricing section has the current terms.