The KPI Gap in Bangladesh ERP Implementations
I have reviewed Odoo installations at Bangladesh companies where the system had been live for 18 months and the owner was still getting a daily Excel email from the accounts manager with yesterday's sales, cash balance, and pending receivables. The data was in Odoo. The dashboards were never set up.
This is almost universal in Bangladesh ERP implementations. Implementation vendors configure the operational modules — inventory, accounting, sales — but dashboard and reporting configuration is treated as optional or "Phase 2." Phase 2 never happens. The result is an ERP that is used for data entry but not for decision-making, which means the ERP's primary value proposition — management visibility — is lost entirely.
This guide is about reclaiming that value.
An ERP that captures data but provides no visibility is a filing cabinet, not a management tool.
Odoo Dashboard Types: What to Use When
If you are on Odoo Community, start with Starred Views and Spreadsheets. They cover 80% of dashboard needs with no extra cost. If you are on Enterprise and have Odoo Studio, use it for department-specific dashboards with company branding. Do not invest in Studio dashboards until your team is consistently using the base Odoo reporting views first.
Finance KPIs for Bangladesh Businesses
Critical Financial KPIs — Where to Find Them in Odoo
| KPI | What It Measures | Odoo Location | Bangladesh-Specific Note |
|---|---|---|---|
| Cash Balance (BDT) | Current cash + bank position across all accounts | Accounting → Dashboard (Bank section) | Track BDT and USD/EUR accounts separately if you hold export proceeds in foreign currency |
| Accounts Receivable Aging | Outstanding customer invoices by age bucket (0–30, 31–60, 61–90, 90+ days) | Accounting → Reports → Aged Receivable | For export companies: LC payment terms (90–180 day sight) inflate 61–90 day buckets — filter by customer type to see actual overdue vs. expected LC payments |
| Accounts Payable Aging | Outstanding vendor bills by age — what you owe and when | Accounting → Reports → Aged Payable | Track advance payments to local suppliers separately — common in Bangladesh raw material purchasing |
| Cash Conversion Cycle (CCC) | Days from raw material payment to customer cash collection. Lower is better. | Calculate: DIO + DSO – DPO from inventory and accounting reports | Bangladesh manufacturing average CCC is 45–75 days. Export companies with LC terms often see 90–120 days. This is the single most important financial efficiency metric for Bangladesh factories. |
| Days Sales Outstanding (DSO) | Average days to collect payment after invoice | Accounting → Reports → Aged Receivable → calculate | Domestic customers: target <45 days. Export LC customers: DSO naturally 90–180 days — normal, not a collection problem |
| Gross Margin % | (Revenue – Cost of Goods Sold) ÷ Revenue | Accounting → Reports → Profit & Loss | Separate domestic vs. export margin — export often has lower margin but higher volume. RMG export CM is typically 12–18% of FOB value |
Manufacturing KPIs for Bangladesh Factories
Factory Floor KPIs — Operations & Efficiency
| KPI | Formula / What It Measures | Odoo Location | Target / Benchmark |
|---|---|---|---|
| Overall Equipment Effectiveness (OEE) | Availability × Performance × Quality. The gold standard factory efficiency metric. | Manufacturing → Reporting → OEE (requires Work Centers with time tracking configured) | World class: 85%+. Bangladesh factory average: 55–70%. Set realistic targets before comparing to global benchmarks. |
| Manufacturing Order Cycle Time | Avg time from MO creation to MO completion by product category | Manufacturing → Manufacturing Orders → Group by Product → add Scheduled Date / Effective Date columns | Compare against your BOM planned duration. Gap between planned and actual is your hidden inefficiency. |
| Scrap Rate | Qty scrapped ÷ Qty produced × 100% | Manufacturing → Reporting → Scrap Analysis | Textile/garments: <2% acceptable. Cycle parts: <0.5%. Track by work center to isolate which operation causes most scrap. |
| On-Time Delivery Rate | % of MOs completed by scheduled date | Manufacturing → Manufacturing Orders → filter by Scheduled Date < today, State = Done. Count vs. late. | Target 90%+ for domestic orders. Export must be 98%+ — missed shipment dates trigger LC penalties and buyer chargebacks. |
| Work-in-Progress (WIP) Value | BDT value of materials in active MOs not yet completed | Inventory → Reporting → Inventory Valuation (filter by location = WIP locations) | High WIP indicates production bottlenecks. Rising WIP with flat output = efficiency problem in a specific work center. |
| Downtime by Work Center | Hours of planned vs. unplanned downtime per machine or work center | Manufacturing → Work Centers → Workcenter Efficiency view (requires IoT or manual time entry) | Critical for capital-intensive Bangladesh factories (spinning mills, dyeing, printing). Track to justify maintenance investment. |
Manufacturing KPIs in Odoo require work centres to be configured with capacity, operating hours, and time tracking enabled. Without this, MO completion and OEE data are unavailable. If your work centres are set up as pass-through (no time tracking), manufacturing KPI reporting will be empty. Configure this during implementation — retrofitting time data after go-live requires manual entry for historical orders.
Sales & Export KPIs for Bangladesh Exporters
Revenue Pipeline & Export Performance KPIs
| KPI | What It Measures | Odoo Location | Bangladesh-Specific Note |
|---|---|---|---|
| Sales Pipeline Value (BDT) | Total expected revenue from all active CRM opportunities by stage | CRM → Reporting → Pipeline Analysis → Group by Stage | For B2B exporters: pipeline value in USD (convert at current rate). Track separately by buyer country. |
| Lead-to-Order Conversion Rate | % of CRM leads that become confirmed sale orders | CRM → Reporting → Activities → compare Won vs. Lost opportunities | Bangladesh B2B typical: 15–30%. Export buyer conversion much lower (5–10%) — more effort per deal, higher value. |
| Order Fulfillment Rate | % of confirmed orders delivered complete and on time | Inventory → Reporting → Delivery Analysis | Partial deliveries are common in Bangladesh due to raw material availability. Track partial vs. complete delivery separately. |
| LC Utilization Rate | % of available LC value drawn against (for export businesses) | Accounting → Reports → Account Balance (LC liability account) — requires LC tracking via journal entries | Under-utilised LCs mean you have buyer commitment but cannot ship. Over-utilised means you shipped more than the LC allows — a bank compliance problem. |
| Top 10 Customers by Revenue | Revenue concentration risk — dependence on key buyers | Accounting → Reporting → Sales by Customer → Group by Customer | Bangladesh RMG companies often have 60–70% revenue from 2–3 buyers. High concentration = high risk. Monitor trend monthly. |
Inventory KPIs for Bangladesh Warehouses
Stock Efficiency & Working Capital KPIs
| KPI | Formula | Odoo Location |
|---|---|---|
| Inventory Turnover | COGS ÷ Average Inventory Value. Higher = better cash efficiency. | Calculate from Accounting P&L (COGS) and Inventory Valuation reports. Typically tracked monthly. |
| Dead Stock Value | Value of stock with zero movement in last 90/180 days | Inventory → Reporting → Product Moves → filter by no movement in date range. Requires custom filter. |
| Stock-Out Frequency | How often reorder rules fail to prevent zero stock on active products | Inventory → Products → filter Qty on Hand = 0, Reordering Rule exists. Review weekly. |
| Reorder Compliance Rate | % of reorder rules that triggered on time (vs. products that hit zero before reorder fired) | Inventory → Replenishment → review triggered vs. late reorder rules |
| Warehouse Utilization % | Stock on hand value as % of warehouse capacity (for multi-location setups) | Inventory → Reporting → Location Summary (Odoo 17+ Enterprise) |
The Odoo Inventory Valuation cheatsheet explains how Odoo calculates AVCO, FIFO, and standard cost — the method you choose directly affects your inventory value KPIs.
VAT & Compliance KPIs — Bangladesh-Specific
NBR VAT & TDS Tracking KPIs
| KPI | What It Tracks | Odoo Location |
|---|---|---|
| VAT Payable (Net) | Output VAT collected from customers minus Input VAT paid to vendors = net payable to NBR this month | Accounting → Reports → Tax Report (filter by month) |
| Mushak 6.3 Outstanding | Sales transactions with VAT that need to be included in next Mushak 6.3 submission | Accounting → Reports → Tax Report → Sales Tax lines → export for Mushak |
| TDS Withheld (Vendor Payments) | Total TDS withheld from vendor payments this month — must be deposited to government within 7 days of deduction | Accounting → Vendors → Journal Items → filter by TDS tax account |
| Advance Tax Paid | AIT (Advance Income Tax) paid on imports — treated as advance payment against annual corporate tax | Track via dedicated AIT asset account in chart of accounts. Balance = prepaid tax credit. |
For the full accounting configuration that makes these compliance KPIs possible, the Odoo Accounting Setup Bangladesh guide covers chart of accounts, fiscal positions, and tax configuration including Mushak VAT and TDS accounts.
Building a CEO Dashboard in Odoo Spreadsheet
Odoo's Spreadsheet feature (Reporting → Spreadsheet → New) lets you build a single-page CEO dashboard pulling live data from any Odoo model. Here is the recommended structure for a Bangladesh manufacturing company.
Row 1: Cash & Financial Health
Use a pivot table pulling from account.move.line filtered to the bank/cash accounts. Show: Today's cash position (BDT), Last month end position, Change. Add a trend chart (line graph, 12-month history).
Row 2: Sales Performance
Pivot from sale.order: This month confirmed revenue vs. same month last year. Active pipeline value. Top 5 customers this month.
Row 3: Manufacturing
Pivot from mrp.production: MOs in progress, MOs overdue, This week's planned completions. Scrap qty this month.
Row 4: Working Capital
Pivot from account.move.line: Total AR outstanding, Total AP outstanding, Inventory value. Calculate net working capital position.
Row 5: Compliance Signals
Manual cells updated monthly: VAT payable (from Tax Report), TDS pending, any overdue audit items.
In Odoo Spreadsheet, use the Share button to send the dashboard URL to your management team. They can view it without any special technical knowledge — it looks like a Google Sheets document and updates in real time from the Odoo database. Set a weekly reminder for the relevant manager to review it every Monday morning rather than collecting data manually.
Dashboard Access Control
Not every dashboard should be visible to every user. The CEO dashboard showing cash position and full P&L should be restricted to senior management. Department dashboards (sales pipeline, manufacturing OEE) should be accessible to the relevant department heads.
In Odoo Spreadsheet, access is controlled by sharing settings — you can share with specific users or groups. For the Starred Views approach, access is personal by default (each user configures their own dashboard). For Studio-designed dashboards, use the access rights configuration to assign visibility by user group.
Configure this access hierarchy at go-live — do not leave all dashboards world-readable inside your organisation. Bangladesh companies often have sensitive cash position and customer concentration data that should not be visible to all staff.
Connecting Odoo to Power BI for Bangladesh Reporting
For Bangladesh businesses with a finance or IT team that already uses Power BI, connecting Power BI directly to Odoo provides significantly more flexible reporting than Odoo's built-in dashboards.
Method 1 — Direct PostgreSQL connection (on-premise Odoo only):
In Power BI Desktop, use Data → Get Data → PostgreSQL Database. Enter your Odoo server IP, port 5432, database name. Create a read-only reporting user in PostgreSQL (GRANT SELECT ON ALL TABLES IN SCHEMA public TO reporting_user;). This gives Power BI full access to all Odoo tables for any report you want to build.
Method 2 — JSON-RPC API + Python script (any Odoo hosting):
Write a Python script that queries Odoo's API and writes results to a PostgreSQL or SQL Server database that Power BI connects to. Schedule the script as a cron job (every hour or daily). This works for Odoo.sh and other cloud-hosted Odoo instances where direct database access is not available.
Method 3 — Odoo Excel Export → Power BI:
The simplest approach. Export Odoo pivot views to Excel, import to Power BI. Manual, but requires no technical setup. Good for monthly board reports that do not need real-time data.
If your Odoo implementation is live but your management team still relies on Excel reports, I can set up a CEO dashboard, department KPI views, and a Power BI connection in a structured remote session. Contact me to get started →
Frequently asked questions
How do I create a custom dashboard in Odoo?
Go to any list, pivot, or graph view and click the star icon (☆) to add it to your personal dashboard. Alternatively, use Reporting → Spreadsheet to build a cross-module KPI dashboard with pivot tables, charts, and formulas pulling live Odoo data. For polished department dashboards, Odoo Studio (Enterprise) lets you design custom layouts with live data widgets without writing code.
What KPIs should a Bangladesh manufacturing CEO track in Odoo?
The five most critical: (1) Cash position across all bank accounts; (2) On-Time Delivery Rate for manufacturing orders; (3) Cash Conversion Cycle — days from material payment to customer collection; (4) Inventory Turnover by category; (5) VAT Payable vs. Collected for monthly NBR compliance. All five are available natively in Odoo without customisation, but work centre configuration is required for manufacturing KPIs.
Can Odoo connect to Power BI for Bangladesh business reporting?
Yes. For on-premise Odoo, connect Power BI directly to the PostgreSQL database using a read-only reporting user — this is the most powerful option. For cloud-hosted Odoo (Odoo.sh), use a Python script via the JSON-RPC API to push data to a SQL database that Power BI connects to. For simple monthly reports, export Odoo pivot views to Excel and import to Power BI manually.