A data-driven analysis of hours by purchase order from your Power BI environment, with breakdowns and actionable findings.
This report analyzes hours by purchase order using data from Autotask PSA.
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: Operations managers, service delivery leads, and MSP owners managing capacity
How often: Weekly for scheduling, monthly for utilization reviews, quarterly for staffing decisions
A data-driven analysis of hours by purchase order from your Power BI environment, with breakdowns and actionable findings.
-- Combined summary metrics from Power BI dataset
Hours logged per resource from the demo dataset
| Resource | Hours |
|---|---|
| Brandon Lynn | 1,343.7 |
| Brandon Bishop | 1,361.5 |
| Daniel Daniels | 1,418.4 |
| Gregory Horn | 1,504.5 |
| Elizabeth Ortega | 1,433.4 |
| Jennifer King | 1,584.5 |
| Jeremy White | 1,492.5 |
| Dr. Amber Ayala DVM | 2,399.8 |
| Kevin Allen | 2,060.1 |
| James Li | 2,136.0 |
| Maxwell Reed | 2,050.3 |
| Chelsea Thomas | 1,779.6 |
| David Hunt | 1,862.2 |
| Andrew Roberts | 1,887.7 |
| Jerry Mcfarland | 1,554.0 |
EVALUATE TOPN(15, SUMMARIZECOLUMNS('BI_Autotask_Time_Entries'[resource_name], "Hours", SUM('BI_Autotask_Time_Entries'[hours_worked])), [Hours], DESC)
Total hours logged per company
| Company | Hours |
|---|---|
| Richards, Bell and Christensen | 782.4 |
| Wu-Jackson | 962.0 |
| Price-Gomez | 864.9 |
| Martin Group | 2,217.0 |
| Thompson, Contreras and Rios | 1,006.1 |
| Doyle-Contreras | 961.9 |
| Clements, Pham and Garcia | 866.3 |
| - | 7,264.2 |
| Lewis LLC | 2,801.1 |
| Little Group | 3,791.4 |
| Craig-Huynh | 4,370.4 |
| Rivers, Rogers and Mitchell | 1,661.8 |
| Burke, Armstrong and Morgan | 1,312.3 |
| Wall PLC | 1,696.9 |
| Ramos Group | 1,170.6 |
EVALUATE TOPN(15, SUMMARIZECOLUMNS('BI_Autotask_Companies'[company_name], "Hours", SUM('BI_Autotask_Time_Entries'[hours_worked])), [Hours], DESC)
Split between billable and non-billable hours
| # | Contract | Hours | Entries | % of Total | Billable % |
|---|---|---|---|---|---|
| 1 | Contract National-334 | 23,415 | 59,915 | 46.1% | 98.6% |
| 2 | (No contract / unassigned) | 8,008 | 4,293 | 15.8% | 4.5% |
| 3 | Contract Same-990 | 7,017 | 7,742 | 13.8% | 54.6% |
| 4 | Contract Environment-108 | 1,587 | 755 | 3.1% | 100.0% |
| 5 | Contract Somebody-829 | 628 | 193 | 1.2% | 80.2% |
| 6 | Contract Grow-836 | 571 | 1,601 | 1.1% | 97.2% |
| 7 | Contract Before-282 | 562 | 1,500 | 1.1% | 98.5% |
| 8 | Contract Feel-376 | 560 | 204 | 1.1% | 98.9% |
| 9 | Contract Civil-141 | 536 | 189 | 1.1% | 99.5% |
| 10 | Contract True-495 | 442 | 1,223 | 0.9% | 99.7% |
| 11 | Contract Leave-858 | 417 | 149 | 0.8% | 99.4% |
| 12 | Contract Lawyer-911 | 416 | 1,248 | 0.8% | 98.0% |
| 13 | Contract Six-393 | 361 | 190 | 0.7% | 0.0% |
| 14 | Contract Safe-206 | 356 | 179 | 0.7% | 96.0% |
| 15 | Contract Though-427 | 339 | 141 | 0.7% | 99.9% |
EVALUATE TOPN(15, ADDCOLUMNS(SUMMARIZE('BI_Autotask_Time_Entries','BI_Autotask_Time_Entries'[contract_name]), "Hours", CALCULATE(SUM('BI_Autotask_Time_Entries'[hours_worked])), "Entries", CALCULATE(COUNTROWS('BI_Autotask_Time_Entries')), "Billable", CALCULATE(SUM('BI_Autotask_Time_Entries'[Billable Hours]))), [Hours], DESC) ORDER BY [Hours] DESC
Monthly hours trend over the observed period
| Month | Hours |
|---|---|
| 202502 | 2,534.3 |
| 202503 | 3,330.5 |
| 202504 | 3,588.0 |
| 202505 | 3,314.9 |
| 202506 | 3,198.0 |
| 202507 | 3,536.6 |
| 202508 | 2,686.4 |
| 202509 | 3,864.6 |
| 202510 | 4,003.3 |
| 202511 | 3,314.2 |
| 202512 | 3,247.4 |
| 202601 | 2,115.7 |
EVALUATE TOPN(12, SUMMARIZECOLUMNS('BI_Common_Dim_Date'[year_month], "Hours", SUM('BI_Autotask_Time_Entries'[hours_worked])), 'BI_Common_Dim_Date'[year_month], DESC)
What the data is telling us
The team logged 25,868 hours across 15 resources, averaging 1,724 hours per person. Look for outliers on both ends: engineers logging significantly more may be overloaded, while those with low hours may have logging compliance issues.
Set up a weekly or monthly review of hours by purchase order metrics. Trends matter more than snapshots. Use the DAX queries in this report as your starting point.
This report uses demo data. Connect Proxuma Power BI to your own Autotask PSA to generate this analysis from your real numbers.
This report pulls data from PSA through the Proxuma Power BI integration, using DAX queries against the live data model.
The underlying Power BI dataset refreshes daily. Reports can be regenerated at any time for the latest figures.
Yes. Proxuma reports are fully customizable. You can modify the DAX queries, add new sections, or adjust the analysis to match your specific MSP needs.
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