Navigation
14.24. Profitability Reporting: Measure Gross Margin per Client, Agreement, and Ticket
Use the AlgaPSA Profitability report to measure actual gross margin per client, agreement, and ticket against configurable labor cost rates.
The Profitability report lets MSP operators measure actual gross margin at four levels: the tenant summary, per client, per agreement, and per ticket. It replaces a legacy placeholder that used a hardcoded $50/hr labor cost and a broken invoice–time-entry join.
Open the report at Billing > Reports > Profitability.
Step 1 — Configure cost rates
Before the report shows meaningful data, set your internal labor costs in Settings > Billing > Cost Rates.
- Add a rate per user (and optionally a tenant-wide default for unconfigured users).
- Each rate has an effective date range so historical analysis stays accurate when rates change.
See 14.2. Tenant Billing Settings — Cost Rates Sub-Tab for the full configuration workflow.
Running the report
- Navigate to Billing > Reports > Profitability.
- Select a date range using the filter bar (defaults to the current month).
- The summary cards load automatically.
Summary cards
The top of the report shows tenant-wide totals for the selected period:
| Card | What it shows |
|---|---|
| Revenue | Total invoiced amount (all currencies converted to tenant default). |
| Cost | Labor cost calculated from cost rates × hours worked. |
| Gross Margin | Revenue − Cost, as an amount and a percentage. |
| Uncosted hours | Hours with no matching cost rate — excluded from the margin calculation. A non-zero value means margin figures are understated. |
Additional data-quality warnings appear as banners when present: unapproved hours, unconverted revenue (non-default currencies with no exchange rate), uncosted materials, and currency mismatches.
Per-client drill-down
The client table beneath the summary cards lists every client with invoiced time in the period. Click a client row to expand it to the agreement level, then click an agreement to expand to the ticket level.
| Level | What you see |
|---|---|
| Client | Revenue, cost, margin, and uncosted-hour count for all agreements under that client. |
| Agreement | Same columns scoped to one agreement. |
| Ticket | Per-ticket revenue, cost, margin, and attribution quality. |
Attribution quality
Each time entry is attributed to an invoice charge in one of two ways:
| Quality | Meaning |
|---|---|
| Exact | The time entry is linked to a specific invoice line item (applies to invoices generated after the July 2026 migration). |
| Allocated | Revenue is distributed proportionally by hours across entries in the same billing period (fixed-fee, bucket, or pre-migration invoices). |
Exact attribution gives precise per-ticket margin. Allocated attribution is an approximation — ticket-level figures should be treated as estimates.
Data-quality warnings
| Warning | What it means | How to fix |
|---|---|---|
| Uncosted hours | Hours where no cost rate exists for the user + work date. | Add a cost rate in Settings > Billing > Cost Rates. |
| Unapproved hours | Time entries that have not been approved; excluded from billing and cost. | Review and approve time entries. |
| Unconverted revenue | Invoice amounts in non-default currencies with no exchange rate on file. | Add exchange rates in Settings > Accounting. |
| Uncosted materials | Product/material line items with no cost price set. | Add cost prices to the product catalog. |
| Currency mismatches | Agreements billed in a currency different from the tenant default, affecting consolidated totals. | Informational only; drill to individual agreements for accurate per-currency figures. |
Permissions
| Action | Required permission |
|---|---|
| View profitability report | billing.read |
| View cost rates | billing.read |
| Create / edit / delete cost rates | billing.update |
Related
- 14.1. Billing Dashboard — navigate to Reports from here.
- 14.2. Tenant Billing Settings — configure Cost Rates in the Cost Rates sub-tab.
- 14.12. Generating Invoices — invoices generated after July 2026 produce exact attribution.
- 14.15. Usage Tracking — usage-based line items flow into material cost calculations.
