Login
A portfolio BI platform built on a synthetic retail dataset. No signup, nothing to install.
Explore demo read-only · one click · no typingWhat this is
A server-rendered analytics suite for Northgate Retail Group, a fictional
supercenter chain. Flask + Jinja on a DuckDB star schema over Parquet, with
role-based access control and row-level scoping enforced in the query layer.
All data is synthetic and generated by
seed/generate_synthetic_data.py.
Worth a look: Overview for the executive summary and movement analysis, Customers for RFM and cohort retention, Products for margin and price-band work, and Regions for territory concentration. Every page shares one filter bar, one comparison-window definition and one metric catalogue.
Other logins — see the access model in action
Each account sees a different slice of the same data, so the RBAC scoping and the cost-masking rules can be checked rather than taken on trust.
-
/
demoread-only tour of every page (one-click) -
/
demo-password-1234everything, plus the admin portal -
/
demo-password-1234everything, no admin portal -
/
demo-password-1234two regions only -
/
demo-password-1234Dana Whitfield's accounts only -
/
demo-password-1234Tomasz Bielski's accounts only -
/
demo-password-1234all rows, but cost/margin columns masked
Click a username to fill the form below.