Metadata-Version: 2.1
Name: workforcerappi
Version: 0.1.0
Description-Content-Type: text/markdown
Requires-Dist: pandas ==2.1.4
Requires-Dist: numpy ==1.26.4
Requires-Dist: scikit-learn ==1.3.2
Requires-Dist: xgboost ==2.0.3
Requires-Dist: snowflake-connector-python ==3.7.1
Requires-Dist: snowflake-snowpark-python ==1.13.0
Requires-Dist: pyarrow ==16.1.0

# Rappi's Workforce Team Data Analytics and Forecasting

This Python package provides functionality for data analysis and forecasting for Rappi's Workforce Management (WFM) system.

## Installation

You can install the package using pip:

```bash
pip install workforcerappi


# #The package includes functions for processing and preparing data for analysis.

# importar librerias
from workforcerappi import data_processing as dp, modeling, order_distribution as od
import pandas as pd

# definir parametros
month="Agosto"
startdate = "2024-03-01"
FEATURES = ['dayofweek', 'quarter', 'month', 'year', 'dayofyear', 'dayofmonth', 'weekofyear']
year_month="2024-08"
TARGET = "SS" # or "BR"
SERVICE_USER_TYPE="Users"
SERVICE="Customer Live Orders"
REGION="SS" # or "BR"
concurrencia = 2  # concurrencia del servicio
sla = 0.8  # nivel de servicio
meta_aht = 10  
date_range=['2023-01-01', '2024-05-31']  

df_ordered = dp.read_and_sort_orders(date_range)
csv_path = "C:/Users/jonathan.marin/Documents/GitHub/rappi/wfm/Calendario Rappi - BD_Feriados.csv"
special = pd.read_csv(csv_path)
special=special.filter(['PAIS', 'FERIADO', 'Fecha', 'Criticidad'])
special['Fecha'] = pd.to_datetime(special['Fecha'], format='%d/%m/%Y').dt.date
special = special[special["PAIS"].isin(["CO","MX"])]
special = special[special["Criticidad"] == "Alto"]
special_days = special["Fecha"].to_list()

df_filtered = dp.filter_special_dates(df_ordered, special_days)

orders = dp.pivot_orders(df_filtered,REGION)
data = orders.set_index("FECHA")
train, test = dp.split_train_test_data(data, startdate)
train = dp.create_features(train)
test = dp.create_features(test)

X_train = train[FEATURES]
y_train = train[TARGET]
X_test = test[FEATURES]
y_test = test[TARGET]
model = modeling.train_xgboost_model(X_train, y_train, X_test, y_test)
predictions = modeling.make_predictions(model, X_test)
test['prediction'] = predictions

predictions = dp.create_future_predictions(model, FEATURES, '2024-08-01','2024-08-31', 'D')
month_to_predict = predictions
ordenes_financieras = od.create_ordenes_financieras(df_ordered, month_to_predict, ordenes_aprobadas=None, REGION=REGION , year_month=year_month)
curva_ordenes = od.create_curva_ordenes(df_ordered,REGION)
df3 = od.distribute_orders(ordenes_financieras, curva_ordenes)
print(df3.head())
# ajustar dias de festividades
# valor_a_ajustar = 1.30
# df3.loc[df3["FECHA"] == "2024-08-07", "CO"] *= valor_a_ajustar

inflow = dp.read_cr_aht(date_range)

result=od.distribute_inflow_intraday(inflow, df3, SERVICE_USER_TYPE, SERVICE, REGION)
result2 = od.distribute_aht_intraday(inflow, df3, SERVICE_USER_TYPE, SERVICE,REGION, result, meta_aht)

required_headcount_df = od.hc(result,result2,sla, concurrencia)
print(required_headcount_df.head(1))
print("Done!")

# License
# This project is licensed under a private license by Rappi Inc. Unauthorized copying, distribution, or modification of this project, via any medium, is strictly prohibited. For more details, please contact the legal department at Rappi.

## Contact Information
# For licensing inquiries, please reach out to:
# * **Email: legal@rappi.com**

# Â© 2024 Rappi Inc. Todos los derechos reservados
