Case study · Logistics & Mobility
From ad-hoc reporting to self-serve analytics at Porter
How a Metric Store and Semantic Reporting Layer cut SQL-to-insight from 4 days to 2 hours and reduced ad-hoc report requests by 90%.
- SQL-to-insight time
- 4d → 2h
- Dashboard build time
- 7d → 2d
- Ad-hoc report requests
- −90%
Context
Porter runs several business lines across intra-city logistics and mobility. Like many hyper-growth companies, analytics had grown request by request. Each team kept its own queries and dashboards, so the same metric could mean different things in different meetings.
The problem
- Slow answers. Taking a question from SQL to insight took around 4 days, and a new dashboard took about 7 days.
- Analysts stuck on report requests. A large share of analyst time went to ad-hoc pulls instead of decision support.
- No single version of the truth. Metric definitions drifted across business lines, which undermined trust in the numbers.
What we built
- Central Data Product. A unified warehouse and governance layer spanning all business lines, which became the single source of truth for enterprise reporting.
- Metric Store and Semantic Reporting Layer. Each metric is defined once and reused everywhere, so dashboards, analysts and business users all read from the same governed definitions.
- Governance built in. Org-wide data governance, a data catalogue, and privacy and security standards: policies, access controls, PII masking, metadata discovery and audit trails.
- Operating model. The Analytics Engineer role was introduced to own analytical data products, and Compass, a capability and responsibility framework, set the bar for analytical rigor from hiring through performance assessment.
Impact
- SQL-to-insight time fell from 4 days to 2 hours.
- Dashboard build time fell from 7 days to 2 days.
- Ad-hoc report requests dropped by 90%, freeing the team for higher-leverage analysis.
What’s next
With governed metrics in place, the next step is AI-native analytics: letting LLM agents answer business questions against the same metric definitions through MCP. See AI-native analytics with MCP.