The organization had operational and financial data across multiple systems — and no pathway to connect Power BI directly to production databases. We built a complete executive and departmental BI platform using PowerApps and structured Excel staging. Every dashboard live. Every production system untouched.
Atlantic LNG had a standard enterprise data problem — operational and financial data spread across different platforms, different owners, and different technical environments. What made it distinctive was the constraint: direct connectivity from Power BI to production databases was not available.
The conventional Power BI implementation approach — connect the BI tool directly to the database — was not an option. This is a constraint that stops most BI projects before they start. The assumption is that without database access, a real BI platform is impossible.
That assumption is wrong. It just requires designing the ingestion architecture differently — which is exactly what we did for Atlantic LNG.
The solution we built has since become a blueprint we've applied in other constrained environments. The approach is replicable for any organisation where direct database access is restricted.
We designed a two-stream data ingestion architecture. Both streams fed the same Power BI data model. The executive and departmental dashboards that resulted had no knowledge of how the data arrived — they simply read from a clean, validated, unified model.
Most BI projects start with the tool — pick Power BI, connect it to the database, build dashboards. When the database connection isn't available, the project stalls.
The insight that unlocked the Atlantic LNG project was separating the data ingestion problem from the visualisation problem. The dashboards don't care where the data came from — they only care that the data model is clean, current, and consistent. We designed the ingestion to deliver that, regardless of the source system constraints.
Excel staging isn't an inferior substitute for a direct database connection — it's a different and sometimes better approach. It separates the analytical load from the transactional load, gives the data team control over exactly what enters the data model, and makes the ingestion auditable in a way that direct query often isn't.