54 lines
2.8 KiB
Markdown
54 lines
2.8 KiB
Markdown
# presupuestos_callcenter
|
|
|
|
Atribución de presupuestos generados por call_center → factura.
|
|
|
|
## Hipótesis
|
|
|
|
1. Agentes del call_center generan presupuestos (`tpv_orders_quote`) para un cliente identificado por `(customer_id, vehicle_id)` (matrícula + tlf vía joins).
|
|
2. El cliente luego acude a un centro físico. Allí:
|
|
- **Acepta el quote del call_center** → mismo `order_id` → invoice. CONVIERTE.
|
|
- **Genera quote nuevo en TPV centro** → otro `order_id` → invoice. REGENERA y convierte.
|
|
- **No vuelve** → quote sin invoice.
|
|
3. La facturación total a esos clientes en el centro suele ser mayor que el valor del quote inicial (productos/servicios adicionales que el técnico añade en recepción).
|
|
|
|
## Datasets
|
|
|
|
| Origen | Tabla / propósito |
|
|
|---|---|
|
|
| `psql_dcpublic.tpv_orders_quote` | Quote raw — `created_by_id`, `order_id`, `accepted`, `status` |
|
|
| `psql_dcpublic.tpv_authorization_tpvuser` | Users TPV. ID = `created_by_id` |
|
|
| `psql_dcpublic.tpv_authorization_tpvuser_centers` | Mapeo user ↔ centro (`dccenter_id`) |
|
|
| `psql_dcpublic.centers` | Catálogo centros. **id 159 (CALL CENTER AURGI) e id 162 (CALL CENTER)** son los centros call_center |
|
|
| `psql_dcpublic.tpv_orders_order` | Order. `customer_id`, `vehicle_id`, `terminal_id`, `total_cost` |
|
|
| `psql_dcpublic.tpv_terminals` | Mapeo `terminal_id → center_id` |
|
|
| `psql_dcpublic.tpv_orders_invoice` | Invoice. Match con order via `order_id` |
|
|
| `psql_dcpublic.tpv_customers.entity_phone_number` | Tlf cliente |
|
|
| `psql_dcpublic.tpv_vehicles_vehicle.license_plate` | Matrícula |
|
|
|
|
## Notebooks
|
|
|
|
1. **`01_exploracion.ipynb`** — schemas, sanity counts, conversion rate global.
|
|
2. **`02_metricas_3kpi.ipynb`** — A/B/C por centro:
|
|
- A = € facturados de quotes call_center que CONVIRTIERON (mismo order_id).
|
|
- B = € facturados al mismo `(customer_id, vehicle_id)` en centro (excluye call_center).
|
|
- C = € totales del centro.
|
|
3. **`03_regeneracion.ipynb`** — Q0 (call_center) vs Q1+ (centro). Centros que más regeneran, distribución temporal, impacto en conversión.
|
|
|
|
## Identidad cliente
|
|
|
|
Por defecto `(customer_id, vehicle_id)` (FK estables). Si necesitas normalizar via tlf+matrícula:
|
|
|
|
```sql
|
|
JOIN `psql_dcpublic.tpv_customers` cus ON o.customer_id = cus.id
|
|
JOIN `psql_dcpublic.tpv_vehicles_vehicle` v ON o.vehicle_id = v.id
|
|
-- cus.entity_phone_number, v.license_plate
|
|
```
|
|
|
|
Ventana temporal default: 90 días sobre Q0, 60 días para detectar regeneración posterior. Editar `WINDOW_DAYS` / `REGEN_WINDOW_DAYS` arriba en cada notebook.
|
|
|
|
## Próximos pasos
|
|
|
|
- Validar que `created_by_id` no es null en todos los quotes call_center.
|
|
- Refinar identidad cliente con normalización de teléfono (la BI views `*_telefono_normalizado` existen).
|
|
- Si la métrica B es estable, candidatos a dashboard Metabase paralelo al 999.
|