“Missing Time Entries: The Invisible Leak in Your MSP Revenue”
Autotask PSA Datto RMM Datto Backup Microsoft 365 SmileBack HubSpot IT Glue All reports
AI-GENERATED REPORT
You searched for:

Missing Time Entries: The Invisible Leak in Your MSP Revenue

How many unwritten hours does each resource have? This report compares Autotask capacity against actual logged time to expose the gap between what your team could bill and what they actually record.

Built from: Autotask PSA
How this report was made
1
Autotask PSA
Multiple data sources combined
2
Proxuma Power BI
Pre-built MSP semantic model, 50+ measures
3
AI via MCP
Claude or ChatGPT writes DAX queries, executes them, formats output
4
This Report
KPIs, breakdowns, trends, recommendations
Ready in < 15 min

Missing Time Entries: The Invisible Leak in Your MSP Revenue

How many unwritten hours does each resource have? This report compares Autotask capacity against actual logged time to expose the gap between what your team could bill and what they actually record.

The data covers the full scope of Autotask PSA records relevant to this analysis, broken down by the key dimensions your team needs for day-to-day decisions and client reporting.

Who should use this: MSP operations teams and service delivery managers

How often: As needed for specific analysis or reporting requirements

Time saved
Manual data extraction and formatting takes hours. This report delivers results in minutes.
Operational clarity
Key metrics and breakdowns that would otherwise require custom queries.
Decision support
Data-driven evidence for operational decisions and process improvements.
Report categoryOther
Data sourceAutotask PSA · Datto RMM · Datto Backup · Microsoft 365 · SmileBack · HubSpot · IT Glue
RefreshReal-time via Power BI
Generation timeUnder 15 minutes
AI requiredClaude, ChatGPT or Copilot
AudienceMSP operations teams
Where to find this in Proxuma
Power BI › Report › Missing Time Entries: The Invisible L...
What you can measure in this report
Summary KPIs
Logged Hours by Resource
The Revenue Leak: What Missing Hours Could Be Worth
Logging Compliance by Resource
Billable vs Non-Billable of Logged Hours
Resource Activity Profile: Tickets vs Hours
Analysis and Key Findings
Recommended Actions
Frequently Asked Questions
Total Capacity
Hours Logged
Unwritten Hours
AI-Generated Power BI Report

Missing Time Entries: The Invisible Leak in Your MSP Revenue

How many unwritten hours does each resource have? This report compares Autotask capacity against actual logged time to expose the gap between what your team could bill and what they actually record.

1.0 Summary KPIs

High-level time entry metrics across all resources and time periods.

Total Capacity
787,858
hours (Autotask)
Hours Logged
50,752
6.4% of capacity
Unwritten Hours
737,106
93.6% unlogged
Logging Rate
6.4%
77 resources
What does this mean? Autotask tracks total capacity as the sum of available working hours across all resources and all time periods in the system. The 787,858 hours is cumulative. Of that capacity, only 50,752 hours have actual time entries logged against them. The remaining 737,106 hours have no time entries at all. That is 93.6% of capacity with zero recorded work.
2.0 Logged Hours by Resource

Top 15 resources ranked by total hours logged. These are the most active loggers, not the worst offenders.

Tech A
2,400
Tech B
2,136
Tech C
2,060
Tech D
2,050
Tech E
1,888
Tech F
1,862
Tech G
1,780
Tech H
1,585
Tech I
1,554
Tech J
1,505
Tech K
1,492
Tech L
1,433
Tech M
1,418
Tech N
1,362
Tech O
1,344

The top 15 resources account for 25,869 hours of the 50,752 total logged hours (51%). Tech A leads with 2,400 hours, while Tech O logged 1,344. Keep in mind: these are the best loggers. The remaining 62 resources logged even fewer hours each, averaging just 401 hours per person.

View DAX Query — Hours by Resource
EVALUATE
TOPN(15,
  SUMMARIZECOLUMNS(
    'BI_Autotask_Time_Entries'[resource_name],
    "TotalHours", SUM('BI_Autotask_Time_Entries'[hours_worked]),
    "BillableHours", CALCULATE(
      SUM('BI_Autotask_Time_Entries'[hours_worked]),
      'BI_Autotask_Time_Entries'[is_non_billable] = FALSE
    ),
    "NonBillableHours", CALCULATE(
      SUM('BI_Autotask_Time_Entries'[hours_worked]),
      'BI_Autotask_Time_Entries'[is_non_billable] = TRUE
    ),
    "ClientCount", DISTINCTCOUNT(
      'BI_Autotask_Time_Entries'[company_id]
    )
  ),
  [TotalHours], DESC
)
3.0 The Revenue Leak: What Missing Hours Could Be Worth

Translating unwritten hours into potential revenue using the average billable rate.

Revenue Impact Calculation
Total Revenue (all billing items)$17,606,769
Billable Hours Logged38,364
Average Rate per Billable Hour$459/hr
Unwritten Hours737,106
If 10% of unwritten hours were billable$33.8M
If 5% of unwritten hours were billable$16.9M
If 1% of unwritten hours were billable$3.4M

The math is simple but uncomfortable. Your team generates $459 per billable hour on average. With 737,106 unwritten hours in the system, even a tiny fraction of recoverable time translates to serious money. If just 1% of those hours represented real billable work that went unrecorded, that is $3.4 million in missed revenue. At 5%, it is $16.9 million. Nobody expects to capture all of it, but the gap between zero and "some" is worth millions.

View DAX Query — Revenue & Capacity Totals
EVALUATE ROW("TotalHours", SUM('BI_Autotask_Time_Entries'[hours_worked]), "BillableHours", SUM('BI_Autotask_Time_Entries'[Billable Hours]), "NonBillableHours", SUM('BI_Autotask_Time_Entries'[Non billable Hours]), "TotalTickets", [Tickets - Count - Created], "TicketsWithTime", DISTINCTCOUNT('BI_Autotask_Time_Entries'[ticket_id]))
4.0 Logging Compliance by Resource

Breakdown of hours logged, billable split, ticket count, and client coverage for the top 15 resources.

Resource Total Hrs Billable Non-Bill Bill % Tickets Clients
Tech A2,4001,74965172.9%60346
Tech B2,1361,30383361.0%794117
Tech C2,0601,14591555.6%9954
Tech D2,0501,83821389.7%2,613115
Tech E1,8881,52736180.9%2,297104
Tech F1,8621,41644676.0%8445
Tech G1,7801,15762365.0%14944
Tech H1,5851,22835777.5%76377
Tech I1,55481973552.7%48929
Tech J1,50595754763.6%2,017143
Tech K1,4921,09439973.3%72484
Tech L1,4331,30812591.3%1725
Tech M1,4181,3447594.8%3,220146
Tech N1,3621,3224097.1%3,275137
Tech O1,3441,08725780.9%57851

Billable rates range from 52.7% (Tech I) to 97.1% (Tech N) among the top loggers. Tech N and Tech M stand out: they log nearly all their time as billable and handle the highest ticket volumes (3,275 and 3,220 respectively). On the other end, Tech C and Tech I have the lowest billable ratios, with over 40% of their logged time going to non-billable activities.

5.0 Billable vs Non-Billable of Logged Hours

How the 50,752 logged hours split between billable and non-billable work.

75.6% 38,364 hrs
Billable Hours
24.4% 12,388 hrs
Non-Billable Hours

Of the hours that do get logged, three quarters are billable. That is a healthy ratio. The real problem is not billable vs non-billable. It is logged vs unlogged. Getting technicians to log more time overall will naturally increase billable hours too, because most of the missing time is likely billable work that never made it into the system.

View DAX Query — Billable vs Non-Billable Split
EVALUATE
ROW(
  "BillableHours", CALCULATE(
    SUM('BI_Autotask_Time_Entries'[hours_worked]),
    'BI_Autotask_Time_Entries'[is_non_billable] = FALSE
  ),
  "NonBillableHours", CALCULATE(
    SUM('BI_Autotask_Time_Entries'[hours_worked]),
    'BI_Autotask_Time_Entries'[is_non_billable] = TRUE
  ),
  "TotalLoggedHours", SUM('BI_Autotask_Time_Entries'[hours_worked]),
  "BillablePercent", DIVIDE(
    CALCULATE(
      SUM('BI_Autotask_Time_Entries'[hours_worked]),
      'BI_Autotask_Time_Entries'[is_non_billable] = FALSE
    ),
    SUM('BI_Autotask_Time_Entries'[hours_worked])
  )
)
6.0 Resource Activity Profile: Tickets vs Hours

The relationship between ticket volume and hours logged reveals different working patterns.

0 500 1,500 2,500 3,500 0 500 1,000 1,500 2,400 Hours Logged A B C D E F G H I J K L M N O
High ticket volume (>2,000) Standard activity Low tickets, high hours

Two distinct patterns emerge. Tech M and Tech N handle massive ticket volumes (3,000+) while logging modest hours, pointing to fast-touch, high-volume work. Tech C and Tech F log many hours against very few tickets, suggesting project-style or deep-dive work. Tech L is an outlier: 1,433 hours logged against only 17 tickets, which could indicate project work, internal tasks, or time logged against non-ticket activities.

7.0 Analysis and Key Findings

What the data tells us about time logging behavior and revenue exposure.

!

1. A 93.6% unlogged rate is a data quality crisis

Only 6.4% of Autotask capacity has time entries. Even accounting for the fact that capacity is cumulative and includes inactive periods, this gap is far too wide. If resources are working 8 hours a day but logging 1, you are blind to 7 hours of activity. That makes utilization reporting, profitability analysis, and resource planning unreliable.

!

2. Every unlogged billable hour costs $459

At an average rate of $459 per billable hour, the revenue impact of missing time entries is staggering. A technician who forgets to log 30 minutes of billable work each day costs roughly $57,000 per year. Multiply that across 77 resources, even partially, and you are looking at millions in leaked revenue.

!

3. High-ticket resources log the most billable time

Tech D, E, M, and N all handle 2,000+ tickets and maintain billable rates above 80%. Ticket-driven workflows naturally produce time entries because the ticket itself is a prompt to log. Resources doing project or internal work (Tech C, Tech L) show lower billable rates. Process matters as much as discipline.

4. The top 15 loggers show the system works when used

Among the best loggers, billable rates average 76.1%. That is healthy. The problem is not what gets logged. The problem is the work that never gets logged at all. Fix the logging behavior and the revenue follows.

8.0 Recommended Actions

Steps to close the gap between actual work and recorded time.

1

Mandate daily time entry compliance checks

Set up a daily automated report that flags any resource with zero time entries for the previous business day. Send it to team leads by 9 AM. Make logging non-negotiable. Target: 100% of resources log at least 6 hours per working day within 60 days.

2

Build a weekly "missing time" leaderboard

Rank resources by logging compliance and share it with the team. Positive peer pressure works. Include both total hours logged and billable percentage. Recognize the top loggers publicly. The data from section 4.0 is already the foundation for this leaderboard.

3

Investigate the 62 resources outside the top 15

The bottom 62 resources average just 401 hours each. Some may be part-time, inactive, or administrative accounts. Clean up inactive resources from the capacity calculation, then focus compliance efforts on the active ones who are genuinely underlogging. Getting 10 of them to Tech A levels would add thousands of billable hours.

9.0 Frequently Asked Questions
Why is the unwritten hours number so high?

Autotask capacity is cumulative across all time periods and all resources in the system. It includes weekends, holidays, and periods when resources may not have been active. The raw number looks alarming, but the real metric to watch is logging compliance per working day per active resource.

Does this mean we are actually losing $33.8 million?

No. The $33.8M figure is a scenario calculation showing what 10% of unwritten hours would be worth at the average billable rate. The actual revenue leak depends on how many unlogged hours represent real billable work. Even a conservative estimate of 1-2% still translates to millions.

How do I identify which resources are the worst offenders?

Compare each resource's logged hours against their expected working hours for the period. Use the DAX queries in this report to pull per-resource data and calculate a compliance percentage. Resources logging less than 70% of expected hours need immediate attention.

What is a good logging compliance target for MSPs?

Industry benchmarks suggest 85-95% of working hours should have time entries. Best-in-class MSPs target 95%+ with automated prompts and mandatory daily logging. Start with 85% as a minimum and work upward.

Can I run these DAX queries on my own Power BI dataset?

Yes. Copy any query from the toggles above and paste it into DAX Studio or the Power BI Desktop performance analyzer. The queries reference standard Proxuma data model tables and measures that exist in every Proxuma Power BI deployment.

How often should I review this report?

Weekly for compliance tracking, monthly for trend analysis. Set up automated alerts for any resource logging less than 6 hours on a business day. The goal is to catch gaps in real time, not discover them months later.

Generate this report from your own data

Connect Proxuma Power BI to your PSA, RMM, and M365 environment, use an MCP-compatible AI to ask questions, and generate custom reports - in minutes, not days.

See more reports Get started