Operations & sales analytics portal
Monthly reporting ran on a stack of spreadsheets that had to be rebuilt by hand. We replaced the whole run — ingestion, validation, warehouse, analytics, and the authenticated portal the team now reads all of it in.
Live client portal · name & figures blurred
The problem
Every month ran the same sequence: export from the operational systems, pull the sales sheets, reconcile against finance, rebuild the pivots, re-cut the customer summary, send it out. It took days, one person owned all of it, and it broke quietly whenever a source file changed shape.
The bigger problem was that the reporting was unverifiable. Two people could produce two different margin figures for the same month and neither could prove the other wrong, because the working lived in a spreadsheet nobody else had opened.
The system
One ingestion path that accepts the files the business already produces, checks them against agreed rules before anything commits, and loads them into a PostgreSQL warehouse — staged first, then modelled.
Above that, an authenticated portal: executive analytics, drill-through to customer and product level, and recurring reporting that goes out on a schedule rather than when somebody remembers.
Architecture
- SourcesERP, finance and operational exports
- IngestionUpload and scheduled load, validated first
- StoragePostgreSQL — staging, then a modelled layer
- Business logicOne written definition per metric
- ExperienceAuthenticated portal with drill-through
- AutomationRecurring executive reporting
What we built
- Multi-file ingestion for the Excel and CSV sources already in use
- Validation on every load — required columns, types, date ranges, totals that have to reconcile
- Rejection with a readable reason, so a bad file never half-loads
- PostgreSQL schema: staging, a dimensional model, and the marts the portal reads
- Sales, margin and profitability analysis with customer and product drill-through
- Authenticated portal with role-based access to pages and to rows
- Recurring executive reporting, generated and delivered on a schedule