| Retailer | Industry | Tier | Parcels | GMV (ZAR) | On-Time % | RTS Rate | Revenue Est. |
|---|
| Model | Algorithm | Target | Features | Metric | Score | Status |
|---|
8 tables: 4 dimensions + 4 facts. Loaded via PUT + COPY INTO batch pattern. CLUSTER BY (LOAD_YEAR, date). Parquet/Snappy. PURGE=TRUE.
8 staging models cleaning and standardising RAW data. Type casting, deduplication, derived fields (TRANSIT_HOURS, DWELL_DAYS). All views for zero storage cost.
4 mart tables: parcel performance, daily ops, retailer scorecard, SLA breaches. Clustered for analytical query performance.
3 feature store tables: RTS risk features, customer LTV features, courier reliability. Fed into Snowpark ML stored procedures.
| Table | Rows | Period |
|---|---|---|
| DIM_COURIERS | 500 | Static |
| DIM_CUSTOMERS | 10,000,000 | Static |
| DIM_PICKUP_POINTS | 4,000 | Static |
| DIM_RETAILERS | 150 | Static |
| FACT_ORDERS | ~25,000,000 | 36 months |
| FACT_PARCELS | ~30,000,000 | 36 months |
| FACT_TRACKING_EVENTS | ~210,000,000 | 36 months |
| FACT_RETURNS | ~5,000,000 | 36 months |
Nightly parcel summary (02:00 SAST) | Hourly RTS check | Daily SLA report (06:30 SAST)
RTS spike alert (>15% threshold) | Tracking event volume drop (>50% below 7d avg)
Real province-level parcel volume, plotted at each province's capital city. Circle size = share of the 30.2M enterprise-scale parcel volume.