| { | |
| "model_type": "GradientBoostingRegressor", | |
| "feature_columns": [ | |
| "is_ramadan", | |
| "ramadan_week", | |
| "days_to_eid", | |
| "is_eid_fitr", | |
| "is_eid_adha", | |
| "is_hajj_season", | |
| "country_encoded", | |
| "category_encoded", | |
| "temperature", | |
| "day_of_week", | |
| "month", | |
| "hijri_month", | |
| "hijri_day" | |
| ], | |
| "countries": [ | |
| "Bahrain", | |
| "KSA", | |
| "Kuwait", | |
| "Oman", | |
| "Qatar", | |
| "UAE" | |
| ], | |
| "categories": [ | |
| "dates_sweets", | |
| "electronics", | |
| "fashion_abayas", | |
| "gifts", | |
| "groceries", | |
| "perfumes_oud" | |
| ], | |
| "metrics": { | |
| "mse": 24.44782802085175, | |
| "rmse": 4.944474493902436, | |
| "mae": 3.8228789470187383, | |
| "r2_score": 0.905699037541998 | |
| }, | |
| "description": "GCC Ramadan Retail Demand Forecasting Model", | |
| "input_features": { | |
| "is_ramadan": "Boolean (0/1) - Whether it is Ramadan", | |
| "ramadan_week": "Integer (0-5) - Week of Ramadan (0 if not Ramadan)", | |
| "days_to_eid": "Integer (-1 to 30) - Days until Eid (-1 if not applicable)", | |
| "is_eid_fitr": "Boolean (0/1) - Whether it is Eid al-Fitr", | |
| "is_eid_adha": "Boolean (0/1) - Whether it is Eid al-Adha", | |
| "is_hajj_season": "Boolean (0/1) - Whether it is Hajj season", | |
| "country": "String - One of: UAE, KSA, Qatar, Kuwait, Bahrain, Oman", | |
| "category": "String - Product category", | |
| "temperature": "Float - Temperature in Celsius", | |
| "day_of_week": "Integer (0-6) - Day of week", | |
| "month": "Integer (1-12) - Gregorian month", | |
| "hijri_month": "Integer (1-12) - Hijri month", | |
| "hijri_day": "Integer (1-30) - Hijri day" | |
| }, | |
| "version": "2.1.0", | |
| "output": "demand_index - Predicted retail demand index", | |
| "changelog": { | |
| "2.1.0": "Retrained with Hijri features and temporal split. R2=0.906 (honest). days_to_eid=29% importance.", | |
| "2.0.0": "Initial deploy. Random split inflated R2 to 0.992. Missing Hijri features." | |
| } | |
| } |