flowchart LR
A[Postgres<br>Shipment & Driver Data] --> B[FastAPI Queries<br>Parameterized SQL]
B --> C[Dispatch View]
B --> D[Drivers View]
B --> E[Executive View]
C --> F[Click-Through<br>Drill-Down]
D --> F
E --> F
Chemical Logistics Operations Dashboard
A live FastAPI operations dashboard for dispatch, drivers, and executive views — and the data-integrity fixes that made its numbers trustworthy
Chemical Logistics Operations Dashboard
Role: Lead Developer & Analyst · Organization: Select Water Solutions · Status: Production
The Problem
The chemical logistics business (dispatch, drivers, and freight carriers) had no live operational view. Managers were working from static exports and manual spreadsheets to answer basic questions — which carriers were active this month, how drivers were performing against safety and fuel metrics, and whether shipments were moving on time.
The Solution
I built a FastAPI dashboard with three views — Dispatch, Drivers, and Executive — reading live from the operational data warehouse, alongside a parallel Power BI DAX rebuild of the same two core pages for teams that needed the dashboard embedded directly in Power BI.
Architecture
Finding and fixing a data-integrity bug that mattered
Early in the build, freight-cost figures on the dashboard looked absurd — one chart’s axis read in the tens of billions of dollars. I traced it to a join fan-out: a shipment-level table was actually stored one row per stop, so a shipment with several stops had its cost figure duplicated and summed that many times over. A naive SUM() was returning ~$17.3B against a correct value of ~$29M. I fixed it by deduplicating to one row per shipment before any aggregation — a pattern I then applied everywhere that table fed a KPI or chart.
Filter audit
When a stakeholder reported that a specific region/role combination on the Drivers page “looked wrong,” I didn’t just patch the one complaint — I audited every filter across all three tabs against live data. That surfaced several real, previously-invisible bugs: filters that silently zeroed out results for entire regions due to mismatched value formats between data sources, charts that ignored the active time period entirely, and dead filter controls left over from removed features. All were fixed and verified the same day.
External fuel spend map
A stakeholder wanted to see where offsite fuel spend was actually happening. The raw transaction data only carried abbreviated pump-receipt addresses, no coordinates. I geocoded roughly 1,600 distinct addresses using the free U.S. Census Bureau batch geocoder, falling back to ZIP-code population centroids for addresses too messy to match exactly — reaching 99.7% coverage — and built a live map showing exact vs. approximate matches distinctly.
Results & Impact
$17.3B → $29M
Cost-KPI data-integrity fix
Same-Day
Full 3-tab filter audit, fix, and verification
99.7%
Geocode coverage for the fuel-spend map
Live
Click-through drill-down on every chart
What Changed for the Business
- Trustworthy numbers — the dashboard’s KPIs now match what a direct database query returns, not an inflated join artifact
- Confidence in filters — every filter on every tab is verified against live data, not assumed correct because it renders without error
- Operational visibility — dispatchers and managers get a live view of carriers, shipments, and driver performance instead of static exports
Technical Stack
| Component | Technology | Purpose |
|---|---|---|
| Backend | FastAPI (Python) | Dispatch/Drivers/Executive routes, parameterized queries |
| Data Source | PostgreSQL | Live operational warehouse, dbt-modeled |
| Visualization | Chart.js, Leaflet | Charts and the offsite fuel-spend map |
| Parallel Track | Power BI (DAX) | Same two core pages, native PBI embed |
| Geocoding | US Census Batch Geocoder | Free, no-API-key address-to-coordinate matching |
| Testing | pytest | Regression coverage for filter and aggregation logic |
Key Skills Demonstrated
Data Integrity Debugging
Traced a 500x cost-KPI inflation to its root cause (join fan-out) and fixed it at the source
Full-Stack Dashboard Development
FastAPI + Chart.js + Leaflet, end-to-end from query to interactive chart
Systematic QA
Audited every filter on every page against live data instead of patching one complaint at a time
Practical Data Engineering
Free-tier geocoding pipeline reaching 99.7% coverage with no paid API