{ "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." } }