Files, jobs & results
This is the core workflow: upload a statement → it processes → review the scored results.
Files — uploading statements
The Files page uploads carrier statements (CSV or XLSX).
- Pick a Carrier and a Period (the month the statement covers).
- Choose one or more files.
- Upload & queue.
Each upload becomes an ingest job that parses, maps, and scores the statement against the prior period. The Recent uploads list shows each file with its carrier · period and a status badge:
| Badge | Meaning |
|---|---|
| queued | Accepted; processing (or waiting to). |
| already loaded | The byte-identical file was already uploaded — nothing re-ingested. |
| period exists | A different file already exists for this carrier+period. Use Replace… to overwrite. |
| failed | The job failed — hover for the reason. |
| baseline updated (amber) | An earlier month was uploaded after this period, so this period’s scoring is stale. Re-process to re-score it. |
| raw purged (grey) | The raw file’s bytes were deleted from storage (scored data remains). |
Correcting, removing, and purging a file
Per-file actions (see Re-processing and Data retention for the mechanics):
- Replace… — a carrier sent a corrected file. Replacing wipes the period’s old data, ingests the new file, and re-scores the following month. You confirm before it overwrites.
- Re-process — re-score a period without a new file (use it when baseline updated appears).
- Remove — retract the period’s scored data entirely (the following month re-scores).
- Purge raw — permanently delete the raw uploaded bytes from storage. The scored results stay, but the file can’t be re-ingested. (Raw files are also auto-purged on a retention schedule.)
Jobs
The Jobs page lists every ingest run, newest first, filterable by status (queued / processing / completed / failed). Each row shows the period, carrier, status, a scoring mini-summary (green/yellow/red counts), and the upload date.
- Results → opens that job’s results grid.
- ⚠ N rejected (amber) — if the ingest rejected any rows, this button downloads the exception file (see below).
- Failed jobs expand inline with a plain-English explanation and suggested fixes.
Exception files (rejected rows)
When a statement has rows that fail validation (e.g. a blank commission, a non-numeric amount, a missing member id), CommissionSight doesn’t silently drop them — it writes an exception file you can download to fix the source data. It’s a CSV with:
_row— the row number in the original file._errors— exactly why the row was rejected.- every original column, verbatim.
Download it from the ⚠ N rejected button on the Jobs page (or via the API/SDK). Exception files are kept for 30 days, then purged.
The results grid
A job’s results grid is the scored member list for that period. Each row:
| Column | What it shows |
|---|---|
| Member | Name (a link to the member’s full journey) + member id. |
| Status | A green / yellow / red status pill. |
| Flags | What happened — New, Dropped, Commission Δ, etc. — plus a plain-English explanation. |
| Commission | This period’s commission, the previous amount if it changed, and owed (in green) when the carrier underpaid vs your contracted rate. |
Controls:
- Status filter — All, At risk (red + yellow), Green, Yellow, Red.
- Underpaid only — show only members CommissionSight computes you’re owed money on.
- Export CSV — download the current view. Every export includes the stable Member Ref ID and Policy Ref ID so any row can be traced to its full history.
The grid scrolls infinitely (it loads more as you reach the bottom), so it handles large books. The dashboard’s Review members buttons deep-link straight into this grid pre-filtered (e.g. to the at-risk or underpaid members).
Set up a carrier (statement-first)
If a carrier’s statements aren’t recognized yet, you don’t have to map columns by hand — or even pick the carrier. Open Set up a carrier from the account menu and drop in one sample statement; CommissionSight detects who it’s from and takes it from there:
- Recognized and already set up — you’re done. Upload the statement on the Files screen and it’s scored in seconds.
- Known carrier, new format — one click teaches the AI the format. You’ll see how many sample rows were recognized; future uploads of that carrier are then mapped automatically.
- Carrier not supported yet — name it and click Request this carrier. We add it (usually within a day) and email you the moment it’s ready to upload. Your open and past requests are listed at the bottom of the page.
A manual carrier picker is still available on the same page if you’d rather choose the carrier yourself.
- It learns the format, not your data. Only the column headers and masked sample values (digits and letters hidden) reach the AI — and a carrier request stores only that same masked column layout, never member data.
- Already known formats are instant. If another statement of the same shape has been set up before, we reuse that mapping — nothing to build.
This is the same engine that auto-onboards a brand-new statement on first upload — so for a carrier we already support, an unrecognized file often just works when you upload it.