Skip to main content
These settings control how MSPortal classifies your PSA billing into revenue and how it counts endpoints for Financial Reporting. This page is for MSP staff. It has three tabs: Revenue Categories, SKU Mapping and Reporting Model.

Before you start

  • Open Settings > MSP Tools > Financial Reporting. You need Financial Reporting settings access. Read access lets you view. Manage access lets you change settings.
  • Connect ConnectWise, Autotask or Halo PSA first. Revenue categories come from the billing data it syncs. If you see Waiting for data to sync, wait a few hours.
  • A save updates MSPortal’s settings and starts a background recalculation. It does not change your PSA contract, send an invoice or change a license. The numbers may take a little while to update.
Each tab saves in its own way. Save a tab before you switch tabs or leave.

Classify revenue

1

Open Revenue Categories

Go to Settings > MSP Tools > Financial Reporting and stay on Revenue Categories. The cards at the top show Total Types, Categorized and Uncategorized. They count mapping entries, not dollars.
2

Open your PSA's section

Find your provider and expand its sections. Click View example line items on a row to see real billing lines before you decide.
3

Set broad defaults first

In Contract Types (and for Halo, Charge Types), pick a Revenue Category for each type. These are the broadest rules.
4

Add exceptions

Use the more specific sections for exceptions, such as agreement additions, services (SKUs) and line item types. To change many rows at once, select them and use the bulk category action.
5

Override one contract (only if needed)

In Per-Contract Overrides, find the company and contract and pick an Override Category. For a recurring override, choose the Billing Cadence: Use PSA cadence, Monthly, Quarterly, Semiannual or Annual. This sets how MSPortal spreads the revenue across months.
6

Save

Click Save Changes and wait for Revenue category mappings saved successfully. After the recalculation, open Financial Reporting to check the result.
The categories are: Product sales go in Non-recurring Revenue. Uncategorized clears the rule at that level. Another rule, or your PSA’s fallback, can still classify the revenue. Changing a recurring override to Non-recurring sets its cadence to one-time. Clearing the category removes the override and its cadence. If you switch back to recurring, set the cadence again.

Which rule wins

The first match wins. More specific rules beat broad ones. The page shows the order for your provider. In Autotask and Halo, anything linked to a project is always Non-recurring, before your rules apply. Their fallback when nothing matches is also Non-recurring. In Halo, Contract Types are the types you keep in Halo. Charge Types are Halo’s built-in Fixed and Pre-Pay types plus recurring-invoice detection. If a save fails, reopen the page and check which mappings saved before you try again. Some may have saved.

Map SKUs

Use SKU Mapping to map each product and service your PSA bills, once. It lists every billed product and service, the same SKUs as the Services (SKUs) level on Revenue Categories.
1

Open SKU Mapping

Click SKU Mapping. The cards show Billed SKUs, Mapped to standards, Mapped to revenue and Monthly revenue. Search with Search products.
2

Set the revenue category

In the Revenue category column, pick Managed recurring, Other recurring or Non-recurring for a SKU. It saves at once.
3

Link standards

In Standards proven, click Add standards and pick the standards this product shows a client already has. Create standards first in Standards.
4

Change many at once

Select several SKUs, then use Set revenue category, Add standards… or Remove standards….
5

Re-check billing

Click Re-check billing to re-evaluate which standards each client’s billing proves. A toast says how many were answered and cleared.

Set the tenant Reporting Model

1

Open Reporting Model

Click Reporting Model.
2

Set the Target Seat Price

Under Target Seat Price, enter a positive number, or leave it empty to use the default thresholds. The page shows the A to F thresholds that result. Companies are graded by how close they are to the target.
3

Choose the Endpoint Model

Under Endpoint Model, choose Per Device (count managed devices), Per User (count users) or Hybrid (set rules by company type).
4

Choose the User Count Source

For a user-based model, under User Count Source choose MSPortal Users, Microsoft 365 or PSA Users. They can have different numbers of people.
5

Set Hybrid rules (Hybrid only)

Under Hybrid Endpoint Rules, set a Default Fallback. Then under Per-Type Rules, choose an Endpoint Source for each company type: Use Default, Per Device, Per User or Greater of Both. Greater of Both uses the larger count, not the total. If a company has several types with different rules, Per Device wins over Per User.
6

Pick managed device types

Under Managed Device Types, tick the device types that count as managed endpoints. If the list is empty, add device types under Settings > Customization > Types.
7

Pick the support boards

Under Support Hour (boards, queues or teams, depending on your PSA), tick only your reactive support boards. Time on tickets in them counts as reactive support hours. Leave out project, internal and sales boards.
8

Save

Click Save Changes. A toast says Reporting model saved successfully.

Set up Company Seat Profiles

Use seat profiles when one company needs device-based pricing, or separate seat types such as full users and email-only users.
Company picker inside Financial Reporting Company Seat Profiles

Choose the company inside the Company Seat Profiles section.

1

Choose the company

On Reporting Model, find Company Seat Profiles. Pick a company in Company. Its licenses and billing items load.
2

Choose the pricing basis

Under Company pricing basis, choose Use tenant model, Managed devices or Seat profiles. A choice for this company beats the tenant and company-type defaults.
3

Set up the profiles

For Seat profiles, start with the Full user and Email-only user profiles, or click Add Profile (up to 20). Enter a Profile name. Enter a Target monthly price, or turn on Use tenant target.
4

Map licenses

In Licenses that count seats, choose the company’s synced Microsoft 365 or Google Workspace licenses. A person counts once. If licenses overlap, the earlier profile wins. Use Move up and Move down to set the order.
5

Map billing items

In Billing items that allocate revenue, choose the PSA services and line-item types whose revenue belongs to this profile. Licenses count seats. Billing items allocate revenue. You need both.
6

Set support endpoints

Turn Count toward support endpoints on or off for each profile. Turn it off for seats that should not be in the reactive-hours-per-endpoint count.
7

Save

Click Save Company Model. A toast says Company seat profiles saved successfully. Discard Changes drops your unsaved edits. It does not undo an earlier save.
While this section has unsaved changes, you cannot pick another company. Save or discard first. A grade needs every profile that has seats to have a target, seats mapped by licenses and revenue mapped by billing items. If something is missing, the company shows Needs setup instead of a grade. Options marked no longer synced point to licenses or billing items that have since disappeared from the integration. Remove or replace them.

Troubleshooting

Frequently asked questions

On Revenue Categories, no. They change a draft until you click Save Changes. On SKU Mapping, yes.
No. Use Save Company Model for that section.
Not by itself. It clears that rule. A different rule or the PSA fallback can still classify the revenue.
No. Project-linked billing is always Non-recurring in those systems.
No. It only sets how MSPortal spreads that contract’s revenue across months.
No. They are different lists of people. Choose the one that matches how you bill.
No. It uses whichever count is larger.
No. When licenses overlap, the profile higher in the list wins.
No. It only drops edits you have not saved. To reverse a saved change, edit the model and save again.