A-Celsius commited on
Commit
4796404
·
verified ·
1 Parent(s): 74e0305

Upload 8 files

Browse files
CTVNS_Properties.csv ADDED
The diff for this file is too large to render. See raw diff
 
Cluster_Demand_model_df.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:cee74eb255f909c6ca9cfb31aba91815493b0f25099f1bbb82fcb08d81c4814b
3
+ size 46901559
app.py ADDED
@@ -0,0 +1,242 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import io
2
+ import folium
3
+ import joblib
4
+ import datetime
5
+ import numpy as np
6
+ import gradio as gr
7
+ import pandas as pd
8
+ from PIL import Image
9
+ import matplotlib.pyplot as plt
10
+
11
+
12
+ # Load model and scaler
13
+ lgb_model = joblib.load("lgb_occupancy_model.pkl")
14
+ scaler = joblib.load("scaler.pkl")
15
+
16
+ # Load data for historical patterns (you may want to refactor this)
17
+ model_df = pd.read_pickle("Cluster_Demand_model_df.pkl")
18
+ holiday_dates = pd.read_json("holidays_2022_2025.json")['date']
19
+ holiday_dates = pd.to_datetime(holiday_dates).dt.normalize()
20
+ holiday_dates = set(holiday_dates)
21
+ feature_columns = joblib.load('feature_columns.pkl')
22
+
23
+ # Load properties data
24
+ properties_df = pd.read_csv('CTVNS_Properties.csv')
25
+ properties_cols_to_keep = ['Property Name','Property ID', 'Star Rating', 'Property Type', 'Distance from Center','Latitude','Longitude']
26
+ properties_filtered_df = properties_df[properties_cols_to_keep].copy()
27
+
28
+ # Create dropdown options with property name or ID
29
+ property_options = properties_filtered_df['Property Name'].astype(str).tolist()
30
+
31
+ property_type_mapping = {
32
+ 'Hotel': 9,
33
+ 'Homestay': 7,
34
+ 'Guest House': 5,
35
+ 'Resort': 11,
36
+ 'Hostel': 8,
37
+ 'BnB': 2,
38
+ 'Villa': 12,
39
+ 'Apartment': 1,
40
+ 'Apart-hotel': 0,
41
+ 'Holiday Home': 6,
42
+ 'Cottage': 3,
43
+ 'Lodge': 10,
44
+ 'Farm House': 4
45
+ }
46
+
47
+ def forecast_by_property(property_name,adr):
48
+ # Find the selected row
49
+ selected_row = properties_filtered_df[properties_filtered_df['Property Name'].astype(str) == property_name]
50
+ if selected_row.empty:
51
+ return pd.DataFrame({'Error': ['Property Name not found.']})
52
+
53
+ star_rating = int(selected_row['Star Rating'].values[0])
54
+ property_type_str = selected_row['Property Type'].values[0]
55
+ property_type_cat = property_type_mapping.get(property_type_str, -1)
56
+ distance = float(selected_row['Distance from Center'].values[0])
57
+ lat = selected_row['Latitude']
58
+ lon = selected_row['Longitude']
59
+
60
+ # Call your original forecast function
61
+ return forecast(star_rating, property_type_cat, distance,lat,lon,property_name,adr)
62
+
63
+ def forecast_segment_all_features(starRating, propertyType_cat, distanceFromCenter, model_df, cutoff_date, end_date, scaler, lgb_model, full_feature_cols, X_train, holiday_dates, tolerance=0.1):
64
+ """Forecasts occupancy for a given segment."""
65
+ cluster_hist = model_df[
66
+ (model_df['starRating'] == starRating) &
67
+ (model_df['propertyType_cat'] == propertyType_cat) &
68
+ (np.abs(model_df['distanceFromCenter'] - distanceFromCenter) <= tolerance) &
69
+ (model_df['date'] <= cutoff_date)
70
+ ].sort_values('date')
71
+
72
+ if cluster_hist.empty:
73
+ print(f"Warning: No historical data found for segment ({starRating}, {propertyType_cat}, {distanceFromCenter}) up to {cutoff_date}.")
74
+ return None
75
+
76
+ extended_series = pd.DataFrame({'date': pd.date_range(start=cluster_hist['date'].min(), end=end_date)})
77
+ extended_series = extended_series.merge(cluster_hist[['date', 'occupiedRooms']], on='date', how='left').rename(columns={'occupiedRooms': 'occupied'})
78
+
79
+ for i in range(len(extended_series)):
80
+ current_date = extended_series.at[i, 'date']
81
+ if current_date <= pd.to_datetime(cutoff_date):
82
+ continue
83
+
84
+ day_of_week = current_date.dayofweek
85
+ day_of_year = current_date.timetuple().tm_yday
86
+ month = current_date.month
87
+ year = current_date.year
88
+
89
+ is_weekend = 1 if day_of_week in [4, 5] else 0
90
+ is_holiday = 1 if current_date in holiday_dates else 0
91
+
92
+ day_of_week_sin = np.sin(2 * np.pi * day_of_week / 7)
93
+ day_of_year_sin = np.sin(2 * np.pi * day_of_year / 365.25)
94
+ month_sin = np.sin(2 * np.pi * month / 12)
95
+ base_year = model_df['date'].dt.year.min()
96
+ year_scaled = year - base_year
97
+
98
+ lags = {}
99
+ for lag in [1, 7, 15]:
100
+ lags[f'lag_{lag}'] = extended_series.at[i - lag, 'occupied'] if i - lag >= 0 else np.nan
101
+
102
+ rolling_stats = {}
103
+ for window in [3, 7, 15]:
104
+ window_data = extended_series['occupied'].iloc[i - window:i] if i >= window else extended_series['occupied'].iloc[:i]
105
+ rolling_stats[f'rolling_{window}_mean'] = window_data.mean() if len(window_data) > 0 else np.nan
106
+ rolling_stats[f'rolling_{window}_std'] = window_data.std(ddof=0) if len(window_data) > 0 else np.nan
107
+
108
+ daily_change = extended_series.at[i, 'occupied'] - extended_series.at[i - 1, 'occupied'] if i > 0 and pd.notnull(extended_series.at[i - 1, 'occupied']) and pd.notnull(extended_series.at[i, 'occupied']) else np.nan
109
+
110
+ feature_vector = {
111
+ 'starRating': starRating, 'distanceFromCenter': distanceFromCenter,
112
+ 'day_of_week_sin': day_of_week_sin, 'day_of_year_sin': day_of_year_sin, 'month_sin': month_sin,
113
+ 'year_scaled': year_scaled, 'is_weekend': is_weekend, 'is_holiday': is_holiday,
114
+ 'lag_1': lags.get('lag_1', np.nan), 'lag_7': lags.get('lag_7', np.nan), 'lag_15': lags.get('lag_15', np.nan),
115
+ 'rolling_3_mean': rolling_stats.get('rolling_3_mean', np.nan), 'rolling_3_std': rolling_stats.get('rolling_3_std', np.nan),
116
+ 'rolling_7_mean': rolling_stats.get('rolling_7_mean', np.nan), 'rolling_7_std': rolling_stats.get('rolling_7_std', np.nan),
117
+ 'rolling_15_mean': rolling_stats.get('rolling_15_mean', np.nan), 'rolling_15_std': rolling_stats.get('rolling_15_std', np.nan),
118
+ 'daily_change': daily_change,
119
+ }
120
+ for j in range (10):
121
+ feature_vector[f'prop_type_{j}'] = 1 if propertyType_cat == j else 0
122
+
123
+ features = pd.DataFrame([feature_vector])
124
+ features = features.reindex(columns=feature_columns)
125
+ features.fillna(X_train.mean(numeric_only=True), inplace=True) # or another imputation strategy
126
+ features_scaled = scaler.transform(features)
127
+ pred = lgb_model.predict(features_scaled)[0]
128
+ extended_series.at[i, 'occupied'] = pred
129
+ if i > 0:
130
+ extended_series.at[i, 'daily_change'] = pred - extended_series.at[i - 1, 'occupied']
131
+
132
+ future_df = extended_series[extended_series['date'] > pd.to_datetime(cutoff_date)].copy()
133
+ future_df['starRating'] = starRating
134
+ future_df['distanceFromCenter'] = distanceFromCenter
135
+ future_df['propertyType_cat'] = propertyType_cat
136
+ return future_df
137
+
138
+
139
+
140
+ def forecast(starRating, propertyType_cat, distanceFromCenter,lat,lon,property_name,adr):
141
+ cutoff_date = datetime.datetime.today()
142
+ start_date = cutoff_date - pd.Timedelta(days=30)
143
+ end_date = cutoff_date + pd.Timedelta(days=30)
144
+
145
+ # Filter last 30 days of actuals from model_df
146
+ actual_df = model_df[
147
+ (model_df['starRating'] == starRating) &
148
+ (model_df['propertyType_cat'] == propertyType_cat) &
149
+ (model_df['distanceFromCenter'] == distanceFromCenter) &
150
+ (model_df['date'] >= start_date) &
151
+ (model_df['date'] <= cutoff_date)
152
+ ][['date', 'occupiedRooms']].copy()
153
+ actual_df.rename(columns={'occupiedRooms': 'occupied'}, inplace=True)
154
+ actual_df['source'] = 'Actual'
155
+
156
+
157
+ # Forecast next 30 days
158
+ future_df = forecast_segment_all_features(
159
+ starRating=starRating,
160
+ propertyType_cat=propertyType_cat,
161
+ distanceFromCenter=distanceFromCenter,
162
+ model_df=model_df,
163
+ cutoff_date=cutoff_date,
164
+ end_date=end_date,
165
+ scaler=scaler,
166
+ lgb_model=lgb_model,
167
+ full_feature_cols=None,
168
+ X_train=model_df,
169
+ holiday_dates=holiday_dates,
170
+ tolerance=0.1
171
+ )
172
+
173
+ if future_df is None:
174
+ return None, pd.DataFrame(columns=['date', 'occupied'])
175
+
176
+ future_df = future_df[['date', 'occupied']].copy()
177
+ future_df['occupied'] = np.ceil(future_df['occupied'])
178
+ future_df['source'] = 'Forecast'
179
+
180
+ forecasted_rns = int(future_df['occupied'].sum())
181
+ forecasted_revenue = int(forecasted_rns * adr)
182
+
183
+ # Combine actual and forecast
184
+ combined_df = pd.concat([actual_df, future_df], ignore_index=True)
185
+ # Plot
186
+ plt.figure(figsize=(10, 4))
187
+ for label, df in combined_df.groupby('source'):
188
+ plt.plot(df['date'], df['occupied'], label=label, marker='o')
189
+
190
+ plt.xticks(rotation=45)
191
+ plt.xlabel("Date")
192
+ plt.ylabel("Occupancy")
193
+ plt.title("Hotel Occupancy: Last 30 Days (Actual) + Next 30 Days (Forecast)")
194
+ plt.grid(True)
195
+ plt.legend()
196
+
197
+ # Save plot to image buffer
198
+ buf = io.BytesIO()
199
+ plt.tight_layout()
200
+ plt.savefig(buf, format='png')
201
+ plt.close()
202
+ buf.seek(0)
203
+ image = Image.open(buf)
204
+
205
+ folium_map = folium.Map(location=[lat, lon], zoom_start=15)
206
+ folium.Marker([lat, lon], tooltip=property_name).add_to(folium_map)
207
+ map_html = folium_map._repr_html_()
208
+
209
+ # return image, future_df[['date', 'occupied']],map_html
210
+ return image,forecasted_rns,forecasted_revenue,map_html
211
+
212
+
213
+ model_df.columns
214
+
215
+ demo = gr.Interface(
216
+ fn=forecast_by_property,
217
+ inputs=[
218
+ gr.Dropdown(
219
+ choices=property_options,
220
+ label="Select Property",
221
+ info="Choose from the list of properties (searchable)",
222
+ interactive=True
223
+ ),
224
+ gr.Number(
225
+ label="Average Daily Rate (ADR)",
226
+ info="Enter the expected ADR in your currency",
227
+ interactive=True
228
+ )
229
+ ],
230
+ outputs=[
231
+ gr.Image(type="pil", label="Forecast Plot"),
232
+ gr.Number(label="Total Forecasted Room Nights", precision=0),
233
+ gr.Number(label="Total Forecasted Revenue", precision=0),
234
+ gr.HTML(label="Map")
235
+ ],
236
+ title="Hotel Occupancy Segment Forecast",
237
+ description="Forecasts the next 30 days of occupancy for a selected hotel segment.",
238
+ flagging_mode='never'
239
+ )
240
+
241
+ if __name__ == "__main__":
242
+ demo.launch(share=True)
feature_columns.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:932904e8507793889143b8a0d22078a9c67d64ed7db51a2b163226d18b38cf56
3
+ size 404
holidays_2022_2025.json ADDED
@@ -0,0 +1,1037 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "date": "2022-01-01",
4
+ "name": "New Year's Day (R)",
5
+ "type": "Restricted"
6
+ },
7
+ {
8
+ "date": "2022-01-09",
9
+ "name": "Guru Gobind Singh's Birthday (R)",
10
+ "type": "Restricted"
11
+ },
12
+ {
13
+ "date": "2022-01-13",
14
+ "name": "Lohri (R)",
15
+ "type": "Restricted"
16
+ },
17
+ {
18
+ "date": "2022-01-14",
19
+ "name": "Makar Sankranti/ Magha Bihu/ Pongal (R)",
20
+ "type": "Restricted"
21
+ },
22
+ {
23
+ "date": "2022-01-26",
24
+ "name": "Republic Day (G)",
25
+ "type": "Gazetted"
26
+ },
27
+ {
28
+ "date": "2022-02-05",
29
+ "name": "Basant Panchami / Sri Panchami (R)",
30
+ "type": "Restricted"
31
+ },
32
+ {
33
+ "date": "2022-02-15",
34
+ "name": "Hazarat Ali's Birthday (R)",
35
+ "type": "Restricted"
36
+ },
37
+ {
38
+ "date": "2022-02-16",
39
+ "name": "Guru Ravidas's Birthday (R)",
40
+ "type": "Restricted"
41
+ },
42
+ {
43
+ "date": "2022-02-19",
44
+ "name": "Shivaji Jayanti (R)",
45
+ "type": "Restricted"
46
+ },
47
+ {
48
+ "date": "2022-02-26",
49
+ "name": "Swami Dayananda Saraswati Jayanti (R)",
50
+ "type": "Restricted"
51
+ },
52
+ {
53
+ "date": "2022-03-01",
54
+ "name": "Maha Shivaratri (G)",
55
+ "type": "Gazetted"
56
+ },
57
+ {
58
+ "date": "2022-03-17",
59
+ "name": "Holika Dahan (R)",
60
+ "type": "Restricted"
61
+ },
62
+ {
63
+ "date": "2022-03-18",
64
+ "name": "Holi (G)",
65
+ "type": "Gazetted"
66
+ },
67
+ {
68
+ "date": "2022-03-18",
69
+ "name": "Dolyatra (R)",
70
+ "type": "Restricted"
71
+ },
72
+ {
73
+ "date": "2022-04-02",
74
+ "name": "Chaitra Sukladi/ Gudi Padava/ Ugadi/ Cheti Chand (R)",
75
+ "type": "Restricted"
76
+ },
77
+ {
78
+ "date": "2022-04-10",
79
+ "name": "Ram Navami (R)",
80
+ "type": "Restricted"
81
+ },
82
+ {
83
+ "date": "2022-04-14",
84
+ "name": "Mahavir Jayanti (G)",
85
+ "type": "Gazetted"
86
+ },
87
+ {
88
+ "date": "2022-04-14",
89
+ "name": "Vaisakhi/ Vishu/ Meshadi (R)",
90
+ "type": "Restricted"
91
+ },
92
+ {
93
+ "date": "2022-04-14",
94
+ "name": "Birthday of Dr. B. R. Ambedkar (G)",
95
+ "type": "Gazetted"
96
+ },
97
+ {
98
+ "date": "2022-04-15",
99
+ "name": "Good Friday (G)",
100
+ "type": "Gazetted"
101
+ },
102
+ {
103
+ "date": "2022-04-15",
104
+ "name": "Vaisakhadi (Bengal)/ Bahag Bihu (Assam) (R)",
105
+ "type": "Restricted"
106
+ },
107
+ {
108
+ "date": "2022-04-17",
109
+ "name": "Easter Sunday (R)",
110
+ "type": "Restricted"
111
+ },
112
+ {
113
+ "date": "2022-04-29",
114
+ "name": "Jamat-Ul-Vida (R)",
115
+ "type": "Restricted"
116
+ },
117
+ {
118
+ "date": "2022-05-03",
119
+ "name": "Id-ul- Fitr (G)",
120
+ "type": "Gazetted"
121
+ },
122
+ {
123
+ "date": "2022-05-09",
124
+ "name": "Guru Rabindranath's Birthday (R)",
125
+ "type": "Restricted"
126
+ },
127
+ {
128
+ "date": "2022-05-16",
129
+ "name": "Buddha Purnima (G)",
130
+ "type": "Gazetted"
131
+ },
132
+ {
133
+ "date": "2022-07-01",
134
+ "name": "Rath Yatra (R)",
135
+ "type": "Restricted"
136
+ },
137
+ {
138
+ "date": "2022-07-10",
139
+ "name": "Id-ul-Zuha (Bakrid) (G)",
140
+ "type": "Gazetted"
141
+ },
142
+ {
143
+ "date": "2022-08-09",
144
+ "name": "Muharram (G)",
145
+ "type": "Gazetted"
146
+ },
147
+ {
148
+ "date": "2022-08-11",
149
+ "name": "Raksha Bandhan (R)",
150
+ "type": "Restricted"
151
+ },
152
+ {
153
+ "date": "2022-08-15",
154
+ "name": "Independence day (G)",
155
+ "type": "Gazetted"
156
+ },
157
+ {
158
+ "date": "2022-08-16",
159
+ "name": "Parsi New Year's day/ Nauraj (R)",
160
+ "type": "Restricted"
161
+ },
162
+ {
163
+ "date": "2022-08-18",
164
+ "name": "Janmashtami (Smarta) (R)",
165
+ "type": "Restricted"
166
+ },
167
+ {
168
+ "date": "2022-08-19",
169
+ "name": "Janmashtami (G)",
170
+ "type": "Gazetted"
171
+ },
172
+ {
173
+ "date": "2022-08-31",
174
+ "name": "Vinayaka Chaturthi/ Ganesh Chaturthi (R)",
175
+ "type": "Restricted"
176
+ },
177
+ {
178
+ "date": "2022-09-08",
179
+ "name": "Onam or Thiru Onam Day (R)",
180
+ "type": "Restricted"
181
+ },
182
+ {
183
+ "date": "2022-10-02",
184
+ "name": "Mahatma Gandhi's Birthday (G)",
185
+ "type": "Gazetted"
186
+ },
187
+ {
188
+ "date": "2022-10-02",
189
+ "name": "Dussehra (Maha Saptami) (R)",
190
+ "type": "Restricted"
191
+ },
192
+ {
193
+ "date": "2022-10-03",
194
+ "name": "Dussehra (Maha Ashtami) (R)",
195
+ "type": "Restricted"
196
+ },
197
+ {
198
+ "date": "2022-10-04",
199
+ "name": "Dussehra (Maha Navmi) (R)",
200
+ "type": "Restricted"
201
+ },
202
+ {
203
+ "date": "2022-10-05",
204
+ "name": "Dussehra (G)",
205
+ "type": "Gazetted"
206
+ },
207
+ {
208
+ "date": "2022-10-09",
209
+ "name": "Milad-un-Nabi or Id-e-Milad (Birthday of Prophet Mohammad) (G)",
210
+ "type": "Gazetted"
211
+ },
212
+ {
213
+ "date": "2022-10-09",
214
+ "name": "Maharishi Valmiki's Birthday (R)",
215
+ "type": "Restricted"
216
+ },
217
+ {
218
+ "date": "2022-10-13",
219
+ "name": "Karaka Chaturthi (Karva Chouth) (R)",
220
+ "type": "Restricted"
221
+ },
222
+ {
223
+ "date": "2022-10-24",
224
+ "name": "Diwali (Deepawali) (G)",
225
+ "type": "Gazetted"
226
+ },
227
+ {
228
+ "date": "2022-10-24",
229
+ "name": "Naraka Chaturdasi (R)",
230
+ "type": "Restricted"
231
+ },
232
+ {
233
+ "date": "2022-10-25",
234
+ "name": "Govardhan Puja (R)",
235
+ "type": "Restricted"
236
+ },
237
+ {
238
+ "date": "2022-10-26",
239
+ "name": "Bhai Duj (R)",
240
+ "type": "Restricted"
241
+ },
242
+ {
243
+ "date": "2022-10-30",
244
+ "name": "Pratihar Sashthi or Surya Sashthi (Chhat Puja) (R)",
245
+ "type": "Restricted"
246
+ },
247
+ {
248
+ "date": "2022-11-08",
249
+ "name": "Guru Nanak's Birthday (G)",
250
+ "type": "Gazetted"
251
+ },
252
+ {
253
+ "date": "2022-11-24",
254
+ "name": "Guru Teg Bahadur's Martyrdom Day (R)",
255
+ "type": "Restricted"
256
+ },
257
+ {
258
+ "date": "2022-12-24",
259
+ "name": "Christmas Eve (R)",
260
+ "type": "Restricted"
261
+ },
262
+ {
263
+ "date": "2022-12-25",
264
+ "name": "Christmas Day (G)",
265
+ "type": "Gazetted"
266
+ },
267
+ {
268
+ "date": "2022-12-29",
269
+ "name": "Guru Gobind Singh's Birthday (R)",
270
+ "type": "Restricted"
271
+ },
272
+ {
273
+ "date": "2023-01-01",
274
+ "name": "New Year's Day (R)",
275
+ "type": "Restricted"
276
+ },
277
+ {
278
+ "date": "2023-01-14",
279
+ "name": "Makar Sankranti/Magha Bihu (R)",
280
+ "type": "Restricted"
281
+ },
282
+ {
283
+ "date": "2023-01-15",
284
+ "name": "Pongal (R)",
285
+ "type": "Restricted"
286
+ },
287
+ {
288
+ "date": "2023-01-26",
289
+ "name": "Republic Day (G)",
290
+ "type": "Gazetted"
291
+ },
292
+ {
293
+ "date": "2023-01-26",
294
+ "name": "Basant Panchami/Sri Panchami (R)",
295
+ "type": "Restricted"
296
+ },
297
+ {
298
+ "date": "2023-02-05",
299
+ "name": "Hazarat Ali's Birthday, Guru Ravidas's Birthday (R)",
300
+ "type": "Restricted"
301
+ },
302
+ {
303
+ "date": "2023-02-15",
304
+ "name": "Swami Dayananda Saraswati Jayanti (R)",
305
+ "type": "Restricted"
306
+ },
307
+ {
308
+ "date": "2023-02-18",
309
+ "name": "Maha Shivaratri (R)",
310
+ "type": "Restricted"
311
+ },
312
+ {
313
+ "date": "2023-02-19",
314
+ "name": "Shivaji Jayanti (R)",
315
+ "type": "Restricted"
316
+ },
317
+ {
318
+ "date": "2023-03-07",
319
+ "name": "Holika Dahan, Dolyatra (R)",
320
+ "type": "Restricted"
321
+ },
322
+ {
323
+ "date": "2023-03-08",
324
+ "name": "Holi (G)",
325
+ "type": "Gazetted"
326
+ },
327
+ {
328
+ "date": "2023-03-22",
329
+ "name": "Chaitra Sukladi/ Gudi Padava/ Ugadi/ Cheti Chand (R)",
330
+ "type": "Restricted"
331
+ },
332
+ {
333
+ "date": "2023-03-30",
334
+ "name": "Ram Navami (G)",
335
+ "type": "Gazetted"
336
+ },
337
+ {
338
+ "date": "2023-04-04",
339
+ "name": "Mahavir Jayanti (G)",
340
+ "type": "Gazetted"
341
+ },
342
+ {
343
+ "date": "2023-04-07",
344
+ "name": "Good Friday (G)",
345
+ "type": "Gazetted"
346
+ },
347
+ {
348
+ "date": "2023-04-09",
349
+ "name": "Easter Sunday (R)",
350
+ "type": "Restricted"
351
+ },
352
+ {
353
+ "date": "2023-04-14",
354
+ "name": "Vaisakhi/Vishu/Meshadi (R)",
355
+ "type": "Restricted"
356
+ },
357
+ {
358
+ "date": "2023-04-14",
359
+ "name": "Birthday of Dr. B. R. Ambedkar (G)",
360
+ "type": "Gazetted"
361
+ },
362
+ {
363
+ "date": "2023-04-15",
364
+ "name": "Vaisakhadi (Bengal)/ Bahag Bihu (Assam) (R)",
365
+ "type": "Restricted"
366
+ },
367
+ {
368
+ "date": "2023-04-21",
369
+ "name": "Jamat-Ul-Vida (R)",
370
+ "type": "Restricted"
371
+ },
372
+ {
373
+ "date": "2023-04-22",
374
+ "name": "Id-ul-Fitr (G)",
375
+ "type": "Gazetted"
376
+ },
377
+ {
378
+ "date": "2023-05-05",
379
+ "name": "Buddha Purnima (G)",
380
+ "type": "Gazetted"
381
+ },
382
+ {
383
+ "date": "2023-05-09",
384
+ "name": "Guru Rabindranath's Birthday (R)",
385
+ "type": "Restricted"
386
+ },
387
+ {
388
+ "date": "2023-06-20",
389
+ "name": "Rath Yatra (R)",
390
+ "type": "Restricted"
391
+ },
392
+ {
393
+ "date": "2023-06-29",
394
+ "name": "Id-ul-Zuha (Bakrid) (G)",
395
+ "type": "Gazetted"
396
+ },
397
+ {
398
+ "date": "2023-07-29",
399
+ "name": "Muharram (G)",
400
+ "type": "Gazetted"
401
+ },
402
+ {
403
+ "date": "2023-08-15",
404
+ "name": "Independence Day (G)",
405
+ "type": "Gazetted"
406
+ },
407
+ {
408
+ "date": "2023-08-16",
409
+ "name": "Parsi New Year's day/ Nauraj (R)",
410
+ "type": "Restricted"
411
+ },
412
+ {
413
+ "date": "2023-08-20",
414
+ "name": "Vinayaka Chaturthi (R)",
415
+ "type": "Restricted"
416
+ },
417
+ {
418
+ "date": "2023-08-29",
419
+ "name": "Onam or Thiru Onam Day (R)",
420
+ "type": "Restricted"
421
+ },
422
+ {
423
+ "date": "2023-08-30",
424
+ "name": "Raksha Bandhan (R)",
425
+ "type": "Restricted"
426
+ },
427
+ {
428
+ "date": "2023-09-06",
429
+ "name": "Janmashtami (Smarta) (R)",
430
+ "type": "Restricted"
431
+ },
432
+ {
433
+ "date": "2023-09-07",
434
+ "name": "Janmashtami (Vaishnva) (G)",
435
+ "type": "Gazetted"
436
+ },
437
+ {
438
+ "date": "2023-09-19",
439
+ "name": "Ganesh Chaturthi (R)",
440
+ "type": "Restricted"
441
+ },
442
+ {
443
+ "date": "2023-09-28",
444
+ "name": "Milad-un-Nabi or Id-e-Milad (Birthday of Prophet Mohammad) (G)",
445
+ "type": "Gazetted"
446
+ },
447
+ {
448
+ "date": "2023-10-02",
449
+ "name": "Mahatma Gandhi's Birthday (G)",
450
+ "type": "Gazetted"
451
+ },
452
+ {
453
+ "date": "2023-10-21",
454
+ "name": "Dussehra (Saptami) (R)",
455
+ "type": "Restricted"
456
+ },
457
+ {
458
+ "date": "2023-10-22",
459
+ "name": "Dussehra (Maha Ashtami) (R)",
460
+ "type": "Restricted"
461
+ },
462
+ {
463
+ "date": "2023-10-23",
464
+ "name": "Dussehra (Maha Navmi) (R)",
465
+ "type": "Restricted"
466
+ },
467
+ {
468
+ "date": "2023-10-24",
469
+ "name": "Dussehra (G)",
470
+ "type": "Gazetted"
471
+ },
472
+ {
473
+ "date": "2023-10-28",
474
+ "name": "Maharishi Valmiki's Birthday (R)",
475
+ "type": "Restricted"
476
+ },
477
+ {
478
+ "date": "2023-11-01",
479
+ "name": "Karaka Chaturthi (Karva Chouth) (R)",
480
+ "type": "Restricted"
481
+ },
482
+ {
483
+ "date": "2023-11-12",
484
+ "name": "Diwali (Deepawali) (G)",
485
+ "type": "Gazetted"
486
+ },
487
+ {
488
+ "date": "2023-11-12",
489
+ "name": "Naraka Chaturdasi (R)",
490
+ "type": "Restricted"
491
+ },
492
+ {
493
+ "date": "2023-11-13",
494
+ "name": "Govardhan Puja (R)",
495
+ "type": "Restricted"
496
+ },
497
+ {
498
+ "date": "2023-11-15",
499
+ "name": "Bhai Duj (R)",
500
+ "type": "Restricted"
501
+ },
502
+ {
503
+ "date": "2023-11-19",
504
+ "name": "Pratihar Sashthi or Surya Sashthi (Chhat Puja) (R)",
505
+ "type": "Restricted"
506
+ },
507
+ {
508
+ "date": "2023-11-24",
509
+ "name": "Guru Teg Bahadur's Martyrdom Day (R)",
510
+ "type": "Restricted"
511
+ },
512
+ {
513
+ "date": "2023-11-27",
514
+ "name": "Guru Nanak's Birthday (G)",
515
+ "type": "Gazetted"
516
+ },
517
+ {
518
+ "date": "2023-12-24",
519
+ "name": "Christmas Eve (R)",
520
+ "type": "Restricted"
521
+ },
522
+ {
523
+ "date": "2023-12-25",
524
+ "name": "Christmas Day (G)",
525
+ "type": "Gazetted"
526
+ },
527
+ {
528
+ "date": "2024-01-01",
529
+ "name": "New Year's Day (R)",
530
+ "type": "Restricted"
531
+ },
532
+ {
533
+ "date": "2024-01-13",
534
+ "name": "Lohri (R)",
535
+ "type": "Restricted"
536
+ },
537
+ {
538
+ "date": "2024-01-14",
539
+ "name": "Makar Sankranti (R)",
540
+ "type": "Restricted"
541
+ },
542
+ {
543
+ "date": "2024-01-15",
544
+ "name": "Magha Bihu/ Pongal (R)",
545
+ "type": "Restricted"
546
+ },
547
+ {
548
+ "date": "2024-01-17",
549
+ "name": "Guru Gobind Singh's Birthday (R)",
550
+ "type": "Restricted"
551
+ },
552
+ {
553
+ "date": "2024-01-25",
554
+ "name": "Hazarat Ali's Birthday (R)",
555
+ "type": "Restricted"
556
+ },
557
+ {
558
+ "date": "2024-01-26",
559
+ "name": "Republic Day (G)",
560
+ "type": "Gazetted"
561
+ },
562
+ {
563
+ "date": "2024-02-14",
564
+ "name": "Basant Panchami / Sri Panchami (R)",
565
+ "type": "Restricted"
566
+ },
567
+ {
568
+ "date": "2024-02-19",
569
+ "name": "Shivaji Jayanti (R)",
570
+ "type": "Restricted"
571
+ },
572
+ {
573
+ "date": "2024-02-24",
574
+ "name": "Guru Ravidas's Birthday (R)",
575
+ "type": "Restricted"
576
+ },
577
+ {
578
+ "date": "2024-03-06",
579
+ "name": "Swami Dayananda Saraswati Jayanti (R)",
580
+ "type": "Restricted"
581
+ },
582
+ {
583
+ "date": "2024-03-08",
584
+ "name": "Maha Shivaratri (R)",
585
+ "type": "Restricted"
586
+ },
587
+ {
588
+ "date": "2024-03-24",
589
+ "name": "Holika Dahan (R)",
590
+ "type": "Restricted"
591
+ },
592
+ {
593
+ "date": "2024-03-25",
594
+ "name": "Holi (G)",
595
+ "type": "Gazetted"
596
+ },
597
+ {
598
+ "date": "2024-03-25",
599
+ "name": "Dolyatra (R)",
600
+ "type": "Restricted"
601
+ },
602
+ {
603
+ "date": "2024-03-29",
604
+ "name": "Good Friday (G)",
605
+ "type": "Gazetted"
606
+ },
607
+ {
608
+ "date": "2024-03-31",
609
+ "name": "Easter Sunday (R)",
610
+ "type": "Restricted"
611
+ },
612
+ {
613
+ "date": "2024-04-05",
614
+ "name": "Jamat-Ul-Vida (R)",
615
+ "type": "Restricted"
616
+ },
617
+ {
618
+ "date": "2024-04-09",
619
+ "name": "Chaitra Sukladi/ Gudi Padava/ Ugadi/ Cheti Chand (R)",
620
+ "type": "Restricted"
621
+ },
622
+ {
623
+ "date": "2024-04-11",
624
+ "name": "Id-ul- Fitr (G)",
625
+ "type": "Gazetted"
626
+ },
627
+ {
628
+ "date": "2024-04-13",
629
+ "name": "Vaisakhi/ Vishu (R)",
630
+ "type": "Restricted"
631
+ },
632
+ {
633
+ "date": "2024-04-14",
634
+ "name": "Meshadi (Tamil New Year's Day) / Vaisakhadi (Bengal)/ Bahag Bihu (Assam) (R)",
635
+ "type": "Restricted"
636
+ },
637
+ {
638
+ "date": "2024-04-17",
639
+ "name": "Ram Navami (G)",
640
+ "type": "Gazetted"
641
+ },
642
+ {
643
+ "date": "2024-04-21",
644
+ "name": "Mahavir Jayanti (G)",
645
+ "type": "Gazetted"
646
+ },
647
+ {
648
+ "date": "2024-05-08",
649
+ "name": "Guru Rabindranath's Birthday (R)",
650
+ "type": "Restricted"
651
+ },
652
+ {
653
+ "date": "2024-05-23",
654
+ "name": "Buddha Purnima (G)",
655
+ "type": "Gazetted"
656
+ },
657
+ {
658
+ "date": "2024-06-17",
659
+ "name": "Id-ul-Zuha (Bakrid) (G)",
660
+ "type": "Gazetted"
661
+ },
662
+ {
663
+ "date": "2024-07-07",
664
+ "name": "Rath Yatra (R)",
665
+ "type": "Restricted"
666
+ },
667
+ {
668
+ "date": "2024-07-17",
669
+ "name": "Muharram (G)",
670
+ "type": "Gazetted"
671
+ },
672
+ {
673
+ "date": "2024-08-15",
674
+ "name": "Independence Day (G)",
675
+ "type": "Gazetted"
676
+ },
677
+ {
678
+ "date": "2024-08-15",
679
+ "name": "Parsi New Year's day / Nauraj (R)",
680
+ "type": "Restricted"
681
+ },
682
+ {
683
+ "date": "2024-08-19",
684
+ "name": "Raksha Bandhan (R)",
685
+ "type": "Restricted"
686
+ },
687
+ {
688
+ "date": "2024-08-26",
689
+ "name": "Janmashtami (Vaishnva) (G)",
690
+ "type": "Gazetted"
691
+ },
692
+ {
693
+ "date": "2024-09-07",
694
+ "name": "Ganesh Chaturthi / Vinayaka Chaturthi (R)",
695
+ "type": "Restricted"
696
+ },
697
+ {
698
+ "date": "2024-09-15",
699
+ "name": "Onam or Thiru Onam Day (R)",
700
+ "type": "Restricted"
701
+ },
702
+ {
703
+ "date": "2024-09-16",
704
+ "name": "Milad-un-Nabi or Id-e-Milad (Birthday of Prophet Mohammad) (G)",
705
+ "type": "Gazetted"
706
+ },
707
+ {
708
+ "date": "2024-10-02",
709
+ "name": "Mahatma Gandhi's Birthday (G)",
710
+ "type": "Gazetted"
711
+ },
712
+ {
713
+ "date": "2024-10-10",
714
+ "name": "Dussehra (Maha Saptami) (R)",
715
+ "type": "Restricted"
716
+ },
717
+ {
718
+ "date": "2024-10-11",
719
+ "name": "Dussehra (Maha Ashtami) / Dussehra (Maha Navmi) (R)",
720
+ "type": "Restricted"
721
+ },
722
+ {
723
+ "date": "2024-10-12",
724
+ "name": "Dussehra (G)",
725
+ "type": "Gazetted"
726
+ },
727
+ {
728
+ "date": "2024-10-17",
729
+ "name": "Maharishi Valmiki's Birthday (R)",
730
+ "type": "Restricted"
731
+ },
732
+ {
733
+ "date": "2024-10-20",
734
+ "name": "Karaka Chaturthi (Karva Chouth) (R)",
735
+ "type": "Restricted"
736
+ },
737
+ {
738
+ "date": "2024-10-31",
739
+ "name": "Diwali (Deepawali) (G)",
740
+ "type": "Gazetted"
741
+ },
742
+ {
743
+ "date": "2024-10-31",
744
+ "name": "Naraka Chaturdasi (R)",
745
+ "type": "Restricted"
746
+ },
747
+ {
748
+ "date": "2024-11-02",
749
+ "name": "Govardhan Puja (R)",
750
+ "type": "Restricted"
751
+ },
752
+ {
753
+ "date": "2024-11-03",
754
+ "name": "Bhai Duj (R)",
755
+ "type": "Restricted"
756
+ },
757
+ {
758
+ "date": "2024-11-07",
759
+ "name": "Pratihar Sashthi or Surya Sashthi (Chhat Puja) (R)",
760
+ "type": "Restricted"
761
+ },
762
+ {
763
+ "date": "2024-11-15",
764
+ "name": "Guru Nanak's Birthday (G)",
765
+ "type": "Gazetted"
766
+ },
767
+ {
768
+ "date": "2024-11-24",
769
+ "name": "Guru Teg Bahadur's Martyrdom Day (R)",
770
+ "type": "Restricted"
771
+ },
772
+ {
773
+ "date": "2024-12-24",
774
+ "name": "Christmas Eve (R)",
775
+ "type": "Restricted"
776
+ },
777
+ {
778
+ "date": "2024-12-25",
779
+ "name": "Christmas Day (G)",
780
+ "type": "Gazetted"
781
+ },
782
+ {
783
+ "date": "2025-01-01",
784
+ "name": "New Year's Day (R)",
785
+ "type": "Restricted"
786
+ },
787
+ {
788
+ "date": "2025-01-06",
789
+ "name": "Guru Gobind Singh's Birthday (R)",
790
+ "type": "Restricted"
791
+ },
792
+ {
793
+ "date": "2025-01-14",
794
+ "name": "Makar Sankranti/ Magha Bihu/ Pongal/ Hazarat Ali's Birthday (R)",
795
+ "type": "Restricted"
796
+ },
797
+ {
798
+ "date": "2025-01-26",
799
+ "name": "Republic Day (G)",
800
+ "type": "Gazetted"
801
+ },
802
+ {
803
+ "date": "2025-02-02",
804
+ "name": "Basant Panchami / Sri Panchami (R)",
805
+ "type": "Restricted"
806
+ },
807
+ {
808
+ "date": "2025-02-12",
809
+ "name": "Guru Ravidas's Birthday (R)",
810
+ "type": "Restricted"
811
+ },
812
+ {
813
+ "date": "2025-02-19",
814
+ "name": "Shivaji Jayanti (R)",
815
+ "type": "Restricted"
816
+ },
817
+ {
818
+ "date": "2025-02-23",
819
+ "name": "Swami Dayananda Saraswati Jayanti (R)",
820
+ "type": "Restricted"
821
+ },
822
+ {
823
+ "date": "2025-02-26",
824
+ "name": "Maha Shivaratri (G)",
825
+ "type": "Gazetted"
826
+ },
827
+ {
828
+ "date": "2025-03-13",
829
+ "name": "Holika Dahan (R)",
830
+ "type": "Restricted"
831
+ },
832
+ {
833
+ "date": "2025-03-14",
834
+ "name": "Holi (G)",
835
+ "type": "Gazetted"
836
+ },
837
+ {
838
+ "date": "2025-03-14",
839
+ "name": "Dolyatra (R)",
840
+ "type": "Restricted"
841
+ },
842
+ {
843
+ "date": "2025-03-28",
844
+ "name": "Jamat-Ul-Vida (R)",
845
+ "type": "Restricted"
846
+ },
847
+ {
848
+ "date": "2025-03-30",
849
+ "name": "Chaitra Sukladi/ Gudi Padava/ Ugadi/ Cheti Chand (R)",
850
+ "type": "Restricted"
851
+ },
852
+ {
853
+ "date": "2025-03-31",
854
+ "name": "Id-ul-Fitr (G)",
855
+ "type": "Gazetted"
856
+ },
857
+ {
858
+ "date": "2025-04-06",
859
+ "name": "Ram Navami (R)",
860
+ "type": "Restricted"
861
+ },
862
+ {
863
+ "date": "2025-04-10",
864
+ "name": "Mahavir Jayanti (G)",
865
+ "type": "Gazetted"
866
+ },
867
+ {
868
+ "date": "2025-04-13",
869
+ "name": "Vaisakhi/ Vishu (R)",
870
+ "type": "Restricted"
871
+ },
872
+ {
873
+ "date": "2025-04-14",
874
+ "name": "Meshadi (Tamil New Year's Day) (R)",
875
+ "type": "Restricted"
876
+ },
877
+ {
878
+ "date": "2025-04-15",
879
+ "name": "Vaisakhadi (Bengal)/ Bahag Bihu (Assam) (R)",
880
+ "type": "Restricted"
881
+ },
882
+ {
883
+ "date": "2025-04-18",
884
+ "name": "Good Friday (G)",
885
+ "type": "Gazetted"
886
+ },
887
+ {
888
+ "date": "2025-04-20",
889
+ "name": "Easter Sunday (R)",
890
+ "type": "Restricted"
891
+ },
892
+ {
893
+ "date": "2025-05-09",
894
+ "name": "Guru Rabindranath's Birthday (R)",
895
+ "type": "Restricted"
896
+ },
897
+ {
898
+ "date": "2025-05-12",
899
+ "name": "Buddha Purnima (G)",
900
+ "type": "Gazetted"
901
+ },
902
+ {
903
+ "date": "2025-06-07",
904
+ "name": "Id-ul-Zuha (Bakrid) (G)",
905
+ "type": "Gazetted"
906
+ },
907
+ {
908
+ "date": "2025-06-27",
909
+ "name": "Rath Yatra (R)",
910
+ "type": "Restricted"
911
+ },
912
+ {
913
+ "date": "2025-07-06",
914
+ "name": "Muharram (G)",
915
+ "type": "Gazetted"
916
+ },
917
+ {
918
+ "date": "2025-08-09",
919
+ "name": "Raksha Bandhan (R)",
920
+ "type": "Restricted"
921
+ },
922
+ {
923
+ "date": "2025-08-15",
924
+ "name": "Independence day (G)",
925
+ "type": "Gazetted"
926
+ },
927
+ {
928
+ "date": "2025-08-15",
929
+ "name": "Parsi New Year's day/ Nauraj (R)",
930
+ "type": "Restricted"
931
+ },
932
+ {
933
+ "date": "2025-08-15",
934
+ "name": "Janmashtami (Smarta) (R)",
935
+ "type": "Restricted"
936
+ },
937
+ {
938
+ "date": "2025-08-16",
939
+ "name": "Janmashtami (G)",
940
+ "type": "Gazetted"
941
+ },
942
+ {
943
+ "date": "2025-08-27",
944
+ "name": "Ganesh Chaturthi / Vinayaka Chaturthi (R)",
945
+ "type": "Restricted"
946
+ },
947
+ {
948
+ "date": "2025-09-05",
949
+ "name": "Milad-un-Nabi or Id-e-Milad (Birthday of Prophet Mohammad) (G)",
950
+ "type": "Gazetted"
951
+ },
952
+ {
953
+ "date": "2025-09-05",
954
+ "name": "Onam or Thiru Onam Day (R)",
955
+ "type": "Restricted"
956
+ },
957
+ {
958
+ "date": "2025-09-29",
959
+ "name": "Dussehra (Maha Saptami) (R)",
960
+ "type": "Restricted"
961
+ },
962
+ {
963
+ "date": "2025-09-30",
964
+ "name": "Dussehra (Maha Ashtami) (R)",
965
+ "type": "Restricted"
966
+ },
967
+ {
968
+ "date": "2025-10-01",
969
+ "name": "Dussehra (Maha Navmi) (R)",
970
+ "type": "Restricted"
971
+ },
972
+ {
973
+ "date": "2025-10-02",
974
+ "name": "Mahatma Gandhi's Birthday (G)",
975
+ "type": "Gazetted"
976
+ },
977
+ {
978
+ "date": "2025-10-02",
979
+ "name": "Dussehra (G)",
980
+ "type": "Gazetted"
981
+ },
982
+ {
983
+ "date": "2025-10-07",
984
+ "name": "Maharishi Valmiki's Birthday (R)",
985
+ "type": "Restricted"
986
+ },
987
+ {
988
+ "date": "2025-10-10",
989
+ "name": "Karaka Chaturthi (Karva Chouth) (R)",
990
+ "type": "Restricted"
991
+ },
992
+ {
993
+ "date": "2025-10-20",
994
+ "name": "Diwali (Deepawali) (G)",
995
+ "type": "Gazetted"
996
+ },
997
+ {
998
+ "date": "2025-10-20",
999
+ "name": "Naraka Chaturdasi (R)",
1000
+ "type": "Restricted"
1001
+ },
1002
+ {
1003
+ "date": "2025-10-22",
1004
+ "name": "Govardhan Puja (R)",
1005
+ "type": "Restricted"
1006
+ },
1007
+ {
1008
+ "date": "2025-10-23",
1009
+ "name": "Bhai Duj (R)",
1010
+ "type": "Restricted"
1011
+ },
1012
+ {
1013
+ "date": "2025-10-28",
1014
+ "name": "Pratihar Sashthi or Surya Sashthi (Chhat Puja) (R)",
1015
+ "type": "Restricted"
1016
+ },
1017
+ {
1018
+ "date": "2025-11-05",
1019
+ "name": "Guru Nanak's Birthday (G)",
1020
+ "type": "Gazetted"
1021
+ },
1022
+ {
1023
+ "date": "2025-11-24",
1024
+ "name": "Guru Teg Bahadur's Martyrdom Day (R)",
1025
+ "type": "Restricted"
1026
+ },
1027
+ {
1028
+ "date": "2025-12-24",
1029
+ "name": "Christmas Eve (R)",
1030
+ "type": "Restricted"
1031
+ },
1032
+ {
1033
+ "date": "2025-12-25",
1034
+ "name": "Christmas Day (G)",
1035
+ "type": "Gazetted"
1036
+ }
1037
+ ]
lgb_occupancy_model.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:20f040df4e078a3a10a99049a94777ce5509c63fa739737819620de58a530bcf
3
+ size 10286417
requirements.txt ADDED
Binary file (2.35 kB). View file
 
scaler.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:883d18e8fad40f2bd5bf808e6190e377f65fe259981f2c8df74b1eaba8480921
3
+ size 2031