Step 1 · Generate

Synthesize

A Python script generates three years (2023–2025) of transactional, budget, and cost data with realistic seasonality and market variation.

generate_data.py

Step 2 · Package

Portable reference

Loaded into SQLite as a single, dependency-free file: a portable copy of the full star schema anyone can open without a server.

meridian.db

Step 3 · Migrate

Live connection target

A T-SQL script rebuilds the schema and loads every row into SQL Server: the source the Excel, Power BI, and Tableau capabilities connect to via Power Query.

Step 4 · Verify

Spot-check

Before anything downstream treats this data as ground truth, it's queried straight from Excel via Power Query: row counts, referential integrity, and joins checked table by table.

Power Query spot-checks

Step 5 · Refresh

H1 2026 actuals

Real January-June 2026 actuals loaded into both meridian.db and SQL Server: +4,983 rows to fact_boutique_sales, +11,206 to fact_sell_in, +181 to dim_date, +1,810 to fact_fx_rate. Row counts and referential integrity checked in both stores after load: zero orphaned rows in either. This is the actuals data the Budget Model and Forecast Model compare against budget.

generate_2026_h1_actuals.py

19

Tables

10 / 9

Dims / Facts

~270K

Rows

2023–H1'26

History

32 / 101

Markets / SKUs

Nine fact tables at the center, ten dimensions around them. Lines mark real foreign-key joins, not a stylised approximation. Click any table to inspect its grain, columns, and joins.

sell_in sell_out boutique_sales budget line_price_cost inventory working_capital headcount fx_rate date geography geo_currency currency channel store wholesale_customer line function market_terms
Fact table Dimension table

Click a table above to inspect its grain, columns, and joins. Tables prefixed dim_ are dimensions; fact_ are facts.

The two files behind everything above. Download them directly.