One P&L, reconciled to the source
ERP, CRM and accounting data in one warehouse and one KPI layer, so revenue, margin, plan-versus-actual and cost structure carry one written definition each and tie back to the source tables.
For CFOs, financial controllers and heads of FP&A at mid-sized operating companies.
If this sounds like your week
- Month-end is a week of pulling exports from the ERP into spreadsheets, and the board pack still ships with a figure someone has to explain.
- Sales, operations and finance each have a margin number. They come from the same ERP, they still disagree, and each department defends its own.
- Plan versus actual by department is built by hand, so a budget revision means rebuilding every report.
- Cost structure by product or region is a quarterly exercise, not something you can open on a Tuesday.
- Bonus eligibility depends on plan fulfillment, and the sheet that calculates it is the one nobody wants to audit.
- The same customer sits in the ERP under three names, cost centers nobody closed still take postings, and every report inherits the mess.
What gets built
- Sources
- ERP, CRM, accounting and service systems; budgets and plans where they actually live, usually a spreadsheet.
- Odoo and other ERP sources, ODBC, REST APIs, Google Sheets
- Warehouse
- ClickHouse or PostgreSQL loaded from the operational databases through pipelines orchestrated with Apache Airflow; sources landed raw, then staged, then marts.
- ClickHouse, PostgreSQL, MySQL, Apache Airflow, SQL
- Data model
- dbt transformations and one KPI layer: revenue, expenses, gross margin and cost structure by product, region and business unit; plan-versus-actual by department and branch; month-over-month, year-over-year and rolling periods; Row-Level Security by role and department.
- dbt, SQL, DAX, Power Query (M)
- Reporting
- Management and financial dashboards for owners, the CFO and department heads, published through Power BI Service with Gateway refresh, or Apache Superset where your stack calls for it.
- Power BI (Desktop, Service, Gateway), Apache Superset
- Monitoring
- Report figures reconciled against the source databases; validations, automated tests and SLA monitoring, so a broken refresh is found before the close, not during it.
- SQL, dbt, Apache Airflow, Python
Work I can describe
For a global, multi-brand distributor with over 1,000 employees, I built the financial analytics layer: revenue, expenses, gross margin, profitability and cost structure by product, region and business unit; plan-versus-actual by department, region and branch; and KPI dashboards that identify the employees and teams eligible for bonus payouts based on plan fulfillment. Data from ERP, CRM, service and accounting systems was integrated into unified models on a ClickHouse warehouse with dbt transformations and Airflow pipelines, reported in Apache Superset and Power BI, with metrics kept consistent across business units.
For the clients of an ERP services integrator working with small and mid-sized businesses, I built management and financial dashboards on data from an ERP system covering sales, finance, inventory and procurement: Power BI models with KPI logic for revenue, margin, plan-versus-actual, turnover and stock coverage; period comparison with month-over-month and cumulative metrics. Along the way I resolved the data-quality issues in their master data and transactional records, and the executive dashboards for business owners and department heads were tuned to refresh reliably.
In my current role I designed a unified KPI layer for P&L and other indicators and formalized the metric definitions, removing duplicate metrics and discrepancies between departmental reports, with self-service Power BI on a standardized model and Row-Level Security by role and department.
For a provider of automated financial, tax and statistical reporting to large corporate clients, I validated the generated reports against source data in PostgreSQL and ERP databases, finding discrepancies, edge cases and logic errors in the calculation and aggregation rules.
Clients are not named.
How we start
- I
Discovery call
The close, the board pack and the budget cycle the reporting has to serve, and which system each line comes from.
- II
Data audit
ERP, CRM, accounting and the plan spreadsheet: where margin disagrees between departments, which master data is broken, which figures cannot be tied back to the source.
- III
Model, reporting, handover
A KPI layer agreed with finance in writing and reconciled to the source; then the dashboards by department and branch; then documentation, scheduled refresh and monitoring so your team runs it.
Send the P&L nobody could reconcile.
Attach last month’s pack and the line the departments disputed. That is enough for a first call.
Email dauren.m@lief.devEmail Dauren