# 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.