Billable hours tracking in IT means logging the actual minutes of client work on the ticket while you work, then sorting each entry as billable, included, or internal. Billable hours are the part the client pays for separately. At invoice time a written billing policy turns them into invoiced quantities.
We build SherpaDesk, a helpdesk and PSA (professional services automation) a small IT team can run alone. No contract. No implementation project. No dedicated admin. Base Camp is $45 per agent per month ($40 billed annually), and the first agent is free. The method below works in any tool that ties a time entry to a ticket.
Key takeaways
Definition
Billable hours are time spent working that you can charge money for. In IT support, they're the minutes a technician spends on a client's ticket, project, or device that the contract lets you charge for separately. The contract also sets the rate.
The hard part in IT is the word "can." The same 30 minutes on a printer queue is billable for one client, included in the monthly fee for another, and internal overhead when it's your own office printer.
A time sheet records the work time an employee spends in a reporting period, and firms that bill by time use it as their detailed record of billable hours. In an IT shop, the time sheet is the sum of time entries on tickets, each with a date, a technician, a client, a duration, and a note.
Billable hours in IT work come in four shapes:
Every entry lands in one of three buckets:
| Bucket | What goes in it |
|---|---|
| 1Billable hours | Client work the contract lets you charge for separately. |
| 2Included client work | Client work you don't charge for separately. Note the reason on the entry: included in the contract, warranty rework on your own mistake, or free work you agreed to. |
| 3Internal work | Work for your own business, such as meetings, training, your own systems, and sales calls. |
Included and internal work together are your non-billable hours. Keeping them apart matters: included work is client load, internal work isn't.
For an internal IT team, departments, schools, and sites are the clients. Work for a department is client work: billable if you run a chargeback, otherwise included in the IT budget. The IT team's own administration is internal.
| Work | Hourly client | Flat-fee client | Internal IT team |
|---|---|---|---|
| Password reset, user account fix | Billable | Included | Department work: billable under chargeback, else included |
| New-hire onboarding | Billable | Included or billable per hire, as the agreement says | Department work |
| After-hours emergency | Billable, often at a higher rate | Billable if the agreement names after-hours work as extra | Department work; may earn comp time |
| Project (migration, office move) | Billable | Usually billable separately from the fee | Department project |
| Travel to a client site | Billable if the agreement says so | Billable if the agreement says so | Department work, per your chargeback policy |
| Rework on your own mistake | Included (warranty rework) | Included (warranty rework) | Department work, included |
| Team meeting, training, internal tools | Internal | Internal | Internal |
| Sales call, quote, proposal | Internal | Internal | Not applicable |
Your agreement decides which column applies. Log included work on the ticket even though it never becomes an invoice line: it's the only way to see what each flat-fee client costs you.
One r/msp member uses a two-way split: billable time is "time spent delivering services to the client" versus "time spent on internal projects, ops meetings, upskilling, etc." That counts included work as billable; this guide keeps it apart. Track billable hours and non-billable hours alike, each in its own bucket.
What an unlogged hour costs depends on the contract. On hourly work and on overage above a flat fee, it's a potentially unbilled amount: the minutes times your rate, if the agreement lets you charge them. The technician is paid either way.
On a prepaid block, the client has already paid. An unlogged hour never comes off the block, so the balance looks bigger than it is.
On included work, an unlogged hour hides what that flat-fee client really costs you, the number you need at renewal. Our Managed Services Pricing guide shows how to set rates and fees from it.
Lost billable hours are rarely a skipped project. They're the ten-minute call, the follow-up email, the remote session nobody started a timer for. One r/msp poster noted that a ticket-activity timer misses it when technicians open "a screen connect session for an hour and talk on the phone."
Tracking billable hours also protects the client relationship. A line with a date, a ticket number, and a plain note is easy to approve. "Support, 6 hours" invites a dispute.
Billable hours tracking fails most often before the first timer starts, because nobody decided what the entries mean. Settle four things first:
Our Guide To PSA Software explains where that ticket-to-invoice chain lives.
Six steps run from the first minute to the invoice. One example follows the whole way: ticket 4821, an hourly client, a shared drive that won't map for a new hire. The original actual minutes are kept; status changes and corrections are documented with a note.
Start timing when work starts. Link the entry to the ticket. When an interruption arrives, stop or switch the timer to the other ticket, then come back. Record the actual minutes and a note the client can read.
Example: 5 minutes on 4821, a 6-minute call on ticket 4830, 5 more minutes on 4821, then 10 minutes testing access. Ticket 4821 has three entries: 5, 5, and 10 minutes, 20 in total.
Common mistake: letting a timer run through the interruption, so the same 6 minutes sit on two tickets.
The technician who did the work marks the entry billable, included, or internal; step 5 confirms it against the contract. Log internal time too. As one r/msp member put it, "Techs should be tracking all of their time anyway, client facing or not…"
Example: all three 4821 entries are marked billable; the 4830 call is marked by its own client's contract.
Common mistake: logging only billable hours. Billable utilization stays correct, but nobody can say where the rest of the week went.
Once a week, a lead or the owner reviews the billable hours and other entries: right client, the contract in force that day, the right service and rate. Check exceptions too, such as after-hours work and projects.
Example: 4821 sits on the client's hourly contract, service Remote Support, $100 an hour.
Common mistake: using last year's rate because the contract changed and the service didn't.
A true duplicate is the same work logged twice by the same technician, or one technician with two entries in the same minutes. Two technicians on the same call are not a duplicate: each did work. Decide from the agreement whether the second technician's time is billable; if you don't charge it, mark it included and note why.
Example: a second technician joined the 10-minute access test on 4821 to help. The agreement doesn't charge for a second person, so the entry stays, marked included, with the note "second technician, not charged."
Common mistake: deleting the second technician's entry. Its cost disappears from your records.
Do this after step 4, so a duplicate can't inflate usage. If you fix entries later, recalculate. On a flat fee with overage, the status depends on what the client has used this period, which the technician can't see at entry time. Entries past the included hours become billable overage. On a prepaid block, check the hours left.
Example: a flat-fee client with overage and 10 included hours has used 11.5 this month. The last 1.5 hours of entries change from included to billable overage.
Common mistake: marking all flat-fee work included without checking the cap.
Now the increment, direction, minimum, and unit from your written policy turn the actual minutes into an invoiced quantity. The entries keep their actual minutes. Any write-down goes on the invoice as a discount line with a note, so realization shows it.
Example: policy "6-minute steps, rounded up, per ticket." Ticket 4821 has 20 actual minutes, so the invoice line is 0.4 hours of Remote Support: $40.00.
Common mistake: editing the time entries to match the invoice. Your records then show invoiced quantities, not the work.
Rounding decides how much of a short task reaches the invoice. A billing policy needs four parts: the increment (for example 6 or 15 minutes), the direction (up, nearest, or down), and any minimum. The fourth is the unit it applies to: each entry, each ticket, or each on-site visit.
Example: ticket 4821 from the steps, three entries of 5, 5, and 10 minutes (20 actual minutes) at $100 an hour.
| Policy | Invoiced time | Invoiced amount | vs. actual |
|---|---|---|---|
| Actual minutes | 20 min | $33.33 | 0% |
| 6-minute steps, up, per ticket | 24 min | $40.00 | +20% |
| 15-minute steps, up, per ticket | 30 min | $50.00 | +50% |
| 15-minute steps, up, per entry | 45 min | $75.00 | +125% |
| 15-minute steps, nearest, per entry | 15 min | $25.00 | −25% |
| One-hour minimum, per on-site visit | 60 min | $100.00 | +200% |
Rounding up per entry punishes split work: the same 20 minutes bill 30 or 45 minutes. Rounding to the nearest step per entry isn't neutral either. Each 5-minute entry rounds to zero every time, so repeated short work drops off the invoice.
Rounding also moves realization. If you value billable hours at actual minutes, 24 invoiced minutes on 20 actual is 120% billing realization for that ticket. That's the policy at work, not better collection, so report it separately.
One r/msp post gave a 20-minute task billed as 30 minutes under 15-minute increments as its example. A reply called rounding "part of the hourly rate," adding that "it add a 5 to 20%." If rounding is part of your price, say so in the agreement.
Recommendation
Choose actual minutes in every time entry, and one stated billing policy at invoice. Name the increment, direction, minimum, and unit, such as "6-minute steps, rounded up, per ticket; one-hour minimum per on-site visit."
Consider another option if your clients already accept 15-minute billing and your rate was set with it in mind. Keep it, and name the unit in the agreement.
The clause belongs in your agreement. Our Managed Services Agreement outline shows where billing terms sit.
Subscribe to the SherpaDesk Blog.
Get Tips for Running IT With a Small Team.
Loading form…
The form couldn’t load. Please try again.
Or start your free trial →SHERPADESK · FREE TRIAL
Resolve tickets.
Turn time into revenue.
Bring support tickets, billable time, and invoicing into one place. Built for small IT teams and MSPs.
After your trial, keep your first agent free forever.
SHERPADESK · LIVE DEMO
See tickets, time,
and billing work together.
Walk through ticketing, time tracking, and billing with a product specialist. See how SherpaDesk fits the way your team works.
A live walkthrough tailored to your team.
Billable hours become money in one of five ways, set by the client's contract. What changes is which entries reach the invoice.
Keep billable hours for all five in one system with the tickets. One r/msp member described the alternative bluntly: "Otherwise when you start band-aiding things together you will for sure miss things."
For a flat-fee client, divide the monthly fee by the included hours logged. Example: a $1,500 fee and 25 hours is $60 an hour. That number is a signal to check the contract against your costs, not a diagnosis; the pricing guide shows how.
Run this list before each invoice batch.
Measure billable hours and the other buckets on actual minutes, never on invoiced quantities. Available hours are paid working hours minus holidays and leave; unlogged hours are whatever is left.
Billable utilization in this guide means billable hours, at actual minutes, divided by available hours. It fits hourly, block, and overage work; a mostly flat-fee shop scores low by design.
Client-work load is billable hours plus included client work, divided by available hours. It shows how much of the week goes to clients, whatever the contract.
Log completeness is all logged hours divided by available hours. Missing meeting entries don't change billable utilization: 30 billable hours in a 40-hour week is 75% either way. What you lose is the breakdown of the other 10 hours.
Realization is the share of billable hours, valued at standard rates, that you actually bill. Billing realization is the amount billed divided by the standard billing amount; collection realization is cash collected divided by the amount billed. Example: 120 billable hours at $100 is $12,000. If write-downs leave $10,800 on the invoices, billing realization is 90%. Rounding pushes it up, as shown above.
Example week for one technician with 40 available hours: 12 billable hours, 16 included, 6 internal, 6 unlogged.
| Metric | Formula | Example week | A low number means |
|---|---|---|---|
| Billable utilization | Billable hours ÷ available | 30% | Few billable hours, or mostly flat-fee clients |
| Client-work load | (Billable hours + included) ÷ available | 70% | Too much internal work, or time not logged |
| Log completeness | All logged ÷ available | 85% | Part of the week has no record |
| Billing realization | Billed amount ÷ (billable hours × standard rate) | n/a | Write-downs, discounts, or wrong rates |
We found no neutral benchmark for IT utilization, so set targets from your own data. Practitioners measure different things. One r/msp member logs long internal meetings on an admin ticket and expects "at least 32 hours of logged time" a week, and calls that 80%. Another wants "5 to 5.5 hours a day" working on tickets, because more "can lead to burn out." Neither is billable utilization as defined here. Measure per person over a month.
The weekly review turns up billable hours with no entry: a call in the phone log, a remote session, an email reply. Add up those minutes for one month. The calculator gives the value of that time at your rate.
Example: 300 minutes of unlogged billable hours in October at $100 an hour is $500. On hourly or overage work, that's a potentially unbilled amount. On a prepaid block, it's time not yet drawn from the block, so the balance reads high.
Value of one month's unlogged billable time
minutes ÷ 60 × rate. Your numbers stay in the browser.
Most problems with tracking billable hours come from habits, not tools.
Ticket counts mislead because tickets differ in size. As one r/msp member put it, "Tickets closed is a lousy metric. % of the day working tickets is better." Keep attendance separate from billing, too. Another member put it plainly: "your psa is a billing tool, not a system of record for hours worked."
How this works in SherpaDesk
It's a helpdesk and PSA a small IT team can run alone, and the billing is in the product. You log time against tickets, projects, accounts, and assets. You enter it with Add Time, the calendar Timesheet, or the Start/Stop timer on your technician Home page. Replying from your inbox? Add "cmd time 0.25" and the ticket gets 15 minutes.
Each time log carries billable or non-billable hours. Each service can have its own time increment and minimum loggable time. You can require a note on every time log. Uninvoiced time and expenses collect in "Ready to Invoice", organized by contract.
| Account | Contract | Next billing | Last inv. | Billable | Non-billable | Included | Accum. | Overage | Labor | Travel | Products | Total | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Harbor Dental Group | Flat + Hourly | 10-01-2026 | 09-01-2026 | 14.50 | 2.25 | 10 | 0 | 4.50 | $562.50 | $0 | $0 | $562.50 | + | |
| Maple Street Law | Hourly | 10-15-2026 | 09-15-2026 | 9.75 | 1.00 | 0 | 0 | 0 | $1,218.75 | $45.00 | $0 | $1,263.75 | + | |
| Brightline Accounting | Block Hours | 10-01-2026 | 09-01-2026 | 12.25 | 0.75 | 0 | 0 | 0 | $1,531.25 | $0 | $129.00 | $1,660.25 | + | |
| Cedar Ridge Veterinary | Retainer | 10-20-2026 | 09-20-2026 | 6.00 | 0.50 | 8 | 2.00 | 0 | $0 | $0 | $389.00 | $389.00 | + | |
| Northgate Property Co. | Blended Hourly | 10-31-2026 | 09-30-2026 | 7.50 | 1.50 | 0 | 0 | 0 | $862.50 | $60.00 | $0 | $922.50 | + | |
| Oak & Pine Bakery | Main | 11-01-2026 | Never | 2.00 | 0 | 0 | 0 | 0 | $250.00 | $0 | $0 | $250.00 | + |
Base Camp is $45 per agent per month ($40 billed annually), and your first agent is free, forever. A three-technician MSP pays for two agents: $90 a month. No contract, no onboarding fee, 14 days free, no card.
Who this isn't for
If you want monitoring and patching in the same product as your billing, this isn't that product. We don't build RMM. We integrate with yours, and the stack stays yours.
For an MSP, they're the hours of client work a contract lets you charge for separately, such as hourly tickets, projects, and overage. Work included in a flat fee, warranty rework, and internal meetings aren't billable hours, but they still belong on the record. See the Billable vs. Non-Billable Table.
Only if your agreement says so. Travel can be billed at the full rate, at a reduced rate, or folded into an on-site minimum. Pick one, write it into the agreement, and set travel up as its own service so it shows separately on the invoice. Log the time either way: you pay the technician for it.
It's a pricing decision, not a rule. Keep actual minutes in the time entries and apply the increment at invoice. Name the direction, any minimum, and the unit: per entry, per ticket, or per visit. Rounding 20 minutes up per ticket bills 30; per entry, the same work can bill 45. See Rounding.
We found no neutral benchmark. Billable utilization in this article is billable hours, at actual minutes, over available hours; set its target from your own data. Practitioner targets count other things. One r/msp member expects 32 logged hours a week, including internal meetings. Another wants 5 to 5.5 hours a day on tickets. See Measure It.
Utilization is about time: billable hours, at actual minutes, divided by available hours. Realization is about money: what you billed divided by what those billable hours were worth at your standard rates. Write-downs lower realization; rounding up raises it. Utilization doesn't move either way.
Yes, even with no invoice. Treat departments, schools, or sites as clients. Department work is billable if you run a chargeback, otherwise included in the IT budget; the team's own administration is internal. The split shows who uses technician time and supports a budget request or a hiring case.
Patrick co-founded SherpaDesk and has led it as CEO since 2013. He has worked with IT service providers since 1998, first on network projects for schools and government offices, then on the helpdesk software their technicians use every day.