Your Odoo already knows which customers are slipping. Readout tells you.

Connect your Odoo read-only. Within an hour you have revenue by brand, trade and region, peer-group gap analysis per customer, and lapsed-reorder detection — refreshed on a schedule, no exports, no spreadsheets.

No free trial. Readout is $599/month, cancel anytime from the billing portal — most workspaces are reporting within an hour of connecting.

The Readout Overview: invoiced revenue of 12,016,274 up 25.6% on the prior three months, returns and month-to-date beside it, and a bar chart of the last twelve months with the current partial month drawn paler.

Screens are captured from the running product against a sample workspace — the reports are real, the invoices behind them are generated.

What it does

Everything your operational reporting needs

Connect your Odoo

Point Readout at your Odoo with a read-only API key. No exports, no spreadsheets — it reads sales the moment it is connected.

Automatic syncs

Scheduled background jobs keep a clean warehouse of your operational data up to date, so reports are fast and always current.

Reports that matter

An Overview dashboard, saved reports grouped by any dimension, and customer analytics — with Excel (.xlsx) export on everything.

Product mapping

Map products and customers into brands, trades, and regions once; every report reflects it, with coverage warnings when a map is incomplete.

Peer-group gap analysis

For any customer, what businesses like theirs buy that they do not — and what they used to reorder and quietly stopped. This is the report nobody exports out of an ERP by hand.

Every workspace gets a physically separate, encrypted warehouse, and the Odoo connection is read-only — enforced in code, not promised. How that works →

See it

The reports you cannot get by exporting

Peer-group gaps

What this customer should be buying, and isn’t

Readout finds the dealers that look like this one — same trade, real book — lists what those peers buy, and subtracts what this account already carries. Every row carries its evidence: how many peers buy it and what they spend, so a rep can say why it is on the list.

A “Should buy” table listing SKUs the customer’s 15 peers carry and this one does not — glass washers, sanitizer dispensers, a sandwich prep cooler — each with the number of peers buying it, that share as a percentage, and average spend per peer.

Lapsed reorders

The reorder that quietly stopped

An item a customer bought for two years and has not touched since January is invisible in a top-items report, because the thing that disappeared never appears at all. This table is the mirror image: what they used to buy, when they last bought it, and what it was worth.

A “Lapsed” table of items the customer stopped reordering — a drying rack, a dish rack, a reach-in refrigerator — with the month each was last bought, how many months ago, and its past value, totalling 48,209.

Saved reports

Grouped by things your ERP has never heard of

Trade, brand, house-versus-resold, region. Map them once and every report reflects it. Returns sit in their own column rather than netted into revenue — an account that buys a lot and sends much of it back is not the same account as one that buys the same net amount cleanly.

A revenue-by-trade report: six trades with revenue, share, units, returns and SKU count, and a totals row reading 12,016,274 across 101,770 units.

How it works

Up and running in three steps

1

Connect

Add your Odoo URL, database, and a read-only API key. Readout verifies access instantly.

2

Sync

Readout pulls your sales into an isolated warehouse and keeps it fresh on a schedule.

3

Report

Open the dashboard — Overview, saved reports, and customer analytics, ready to share and export.

Start reading from one book

Pro plan, $599/month, no free trial. Subscribe, connect your Odoo, and read your first report — usually inside an hour.