“Billing & Charge Allocation Audit”
Autotask PSA Datto RMM Datto Backup Microsoft 365 SmileBack HubSpot IT Glue All reports
AI-GENERATED REPORT
You searched for:

Billing & Charge Allocation Audit

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

Billing & Charge Allocation Audit

This report provides a detailed breakdown of billing & charge allocation audit for managed service providers.

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 owners, finance leads, and operations managers tracking profitability

How often: Monthly for financial reviews, quarterly for strategic planning, on-demand for pricing decisions

Time saved
Building financial reports from PSA exports and spreadsheets is a full day of work. This report delivers it in minutes.
Margin visibility
Revenue numbers alone do not tell the story. This report connects revenue to cost for true profitability.
Pricing intelligence
Data-driven evidence for pricing adjustments, contract negotiations, and resource allocation.
Report categoryFinancial & Revenue
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 owners, finance leads
Where to find this in Proxuma
Power BI › Financial › Billing & Charge Allocation Audit
What you can measure in this report
AI-Generated Power BI Report
Data source: Autotask PSA · Generated March 2026
Billing & Charge Allocation Audit
Classification of all Autotask PSA charges by allocation status — project, contract, or orphaned
1
Project-Linked
Only 1 charge has project_id
2,242
Contract-Level
$3.94M, no project link
4,912
Orphaned
$2.75M, no contract or project
$6.70M
Total at Risk
Combined unallocated amount
Charge Allocation Breakdown
Three allocation statuses exist across all PSA charges. The overwhelming majority — 99.99% — are not linked to a specific project.
1
$0
Project-allocated
Linked to a specific project. Full cost attribution. Zero revenue at this time.
2,242
$3,942,675
Contract-level only
Linked to a contract but not to any project. Creates ambiguity when the contract covers multiple projects.
4,912
$2,754,843
Orphaned
No contract and no project. Invisible to profitability reporting. Not included in any project or contract margin.
View DAX Query — Charge allocation status summary
EVALUATE
ROW(
  "TotalCharges", COUNTROWS('BI_Autotask_Charges'),
  "ProjectAllocated", CALCULATE(COUNTROWS('BI_Autotask_Charges'), NOT ISBLANK('BI_Autotask_Charges'[project_id])),
  "ContractOnly", CALCULATE(COUNTROWS('BI_Autotask_Charges'), ISBLANK('BI_Autotask_Charges'[project_id]), NOT ISBLANK('BI_Autotask_Charges'[contract_id])),
  "Unallocated", CALCULATE(COUNTROWS('BI_Autotask_Charges'), ISBLANK('BI_Autotask_Charges'[project_id]), ISBLANK('BI_Autotask_Charges'[contract_id])),
  "TotalBillable", SUM('BI_Autotask_Charges'[billable_amount]),
  "ProjectBillable", CALCULATE(SUM('BI_Autotask_Charges'[billable_amount]), NOT ISBLANK('BI_Autotask_Charges'[project_id])),
  "UnallocatedBillable", CALCULATE(SUM('BI_Autotask_Charges'[billable_amount]), ISBLANK('BI_Autotask_Charges'[project_id]), ISBLANK('BI_Autotask_Charges'[contract_id]))
)
Orphaned Charges by Month (Aug 2024 – Jan 2026)
Month-by-month view of charges with no contract and no project link. The trend has grown significantly: from around $270–330K per month in late 2024 to $440K+ per month in H2 2025.
Aug 2024
$332K
Sep 2024
$332K
Oct 2024
$268K
Nov 2024
$265K
Dec 2024
$310K
Jan 2025
$270K
Feb 2025
$322K
Mar 2025
$311K
Apr 2025
$534K ↑
May 2025
$387K
Jun 2025
$354K
Jul 2025
$392K
Aug 2025
$440K
Sep 2025
$441K
Oct 2025
$457K
Nov 2025
$424K
Dec 2025
$441K
Jan 2026
$412K

Bars scaled to April 2025 peak ($534K). Darker red = peak month.

View DAX Query — Orphaned charges by month
EVALUATE
TOPN(
  10,
  ADDCOLUMNS(
    VALUES('BI_Autotask_Charges'[company_id]),
    "CompName", LOOKUPVALUE('BI_Autotask_Companies'[company_name], 'BI_Autotask_Companies'[company_id], 'BI_Autotask_Charges'[company_id]),
    "TotalCharges", CALCULATE(COUNTROWS('BI_Autotask_Charges')),
    "UnallocatedCharges", CALCULATE(COUNTROWS('BI_Autotask_Charges'), ISBLANK('BI_Autotask_Charges'[project_id]), ISBLANK('BI_Autotask_Charges'[contract_id])),
    "UnallocatedAmount", CALCULATE(SUM('BI_Autotask_Charges'[billable_amount]), ISBLANK('BI_Autotask_Charges'[project_id]), ISBLANK('BI_Autotask_Charges'[contract_id]))
  ),
  [UnallocatedCharges], DESC
)
Key Insights
What the data means for billing accuracy, project profitability, and revenue reporting.

Project profitability is missing $6.7M of costs

Only 1 charge (valued at $0) is actually linked to a specific project. The other 7,155 charges — $6.7M — sit either at contract level or fully unlinked. This means every project margin calculation in Autotask is missing the charge component entirely, making project profitability reports unreliable.

Contract-level charges are a hidden allocation problem

2,242 charges ($3.94M) are linked to contracts but not to projects. When a contract covers multiple projects, there's no automated way to determine which project absorbs each charge. These will show up in contract profitability reports but not in project-level margin analysis.

Orphaned charges are growing month over month

The monthly volume of fully unlinked charges increased from $265–332K in Q4 2024 to $424–457K in Q4 2025. That's roughly 50% growth in unallocated charge value year over year. Without intervention, this gap widens further each month.

April 2025 spike: $534K in one month

April 2025 saw significantly more orphaned charge value than any surrounding month — $534K versus a typical $310–390K. This could indicate a large batch of charges entered without contract or project links, a billing import, or a change in how certain service items were configured in PSA.

Frequently Asked Questions

What exactly is a "charge" in Autotask PSA? +
Charges in Autotask PSA represent billable costs that are not time entries — hardware, software, subscriptions, materials, and other pass-through items. They are recorded in the BI_Autotask_Charges table and can be linked to a contract, a project, both, or neither. The billable_amount field represents what is charged to the client.
Why would a charge have no contract or project link? +
Common causes include: charges entered manually without selecting a contract or project, bulk imports that didn't include contract or project fields, charges created from product catalogue entries with incomplete default settings, or charges entered against a client account rather than a specific contract. These are data entry gaps rather than system errors.
Does this mean we have $6.7M in unbilled charges? +
Not necessarily. The billable_amount reflects what is recorded as billable — the charges may have already been invoiced to clients. The issue is not whether they were billed, but whether they are attributed to the correct project or contract for profitability reporting purposes. Revenue from these charges may appear in total revenue figures but not in project-level margins.
How do you fix charge allocation conflicts? +
In Autotask PSA: open each charge record and assign it to the correct contract and/or project. For bulk remediation, use the Autotask API or export the charges list and re-import with correct linkages. Going forward, configure PSA workflows that require contract and project fields before a charge can be saved, preventing new orphaned charges from being created.

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