- Status: Accepted
- Date: 2026-07-08
The pipeline is rigorous but backend-only — there is nothing a reader can click to see it work. A zero-setup hosted demo is the single highest-ROI "showable" artifact for a data project, and Streamlit is a common default. Fusing an ML/AI layer into this repo would read as a shallow bolt-on — so the demo must stay a thin consuming layer, not a new genre. Power BI (the planned consuming layer) can't be shared publicly on the free tier, which blunts its value as the public artifact.
Add a small Streamlit app (app/) as the public consuming layer, alongside (not
instead of) Power BI. Two pages over the existing gold rollups: usage trends and station
explorer.
The non-goal targets product framing — users, accounts, a thing pretending to be a startup. A read-only analytics dashboard is the same role Power BI already plays in the locked stack: a consuming layer on gold. It adds no auth, no writes, no users. Framed honestly in the README as a demo layer, not a product.
- Trial independence: the Snowflake trial suspends ~2026-08-06, after which queries are
blocked. A demo wired to Snowflake would die with it. So gold rollups are exported to
app/gold_export/*.parquet(ingestion/export_gold_to_parquet.py) and the app reads them via DuckDB — it runs forever with no warehouse. - Free hosting: Streamlit Community Cloud runs a public-repo app for free; committed Parquet (9 MB, well under limits) needs no secrets or external DB.
- Only rollups ship:
daily_journey_stats,station_daily_flows,dim_station,dim_date— never the 41M-rowfact_journey(too big for git; the rollups exist for exactly this).
- The ML demand-forecasting extension stays a separate future project (breadth belongs across projects, per the research) — the Streamlit app is a viz layer, not ML.
- Adds Streamlit + Altair to the dev deps;
app/requirements.txtpins them for Cloud. - One manual step remains the user's: connecting the repo in Streamlit Community Cloud (a GitHub-authorize click), same hands-on posture as the Power BI dashboard.