The truth about what actually sold.

Distributor data arrives messy, with inconsistent outlet names, fragmented SKU codes and files in every shape. Dexor turns it into territory-level truth your whole organization can defend, without ever losing the original.

Get distributor sell-out in without retyping it.

Distributors send sell-out and stock by API push, the upload API or email. Every file is checked, stamped with where it came from, and kept as received.

A distributor's system can push rows as JSON to the ingest endpoint with an API key. The key decides the account, and a key pinned to one distributor can only write that distributor's data, whatever the request says.

More about distributor data ingest

Request
POST /v1/ingest/sales
x-api-key: ••••••••••••3f9a
content-type: application/json

{
  "distributorId": "DIST-NYC-01",
  "data": [
    { "invoiceDate": "21/10/2026", "outletName": "Hudson Medical Pharmacy",
      "sku": "CRD-10", "qty": 36, "netValue": 16200 },
    ...
  ]
}
Response
202 Accepted

{
  "message": "Accepted",
  "uploadId": "b7f3c21e-41d0-4c8a-9e62-0f5d1a7e2b90"
}

The account and distributor come from the key itself. A key pinned to one distributor cannot write for another.

DistributorOctober 2026Search ⌘K3A
Prime Medical Distributors
DIST-NYC-01
Provisional
Oct 2026
Net value, in your scope
$4,550,000
Oct 2026, your territories only
Units sold
9,860
Signed net of returns
Match rate
91%
3,742 of 4,112 rows matched an outlet
Mapped outlets
412
64 SKU crosswalk rows
BatchPeriodTypeStatus
b7f3c21e2026-10salesreceived
61d2aa902026-10stockprojected
f09e44b32026-09salesprojected
2c7b8e152026-09salesrejected
d4a1937c2026-08salesprojected

Clear unmatched outlets in a few keystrokes.

A two-pane review queue for outlet names that did not match on ingest. Approve a candidate, override the territory, or reject, from the keyboard.

Pick a distributor and the queue lists every distinct unmatched name with its best score and how often it appeared in the latest batch. Select one to see its ranked candidates, each with a score and the territory it would assign.

More about match queue

Match queueOctober 2026Search ⌘K3A
Match queue
When to use this: review outlet names that didn't resolve on ingest. Approve the right territory, override to a known one, or reject to leave unmatched.
Distributor
DIST-NYC-01
Open distributor
Approving or overriding a match creates an outlet record that resolves future ingests only. Historical unmatched records are not re-projected (back-fill is a separate step).
Open items, 4 j/k move, a approve, o override, r reject
Hudson Med. Pharmacy

Choose the correct territory, override with a known one, or reject (leave unmatched).

Override territory id
territory id

Fix a mapping and restate the history.

After a match is approved, restate a past month so its unmatched lines land in the right territory. The original source data is never rewritten.

A match queue decision fixes every file that arrives after it. Lines that came in before it keep their missing territory, so last month's figures do not move under anyone's feet.

More about restatement

Request
POST /v1/sales/reproject

{
  "distributorId": "DIST-NYC-01",
  "period": "2026-09",
  "territoryId": "TERR-NYC-01",
  "normalizedNameKey": "al shifa med store"
}
Response
201 Created

{
  "distributorId": "DIST-NYC-01",
  "period": "2026-09",
  "territoryId": "TERR-NYC-01",
  "reprojected": 214,
  "chunks": 3
}

Running it again restates nothing new: the lines are already stamped, so the result is reprojected 0.

A manager or admin restates a period through the API.

Net sell-out by distributor, territory and SKU.

Secondary sales net of returns, per distributor and territory, with a SKU breakdown. Figures still landing are marked provisional, never shown short.

Rollups are computed when you open them, straight from the ingested invoice lines, so they always reflect the latest data. Returns carry a negative sign and net out, and the breakdown ranks your top SKUs by net value.

More about net sales rollups

DistributorOctober 2026Search ⌘K3A
Prime Medical Distributors
DIST-NYC-01
Provisional
Oct 2026
Net value, in your scope
$4,550,000
Oct 2026, your territories only
Units sold
9,860
Signed net of returns
Match rate
91%
3,742 of 4,112 rows matched an outlet
Mapped outlets
412
64 SKU crosswalk rows
Net value, last 6 months
May
Jun
Jul
Aug
Sep
Oct
Top SKUs
Cardivex 10mg tablets$1,842,000
Glucon XR 500mg$1,215,000
Zymox 250mg suspension$694,000
Cardivex 20mg tablets$512,000
BatchPeriodTypeStatus
b7f3c21e2026-10salesreceived
61d2aa902026-10stockprojected
f09e44b32026-09salesprojected
2c7b8e152026-09salesrejected
d4a1937c2026-08salesprojected

See why rows fail, then fix the cause.

Match rate, rejected rows by reason and duplicate outlets for each distributor, on one screen, linked straight to the match queue.

How much of it matched? The match rate shows lines resolved to a territory out of lines accepted, for a period. Why were rows refused? The rejection breakdown counts each batch's rejected rows by reason: a missing required field, a value that is not a number, or a date that does not fit the format.

More about data quality workbench

DQ workbenchOctober 2026Search ⌘K3A
Data quality
When to use this: inspect how cleanly a distributor's sales feed ingests: match rate, rejected rows, and duplicate outlets.
DistributorDIST-NYC-01Open distributor PeriodOctober 2026 Batchb7f3c21e
Match rate
Outlet lines resolved to a territory
91%

3,742 matched of 4,112 accepted

Rejections by reasonMatch queue
UNCOERCIBLE_DATE41
MISSING_REQUIRED23
UNCOERCIBLE_NUMBER9
Duplicate outlets
Names that collapse to one key
Match queue

Hudson Medical Pharmacy, HUDSON MEDICAL PHARMACY, Hudson Medical-Pharmacy

Know how many days of stock sit in the channel.

Closing stock at each distributor, days of cover against the last 30 days of sales, and SKUs with a batch close to expiry.

Pick a distributor and a date. For each SKU, Dexor takes the latest stock reading on or before that date for each batch and adds the batches together. It never adds readings across dates.

More about channel stock

Channel stockOctober 2026Search ⌘K3A
Channel stock
Closing stock and days of cover at one distributor, as of a date. Whole distributor, not one territory.
Distributor
DIST-NYC-01
As of
21/10/2026
Open distributor
SKUs in stock
6
With a closing level on or before the as-of date
Near expiry
2
A batch expires within 90 days
No cover basis
2
No sales in the 30-day window to divide by
Filter by SKU code…
SKUClosing qtyDays of coverExpiry
CRD-10 4,320 18 d No
GLX-500 6,100 41 d No
ZMX-250 1,180 9 d Near expiry
CRD-20 2,040 26 d No
LPR-20 960 n/a Near expiry
ZMX-500 540 n/a No

See your share of the market that actually sold.

Your share, market growth and evolution index against the realised market, nationally, by city or by territory, with a monthly or moving annual view.

Pick a scope: national, a city, or one of your own territories by the name you use. Dexor shows the size of the realised market there, your share of it, how fast the market grew, and your evolution index, marked "Outgrowing" or "Under-indexing".

More about market intelligence

Market IntelligenceOctober 2026Search ⌘K3A
Market Intelligence Panel
Your competitive share of the actually-realized market, aggregated across every company that contributes to the Dexor panel. Cross-company, and confidentiality-gated.
Oct 2026
Scope
New York
PANELcompetitive share of the realized market for New York. The complementary ADDRESSABLE share lives on the Dashboard.
Panel market size
$412,600,000
realized market in scope
Your panel share
11.0%
of the realized market
Market growth
+2.4%
vs prior month
Evolution Index
104
Outgrowing ▲
#3 by value in New YorkContribution to your total: 34.2%
Own vs market, indexed to 100You Market

The market line breaks at any month locked for confidentiality. No suppressed figure is ever plotted.

Every feature in sell-out intelligence.

Each one has its own page.

Distributor data ingest

Distributors send sell-out and stock by API push, the upload API or email. Every file is checked, stamped with where it came from, and kept as received.

Read more

Email ingest

Registered distributor senders email a CSV to Dexor. Unknown or spoofed senders are dropped, and every file is checked line by line before import.

Read more

Outlet and SKU matching

Distributor outlet names and SKU codes are matched to your masters. Clean matches land in a territory; uncertain ones wait for a person.

Read more

Match queue

A two-pane review queue for outlet names that did not match on ingest. Approve a candidate, override the territory, or reject, from the keyboard.

Read more

Restatement

After a match is approved, restate a past month so its unmatched lines land in the right territory. The original source data is never rewritten.

Read more

Net sales rollups

Secondary sales net of returns, per distributor and territory, with a SKU breakdown. Figures still landing are marked provisional, never shown short.

Read more

Data quality workbench

Match rate, rejected rows by reason and duplicate outlets for each distributor, on one screen, linked straight to the match queue.

Read more

Channel stock

Closing stock at each distributor, days of cover against the last 30 days of sales, and SKUs with a batch close to expiry.

Read more

Market intelligence

Your share, market growth and evolution index against the realised market, nationally, by city or by territory, with a monthly or moving annual view.

Read more

Market map

Every territory you manage on a map, coloured by addressable share or sales value, with a drill from nation to province, city and territory.

Read more

Doctor and chemist links

Tag the chemists that serve a doctor, map each chemist to a distributor outlet, and see the sell-out invoiced to those chemists, clearly labelled.

Read more

Directory

Searchable lists of the doctors, chemists, distributors and SKUs your team works with, each opening to a detail page with its activity and sales.

Read more

Targets and forecasting

Join reconciled sell-out to per-SKU targets for precise attainment and a forward-looking quarter verdict.

Targets and forecasting

Platform and admin

Distributor, outlet, and SKU-crosswalk masters, seat governance, and a tamper-evident audit trail.

Platform and admin

Stop being the human crosswalk.

Bring your messiest distributor file to the demo.