You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: standardize silver/gold field names, fix dashboard KPIs, add total_orders
Drop ds_kpi dataset from the dashboard — KPI counters (Total Value, Total Orders,
Number of Customers) now bind to ds_orders so all five filters update them.
Number of Orders removed (no order_id in gold layer).
Standardize field names across silver (curated.order_enriched) and gold
(report.order_agg) per three rules: {entity}_id suffix, entity-qualified names,
item_* prefix for item-level fields, no abbreviations. date cast to DateType in
silver so the type coercion lives in the right layer.
Add total_orders (COUNT DISTINCT order_id) to report.order_agg and a third KPI
tile on the dashboard.
commonSchemas.py now defines order_enriched_schema and order_agg_schema as the
canonical schemas for silver and gold; tests import from there instead of
inlining StructType definitions.
Also fix pre-existing unit_test_sdp.py bug where df_order tuples were missing
product_id and prod_category_id (4 values vs 6-field schema).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: CLAUDE.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -95,8 +95,8 @@ Medallion schemas (`MEDALLION_SCHEMAS` in `config.py`):
95
95
96
96
Each task's input/output tables are **hardcoded** in the task module (e.g. `raw.customer` → `curated.order_enriched`). The medallion layer is a semantic contract, not a runtime parameter — this is the dbt `ref()` pattern. Don't parameterize the layer; if a task genuinely needs a configurable target, that's a different task.
0 commit comments