Pontaj și ore facturabile într-o agenție web

← Blog
Timesheets • Invoicing

Timesheets and billable hours in a web agency

In a web agency the hour is the unit of production, and the only thing that ever reaches an invoice. Yet most agencies cannot say what share of the hours they pay for is billable. Below: how timesheets and billable hours work in a web agency — utilisation rate, role-based rates, the path from timesheet to invoice, and what the law expects on file.

From hours to invoice, in short

  1. Log time against a project and a deliverable, never against “miscellaneous”.
  2. Mark every hour billable or non-billable as you log it, not at month end.
  3. Apply the rate of the role that actually did the work, not an agency-wide average.
  4. Approve the monthly timesheet — it becomes the supporting document behind the invoice.
  5. Generate the invoice from the approved hours and send it through RO e-Factura.

Utilisation rate: the number nobody calculates

Utilisation is the share of billable hours in the hours you pay for. Calculate it per person, per month: it tells you whether the agency is producing or just busy.

Worked example: a developer has 168 paid hours a month and 96 of them are billable — the rest goes to internal meetings, quoting, hiring and learning. Utilisation is 57%.

For an 8-person agency with 118,000 lei of monthly costs and an average rate of 150 lei an hour, break-even is 98 billable hours per person, i.e. 58%. At 96 hours you are losing 2,800 lei a month — with everybody flat out.

  • Keep non-billable hours in categories: internal, quoting, warranty, learning.
  • Utilisation above 80% sustained for months is not performance — it is incomplete logging, or burnout.
  • Warranty hours (fixes after delivery) are non-billable, but attribute them to the project that caused them.
  • Quoting is a cost of sale: measure it, so you know what a won quote actually costs you.

Table: role-based rates and what they bring in

An agency-wide average rate hides the one thing you need to see: who did the work. The table shows monthly revenue at 100 billable hours, per role.

Hourly rate per role and revenue at 100 billable hours

RoleList hourly rateRevenue at 100 hours
Junior90 lei9,000 lei
Mid-level150 lei15,000 lei
Senior200 lei20,000 lei
Account manager180 lei18,000 lei
Senior logged at the junior rate90 lei billed11,000 lei lost

Supporting documents: accounting law and e-Factura

An invoice that says only “web services — 12,000 lei” is hard to defend. Romanian accounting law (Legea 82/1991) requires every transaction to rest on a supporting document, and for billed hours that document is the approved monthly timesheet.

Since 1 July 2024, B2B invoices between companies established in Romania must be sent through the RO e-Factura system (OUG 120/2021, extended by Legea 296/2023). In practice the invoice goes out in a structured format, while the hours breakdown stays in the agency's records and in the monthly client report.

  • Keep the approved timesheet — project, role, date, hours — behind every invoice line.
  • Break the invoice down by project or deliverable, not into one empty line.
  • Send the B2B invoice through RO e-Factura and keep proof of transmission.
  • Keep the hours on file after payment too — in an audit or a dispute, the timesheet is your only argument.

Common mistakes

  • Filling the timesheet in on Friday from memory: you lose 10% to 20% of the real hours.
  • One average rate for the whole agency: you never see who is working below rate.
  • Non-billable hours dumped on a project with no category: the project looks unprofitable, with no explanation.
  • Invoicing from estimates instead of logged hours: the gap becomes a permanent gift.
  • Time tracking separated from invoicing by a monthly CSV export — the exact place hours go missing.

Vaata ka