how to

How to find the commissions your carriers never paid you

the short answer

To find unpaid and short-paid commissions, upload your book of business, pull each carrier's commission statement, and reconcile expected commission against paid commission line by line so every short-pay, never-pay, miscredit, and uncatalogued entry is flagged into an exportable dispute list.

Commission leakage is rarely one big missing cheque. It's a slow drip: a policy that renewed but never paid, a payment that came in a few dollars light, a split credited to the wrong agent, or a deposit that lands in your account for a policy that isn't even in your records. Each line looks small, so nobody chases it. Across hundreds of policies and a dozen carriers, those lines add up to real money that quietly stays with the carrier.

The reason it goes unnoticed is structural. Carrier portals show you what they paid, but they don't show you what you were owed. Nobody is sitting on the other side comparing the two. The only way to catch a leak is to hold your own expectation of every commission next to the carrier's actual payment and look at the gaps. reportr does that comparison automatically by reading the carrier portal you're already logged into and reconciling it against your book of business.

every linereconciled — expected commission vs. what the carrier actually paid

The four ways commission leaks

Short-paid: the policy is in your book and the carrier paid something, but less than your contracted rate or schedule implies. These are the hardest to catch by eye because a payment did arrive — it just arrived light. Never-paid: an active or renewed policy that should have generated commission and produced nothing at all. These hide in the gap between your roster and the statement, where there's simply no line to notice.

Miscredited: the commission was paid, but to the wrong agent, sub-producer, or hierarchy level, so it never reaches you even though the carrier considers it settled. Uncatalogued: the inverse — a payment lands for a policy that isn't in your book at all, which is sometimes money you're genuinely owed and sometimes a sign your roster is out of date. Reconciling expected against actual surfaces all four at once, because each one shows up as a specific kind of mismatch between the two lists rather than as an obvious error on either list alone.

Why a reconciliation beats reading statements

Reading a statement tells you what happened. A reconciliation tells you what should have happened and where reality diverged. When you line up your book of business against the carrier's paid amounts, a short-pay becomes a number you can name, a never-pay becomes a row with an expected value and a blank beside it, and an uncatalogued payment becomes an entry with no match in your roster. The work stops being a hunt and becomes a review of a flagged list.

reportr keeps the extraction client-side: it reads the portal tab in your own authenticated session, using the official API where a carrier has one and reading the already-rendered page where it doesn't. A capture health signal tells you whether the page read cleanly, came back empty, or returned rows it couldn't match — so if a portal's layout drifts, you get a warning instead of a confident but blank report. The output is a branded PDF and an exportable list you can take straight to the carrier.

how it works

  1. 01

    Upload your book of business

    Import your roster CSV — the policies, agents, carriers, and the commission you expect on each. This is the 'expected' side of every comparison, so the more complete it is, the more leaks reportr can catch.

  2. 02

    Open the carrier portal you already use

    Log into the carrier's commission portal in your own browser session, exactly as you normally would. reportr never logs in for you and never stores your credentials — it reads the statement from the tab you're authenticated in.

  3. 03

    Capture the commission statement

    Let reportr read the paid-commission data from the page, using the carrier's API where one exists and the rendered statement where it doesn't. Watch the capture health signal: an 'ok' status means the read was clean; an empty or drift warning means stop and check before trusting the numbers.

  4. 04

    Reconcile expected against actual

    reportr matches each statement line to your book and flags the mismatches: short-paid amounts, never-paid policies, payments credited to the wrong agent, and uncatalogued deposits with no roster match.

  5. 05

    Review the flagged exceptions

    Work down the flagged list and confirm each one — a real short-pay to dispute, a genuine missing payment, or a roster gap to fix on your side. The exceptions are already separated by type, so you triage instead of scanning every row.

  6. 06

    Export the documented dispute list

    Produce a branded PDF and an exportable line-by-line list showing what you expected, what was paid, and the gap for each flagged entry. That documented record is what you send to each carrier to recover the money.

frequently asked

Why can't I just read the carrier statement to spot missing commission?
A statement only shows what was paid. To know something is missing or short, you need to compare it against what you were owed — and the carrier doesn't hold that figure, you do. The leak lives in the gap between your book of business and their statement, which is exactly what a reconciliation exposes.
Does reportr move money or contact the carrier for me?
No. reportr finds and documents the discrepancies and produces the dispute list. Recovering the money is still a conversation you have with the carrier — reportr's job is to make sure that conversation is backed by a precise, line-by-line record.
What's an 'uncatalogued' payment and why does it matter?
It's a commission the carrier paid for a policy that isn't in your book at all. Sometimes it's money you're rightly owed that your records missed; sometimes it signals your roster is stale. Either way it's worth knowing, so reportr flags it as its own category rather than ignoring anything that doesn't match.
How does reportr read carrier portals that have no API?
It reads the already-rendered page in the authenticated tab you're logged into, client-side, with narrow host permissions and per-source consent. It doesn't log in for you, doesn't bypass access controls, and doesn't warehouse your data centrally — it uses the official API where one exists and reads the page where one doesn't.

Last updated June 8, 2026

ready to try reportr?

request access