The 7 KPIs every SMB CEO should track each Monday
In short — The 7 KPIs an SMB CEO should read every Monday in 2026: 60-day projected cash, DSO, gross margin by product family, weighted pipeline with dormant quotes, stock coverage, receivables overdue by more than 30 days, and support backlog. Fifteen minutes of reading, three decisions — covering the four risks that actually kill SMBs: cash, margin, sales, and customers.
Search for "SMB CEO KPIs" and you'll find lists of thirty, forty, sometimes fifty indicators. That's exactly the problem: a dashboard you never read is worthless, and nobody reads forty numbers on a Monday morning. Steering a small or mid-sized business doesn't require more data — it requires the right numbers, at the right moment, each tied to a reflex action.
Why Monday morning? Because it's the only moment when you can still act on the week ahead. Reading your numbers on Friday evening is an autopsy. Reading them on Monday at 8:30 am is a decision. And why seven instead of thirty? Because seven numbers can be read in fifteen minutes and cover the four risks that actually kill SMBs: cash, margin, sales, and customers.
Here are the seven, in the order you should read them.
1. Net cash position and its 60-day projection#
Definition: your consolidated bank balance, plus expected receipts (customer invoices issued and due within 60 days), minus committed outflows (supplier invoices, payroll, social charges, VAT due).
The bank balance alone is a comfortable lie. An account showing €80,000 with €120,000 of supplier invoices due within 45 days and €50,000 of customers dragging their feet is a company in danger that believes it's comfortable. The projection tells the truth, not the snapshot.
Where to find it in Odoo: the balance in Accounting → Dashboard (bank journals), expected receipts in the Aged Receivable report, committed outflows in the Aged Payable report. Three reports to cross-reference by hand — which is exactly where most CEOs give up.
Alert threshold: if the 60-day projection drops below the equivalent of one month of fixed costs, you act this week: accelerated customer follow-ups, supplier payment rescheduling, or a credit line activated before you need it.
Automatic monitoring: UpBoard's finance agent, Élise, recalculates this projection continuously from your Odoo data and alerts you the moment the trajectory deteriorates — without waiting for Monday.
2. DSO (days sales outstanding)#
Definition: the average number of days between issuing a customer invoice and actually getting paid.
DSO is the indicator that deteriorates in silence. Nobody decides one morning to pay later; but one customer slips from 30 to 45 days, then a second, then your team eases off on follow-ups because "the month looks good"... and six months later, you're financing your customers' cash flow with your own, for free.
How to calculate it: (accounts receivable ÷ revenue for the period, taxes included) × number of days in the period. In Odoo, receivables are in the Aged Receivable report; revenue in the invoicing reports.
When to act: a healthy DSO depends on your industry and your payment terms — there is no magic number. What matters is the trend: if your DSO exceeds your contractual terms by more than about ten days, or rises three months in a row, the problem is no longer circumstantial, it's structural. The likely cause: a follow-up process that lives in someone's memory.
Automatic monitoring: Élise tracks DSO drift month by month and identifies, by name, the customers pulling the average up.
3. Gross margin by product family#
Definition: for each product or service family, revenue minus direct cost, as a percentage.
Overall gross margin is an average, and every average hides extremes. A consolidated margin of 38% can easily conceal one family at 55% subsidizing another at 12% — or even products sold at a loss ever since your supplier raised prices and nobody passed the increase on. You end up working harder to earn less, without seeing it.
Where to find it in Odoo: Sales → Reporting → Sales Analysis, grouped by product category, with the "Margin" measure. Provided your purchase costs are up to date on the product records — a detail many SMBs neglect.
Alert threshold: any family whose margin drifts by more than two or three points in a month deserves a question: a supplier increase not passed on, sales discounts getting out of hand, or a product mix shifting under your feet.
Automatic monitoring: UpBoard's agents compare each family's margin against its own history and surface abnormal drifts, rather than leaving you to squint at a pivot table.
4. Weighted pipeline and dormant quotes#
Definition: the sum of sales opportunities multiplied by their probability of closing, and the list of quotes sent but left unanswered beyond a given delay.
A raw pipeline of €400,000 means nothing if half of it consists of quotes sent three months ago that nobody ever answered. Those dead quotes inflate forecasts, provide false reassurance, and distort every hiring and investment decision you make. The weighted pipeline corrects the first illusion; hunting down dormant quotes corrects the second.
Where to find it in Odoo: CRM → Pipeline for opportunities (with per-stage probabilities), and Sales → Quotations filtered by "Sent" status and send date for the dormant ones.
Action reflex: a simple, sustainable rule beats a sophisticated process nobody follows. For example: any quote unanswered after 10 days gets a follow-up; after 30 days, you call or you close it. A properly closed quote is worth more than a ghost quote polluting your forecasts.
Automatic monitoring: Sarah, UpBoard's sales agent, detects dormant quotes every day and hands you a follow-up list prioritized by amount and age.
5. Stockout rate and stock coverage#
Definition: on one side, the share of requested items unavailable for sale; on the other, the number of days of sales your current stock covers, item by item.
These two numbers must be read together because they tell the two sides of the same mistake. Stockouts mean selling what you don't have: lost revenue, and customers discovering your competitors. Overstock means storing what you don't sell: cash tied up, space occupied, obsolescence looming. Many SMBs manage to suffer both at once — out of stock on their best sellers, overstocked on the items that never move.
Where to find it in Odoo: Inventory → Reporting → Stock for available and forecasted quantities; cross-referencing with sales velocity, however, requires an export and spreadsheet work.
Alert threshold: any class A item (your best sellers) with less than two weeks of coverage is a replenishment emergency. Any item with no movement for several months is a candidate for clearance, not for reordering.
Automatic monitoring: UpBoard's inventory agent cross-references coverage, sales velocity, and supplier lead times to predict stockouts before they happen.
6. Receivables overdue by more than 30 days#
Definition: the total amount of customer invoices overdue by more than 30 days, and the named list of the customers involved.
This is DSO's cousin, but more urgent: DSO measures a trend, while overdue receivables point to specific invoices with names attached. And the rule of collections is merciless: the older a receivable gets, the less of it you recover. Every additional week of delay reduces your chances of being paid in full — the customer who doesn't pay at 30 days pleads an oversight; the one who doesn't pay at 90 days usually has a real problem, and you're at the back of their queue.
Where to find it in Odoo: Accounting → Reporting → Aged Receivable, in the 30-60, 60-90, and older columns.
Action reflex: a weekly follow-up ritual, non-negotiable, even when the month looks good. Every Monday: the over-30-days list, one action per line (email, call, formal notice), and one owner. Collections is not about aggressiveness — it's about consistency.
Automatic monitoring: Élise keeps this list permanently up to date and prepares the follow-ups — you approve, she handles the tracking.
7. Support backlog and first response time#
Definition: the number of open customer tickets (and how old they are), and the average time between a customer's request and the first human response.
This is the KPI CEOs look at least, yet it's where customer satisfaction can be read — well before the cancellations. A customer almost never leaves on a whim: they leave after three tickets left unanswered, two broken promises, a growing feeling of having become invisible. By the time churn shows up in your sales figures, the damage is six months old.
Where to find it in Odoo: Helpdesk → Reporting → Tickets Analysis, with open tickets by age and average response times.
Alert threshold: a backlog growing three weeks in a row, or a first response time drifting beyond what you promise your customers (explicitly or not). Look for recurring topics too: ten tickets about the same issue aren't ten support problems — they're one product problem.
Automatic monitoring: UpBoard's support agent watches SLAs, backlog, and recurring topics, and flags the customers whose weak signals are piling up.
The SMB CEO's Monday morning ritual: 15 minutes, 7 numbers, 3 decisions#
An SMB CEO's KPI dashboard is only as good as the ritual that comes with it. The format that works fits in one sentence: fifteen minutes, seven numbers, three decisions.
Fifteen minutes, because anything longer and you'll stop doing it by week three. Seven numbers, the ones above, always in the same order — cash first, because cash is what kills. Three decisions, because a number read without an action is a number read for nothing: which customer do I chase, which quote do I close, which order do I place.
The classic trap is collection time. If gathering these seven numbers takes an hour of Odoo exports and spreadsheet work, the ritual dies within a month. Two ways out: a classic BI tool — we compared the approaches in our article on Power BI alternatives for SMBs running Odoo — or agents that monitor your data continuously and only surface what deserves your attention, the approach we detail in our SMB steering solution.
Conclusion#
Steering an SMB doesn't require more numbers — it requires a simple contract with yourself: the same seven indicators, every Monday, followed by three decisions. Projected cash and DSO protect your cash flow, margin by family protects your profitability, the pipeline and dormant quotes make your forecasts trustworthy, stock and support protect your customers. And if gathering the numbers is what's stopping you, UpBoard.ai, the layer of specialized AI agents for Odoo, prepares these seven figures for you every Monday morning. Start next Monday, even with rough numbers: an imperfect ritual you keep beats a perfect dashboard you never open.
See what your Odoo data has to tell you
A 30-minute demo on your own data — leave with your first quantified opportunities.