Project summary · Microsoft Fabric · Data Factory · SQL Warehouse · Power BI
NYC Taxi Analytics Platform
An end-to-end platform on Microsoft Fabric: metadata-driven pipelines, incremental loading into a SQL Warehouse, a semantic model, and a Power BI report iterated to its fifth design.
Role
Personal build
Stack
Microsoft Fabric · Data Factory · SQL Warehouse · Power BI
A dataset large enough that the loading strategy actually matters. Reloading it in full every run is the obvious approach and the wrong one, so this build is structured around only moving new data.
Questions it answers
What does trip demand look like across time, zone and vendor?
How do you keep a high-volume table current without a full reload each run?
Where should business logic live — in the report, or in the model underneath it?
How I built it
Metadata-driven pipelines. Table configuration drives the ingestion, so the pipeline count does not grow with the table count.
Incremental loading. Only new records move each run, which is what makes the platform viable at this volume.
SQL Warehouse layer. Cleaned data lands in a warehouse where the model is defined in SQL rather than assembled in the report.
Semantic model and DAX. Measures live in the semantic model so every report reads the same definitions.
Report design. The Power BI report went through five iterations to land on a navy and yellow palette with an active-filters bar, so users can always see what they are looking at.
Power BI report, fifth iterationMetadata-driven staging pipelineSolution architecture
How I know it works
Incremental runs load only changed data — verified against warehouse row counts.
Measures are defined once in the semantic model, not duplicated per visual.
The workspace was migrated intact, which proved the build was not tied to one environment.
Honest notes
Built as a portfolio project on the public NYC taxi dataset.