Demo · live capabilities
Each section below is a complete walk-through of one BMS capability, rendered with figures from a typical OHADA engagement. Numbers reconcile within each demo (KPI strip ↔ table totals) and across demos (the same 240M monthly CA HT drives the VAT and tax sections).
YTD revenue ran at 240M XAF / month for five months. Budget pace is 250M / month. The gap reads as −50M (−4.0%), with volume effect and price effect split cleanly on the variance table so the narrative writes itself.
| Top 5 product lines | Budget | Actual | Δ |
|---|---|---|---|
| Product A | 280M | 300M | +20M |
| Product B | 220M | 230M | +10M |
| Product C | 150M | 160M | +10M |
| Product D | 120M | 110M | −10M |
| Product E | 80M | 75M | −5M |
| Top 5 total | 850M | 875M | +25M |
Volume effect (act_qty − bud_qty) × bud_price and
price effect (act_price − bud_price) × act_qty
reconcile to the GL class 70 movement for the period. Revenue is
always sourced from amount_untaxed_signed (HT) on
customer invoices — never TTC.
Current, Quick and Cash ratios trended over 13 months against the 1.0× threshold. The Cash Conversion Cycle walks alongside — DSO 45 + DIO 25 − |DPO| 40 = 30 days reconciles at the end of the strip.
| Cash conversion cycle | Q1 2026 | Q2 2026 | Δ |
|---|---|---|---|
| DSO · days sales outstanding | 50d | 45d | −5d |
| DIO · days inventory outstanding | 30d | 25d | −5d |
| DPO · days payable outstanding | −35d | −40d | −5d |
| CCC = DSO + DIO − |DPO| | 45d | 30d | −15d |
All three components computed on a trailing-twelve-month basis with partial-period annualisation for new tenants — no artificial spikes, no missing data points. The 13-month strip is rendered with the same ECharts engine as the production suite.
↑ Back to indexAging buckets sum to 280M total AR, fully reconciled to the class 41 GL balance. The 50M over-90 figure is concentrated in five customers — provisioning decisions can be made on names, not bucket totals.
| Aging bucket | Outstanding | % of AR |
|---|---|---|
| Current | 130M | 46.4% |
| 1–30 days | 55M | 19.6% |
| 31–60 days | 25M | 8.9% |
| 61–90 days | 20M | 7.1% |
| 90+ days | 50M | 17.9% |
| Total | 280M | 100.0% |
| Top 5 offenders · over 90 days | Days | Outstanding |
|---|---|---|
| Customer A | 145d | 15.0M |
| Customer B | 130d | 12.0M |
| Customer C | 115d | 10.0M |
| Customer D | 100d | 8.0M |
| Customer E | 95d | 5.0M |
| Sum · matches bucket total | — | 50.0M |
Top 5 offenders in 61–90 days bucket (F 6M · G 5M · H 4M · I 3M · J 2M) also sum to the bucket total — surfaced ahead of the next escalation cycle.
↑ Back to indexFive of the 90+ automated checks shown here — empty descriptions, manual entries, round-number postings, lines posted after period close, and imbalanced moves (zero today). Findings link directly to the underlying journal lines for one-click drill-down.
| Automated check | Count | Status |
|---|---|---|
| Lines with empty / short descriptions (< 5 chars) | 150 lines | Undefined audit risk |
| Manual journal entries | 90 entries | Within tolerance < 100 |
| Round-number postings (multiples of 100K / 1M) | 25 entries | Review required |
| Lines posted after period close | 15 entries | Period needs re-closing |
| Imbalanced moves (Σ Dr ≠ Σ Cr) | 0 moves | All balanced ✓ |
Each check is parametrised against the ledger and re-runs every period. New checks land via release notes — no client code to update. Custom thresholds per tenant.
↑ Back to indexForty lines flagged under CGI Article 7 — entertainment without business purpose, statutory fines and penalties, personal-benefit expenditure. Donations exceed the 1%-of-revenue ceiling by 3.0M. Combined: 10.5M of add-backs, 3.5M of tax exposure at the 33% rate.
| Check | Trigger | Exposure |
|---|---|---|
| Non-deductible expenses · CGI Art. 7 | 40 lines flagged | 7.5M XAF base |
| Donations exceeding 1% revenue cap | Declared 15M · cap 12M | 3.0M XAF excess |
| Combined corporate-tax exposure | ||
| Total add-back × 33% IS rate | 10.5M add-back | 3.5M XAF tax impact |
Each flagged line is drillable to the underlying
account.move.line, with a per-line category override
for accountant judgment. The full Income Tax Compliance module
surfaces 12+ deductibility tests plus per-partner withholding
reconciliation.
Auto-generated Déclaration mensuelle ready for DGI submission. Every line derived directly from the GL — period boundaries respected, VAT cross-checked against class 4431, IS advance booked at 1.1% of CA TTC, withholdings on prestations and loyers separately. Sample extract for Avril 2026 below.
| Déclaration mensuelle · Avril 2026 | Base | Montant XAF |
|---|---|---|
| TVA — Taxe sur la Valeur Ajoutée | ||
| Chiffre d'affaires HT | — | 240,000,000 |
| TVA collectée | 19.25% | 46,200,000 |
| TVA déductible · achats | — | (20,000,000) |
| TVA déductible · investissements | — | (0) |
| TVA à reverser | — | 26,200,000 |
| IS — Impôt sur les Sociétés | ||
| Acompte mensuel | 1.1% CA TTC | 3,150,000 |
| Acomptes versés YTD | — | (12,600,000) |
| Retenues à la source | ||
| RAS sur prestations | 5.5% | 4,500,000 |
| RAS sur loyers | 10% | 2,000,000 |
| Total à payer · échéance 15 mai 2026 | — | 35,850,000 |
Exports to print-ready PDF and the DGI portal Excel template. Variance flag triggers when declared VAT doesn't reconcile to the class 4431 movement for the same period — caught before submission, not after.
↑ Back to indexRun it against your own data
Book a 30-minute walk-through with the team. We'll wire the suite to a sandbox copy of your Odoo and show you the same six demonstrations with your actual chart of accounts. No slide deck.