root@emercom · diagnóstico · Procesos · 05-finanzas

AS-IS · Finanzas y EDP

fuente: diagnostico/as-is/05-finanzas-edp.md

AS-IS — Finanzas y EDP

1. Resumen ejecutivo (≤10 líneas)

Finanzas de Workmed reconoce ingresos sobre producción devengada (no sobre facturación) y cobra mediante el ciclo Estado de Pago (EDP) → Orden de Compra → Factura. La pila combina cuatro piezas: la producción se descarga de FlowMed/Secall, se valoriza con un script Python local (~2.553 líneas, autoría Rodrigo Llancao, ejecutado por Ignacio Ahumada) [Finanzas-20260416 43:32; Recaudacion-20260423 1:30:35], Belén corre una macro Excel que arma carátulas y carpetas por cliente [Recaudacion-20260423 37:03, 37:59], el seguimiento vive en un HubSpot "torcido" [Finanzas-20260416 32:35] y la facturación e ingresos van por Defontana (implementado en enero 2025 tras el fracaso de NetSuite) [Finanzas-20260416 31:39, 32:07]. El equipo procesa 300-400 EDPs/mes, despacha la tanda en ~2 días hábiles y tiene 8 días corridos de plazo legal para evitar el rechazo de la factura [Recaudacion-20260423 6:06, 10:26]. El proceso empieza con la producción cerrada por Contraloría y termina con la emisión de factura (handoff a Recaudación). El dolor de fondo no nace en Finanzas: viene de errores arrastrados desde Comercial y Agendamiento [Finanzas-20260416 25:53], y el ciclo EDP los amplifica porque cada error upstream cuesta 5 días por iteración con el cliente.

2. Lógica de Negocio

2.1 Actores y roles

2.2 Eventos disparadores

2.3 Pasos del proceso (frontera AS-IS)

  1. Descarga de producción mensual desde FlowMed (módulo "control de pago") vía la read-replica de Secall en AWS [Finanzas-20260416 4:22, 43:32; Recaudacion-20260423 1:16:18].
  2. Ejecución del script Python (Rodrigo/Ignacio): aplica precios por tramo, precios de lista, precio unitario, descuentos por grupo y depuración de empresas (variantes del mismo RUT con puntos, comas, X). Procesa en ~18 segundos [Finanzas-20260416 43:32, 44:08; Recaudacion-20260423 1:30:35, 1:31:31, 1:39:12].
  3. Cruce manual con correos de SAC, agendamiento, ejecutivos comerciales y contratos para validar descuentos especiales [Finanzas-20260416 44:27, 44:53].
  4. Macro Excel de carátula (Belén): toma el archivo Python y arma una carpeta madre con subcarpetas por cliente, distribuida vía SharePoint/correo a analistas [Recaudacion-20260423 37:03, 37:59].
  5. Revisión caso a caso por equipo de facturación (precios aplicados, centros de costo, tipos de cobro) [Finanzas-20260416 41:44].
  6. Reconocimiento contable en Defontana: la producción se carga como ingreso contra cuenta de activo "Estados de pago por facturar"; al facturar se mueve a "Deudores comerciales" [Finanzas-20260416 23:57, 24:27].
  7. Carga del EDP en HubSpot como "negocio" con 4-5 estados (Cargado → Enviado → OC recibida → Facturado) [Finanzas-20260416 32:35, 33:02; Recaudacion-20260423 5:41, 9:57].
  8. Envío al cliente de la carátula con adhesiones por sucursal + detalle por persona + código de solicitud de agendamiento + fecha [Finanzas-20260416 17:51].
  9. Ciclo de "peloteo" con el cliente — observaciones, correcciones de centro de costo, tipo de cobro mal asignado, batería con nombre distinto al del cliente [Finanzas-20260416 5:16, 18:42].
  10. Recepción de la OC del cliente, gestionada por la ejecutiva de cobranza con apoyo de los ejecutivos comerciales [Finanzas-20260416 5:16, 33:33].
  11. Emisión de factura en Defontana → handoff a Recaudación / cobranza [Finanzas-20260416 5:16; Recaudacion-20260423 6:34].

2.4 Reglas de negocio (RN)

2.5 Excepciones, contradicciones y casos borde

2.6 KPIs y SLAs declarados

2.7 Sistemas y handoffs

Handoffs entrantes:

Handoffs salientes:

3. Historias de Usuario (5-12 con Gherkin)

HU-FIN-01 — Valorización mensual de producción (Ignacio)

Como analista de valorización (Ignacio Ahumada), Quiero descargar la producción del mes desde FlowMed/Secall y aplicar los precios por tramo automáticamente, Para entregar a Facturación un archivo valorizado en horas en lugar de días.

Funcionalidad: Valorización mensual con script Python
  Antecedentes:
    Dado que la producción del mes está disponible en FlowMed/Secall
    Y que el script Python (Rodrigo) está accesible
  Escenario: Corrida exitosa
    Cuando ejecuto el script contra la read-replica AWS
    Entonces el script aplica precios por tramo, lista, unitario y grupo
    Y depura las variantes del mismo RUT (puntos, comas, X)
    Y entrega un archivo valorizado en ~18 segundos
  Escenario: Producción retroactiva
    Cuando un laboratorio externo reporta atenciones de un mes ya cerrado
    Entonces hago una segunda descarga y comparo "detectivescamente" con la primera
    Y reporto las diferencias a la supervisora de Facturación (Belén)

Citas: [Finanzas-20260416 43:32, 44:08; Recaudacion-20260423 1:30:35, 1:33:37, 1:35:04].

HU-FIN-02 — Cierre de mes con cruce manual de correos (Ignacio)

Como analista de valorización, Quiero validar los descuentos especiales contra los correos de SAC, agendamiento y comerciales, Para que el EDP refleje los acuerdos comerciales reales antes de enviar al cliente.

Funcionalidad: Cruce manual de correos
  Escenario: Descuento especial registrado
    Dado un EDP con producción Syncore
    Cuando reviso los correos de SAC y comerciales del mes
    Y encuentro un acuerdo de 16% sobre 750 personas
    Entonces aplico el descuento manualmente en el archivo final
    Y dejo evidencia del correo en la subcarpeta del cliente
  Escenario: Correo no recibido
    Dado un descuento acordado verbalmente con el cliente
    Cuando el correo no llega a Ignacio
    Entonces el EDP sale sin el descuento
    Y el cliente "pelotea" hasta que se corrige (5+ días perdidos)

Citas: [Finanzas-20260416 44:27, 44:53; 5:16, 18:42].

HU-FIN-03 — Armado de carátulas EDP con macro Excel (Belén)

Como supervisora de Facturación (Belén), Quiero correr la macro Excel mensual para generar carpetas y carátulas por cliente, Para distribuir el trabajo entre los analistas de cartera respetando la política "nadie toca clientes que no son de ellos".

Funcionalidad: Generación de carátulas mensuales
  Escenario: Distribución a analistas
    Dado el archivo valorizado entregado por Ignacio
    Cuando ejecuto la macro Excel de carátula
    Entonces se genera una carpeta madre con subcarpetas por cliente
    Y cada subcarpeta queda lista en SharePoint
    Y cada analista recibe por correo solo las carpetas de su cartera
  Escenario: Volumen de archivo grande
    Dado un EDP con 957 a 3.000 filas
    Cuando la macro genera la carátula
    Entonces queda lista para subir como nota de venta a Defontana

Citas: [Recaudacion-20260423 37:03, 37:32, 37:59, 25:00].

HU-FIN-04 — Reconocimiento contable de ingresos en Defontana

Como Contabilidad, Quiero registrar la producción mensual como ingreso devengado en Defontana, Para mantener los estados financieros sobre base devengada de producción (no de facturación).

Funcionalidad: Reconocimiento contable EDP
  Escenario: Producción reconocida como ingreso
    Dado el EDP valorizado del mes
    Cuando lo cargo en Defontana como nota de venta
    Entonces se reconoce el ingreso (ej.: $1.500M de producción → $1.500M de ingreso)
    Y se contraviene a la cuenta de activo "Estados de pago por facturar"
  Escenario: Movimiento por facturación
    Cuando se emite la factura del cliente
    Entonces el monto se mueve desde "Estados de pago por facturar"
    Y va a la cuenta "Deudores comerciales"

Citas: [Finanzas-20260416 23:57, 24:27].

HU-FIN-05 — Carga de EDP en pipeline HubSpot (analista de cartera)

Como analista de Facturación de cartera, Quiero cargar cada EDP en HubSpot como "negocio" con sus 4-5 estados, Para trazar el ciclo Cargado → Enviado → OC → Facturado y registrar las gestiones de cobranza.

Funcionalidad: Pipeline EDP en HubSpot
  Escenario: Avance del estado
    Dado un EDP recién armado
    Cuando lo cargo en HubSpot
    Entonces queda en estado "Cargado"
    Y al enviar la carátula al cliente avanza a "Enviado al cliente"
    Y al recibir la OC avanza a "OC recibida"
    Y al emitir la factura avanza a "Facturado"
  Escenario: Política de cartera
    Dado un cliente cuya cartera es de la analista A
    Cuando el cliente llama buscando información
    Entonces solo la analista A puede modificar el negocio
    Y nadie más toca clientes que no son de ellos

Citas: [Finanzas-20260416 32:35, 33:02; Recaudacion-20260423 5:41, 9:57, 37:32].

HU-FIN-06 — Envío de carátula al cliente (analista de cartera)

Como analista de Facturación, Quiero enviar al cliente la carátula con adhesiones por sucursal + detalle por persona + código de solicitud, Para habilitar la validación del EDP por parte del jefe de proyecto del cliente.

Funcionalidad: Envío de carátula
  Escenario: Cliente único
    Dado un EDP consolidado
    Cuando envío la carátula al cliente
    Entonces incluyo adhesiones por sucursal
    Y detalle por persona con código y fecha de solicitud de agendamiento
  Escenario: Cliente pide EDPs separados
    Dado un cliente que solicita EDPs por centro de costo
    Cuando armo la carátula
    Entonces genero un EDP por centro de costo (no consolidado)
    Y los envío en paralelo

Citas: [Finanzas-20260416 17:51; Recaudacion-20260423 21:15].

HU-FIN-07 — Peloteo del EDP con el cliente (analista + ejecutivo comercial)

Como analista de Facturación, Quiero procesar las observaciones del cliente sobre el EDP, Para llegar a la aceptación que habilita la OC y la facturación.

Funcionalidad: Ciclo de peloteo
  Antecedentes:
    Dado que el cliente recibió la carátula del EDP
  Escenario: Observación de centro de costo
    Cuando el cliente devuelve una observación de centro de costo equivocado
    Entonces reabro el agendamiento original para revisar
    Y corrijo el centro de costo
    Y reenvío la carátula corregida (5 días por iteración)
  Escenario: Demora extrema
    Dado un cliente con flujo de OC complejo (varias firmas, vacaciones)
    Cuando el cliente demora hasta 2 meses en validar
    Entonces el EDP queda en pipeline HubSpot sin avanzar a "OC recibida"
    Y el ingreso reconocido en Defontana sigue en "Estados de pago por facturar"

Citas: [Finanzas-20260416 5:16, 18:42; Recaudacion-20260423 15:08, 16:36, 31:30].

HU-FIN-08 — Recepción de OC y emisión de factura (analista + Defontana)

Como analista de Facturación, Quiero emitir la factura una vez recibida la OC del cliente, Para cerrar el ciclo EDP→Factura y traspasar a Recaudación.

Funcionalidad: Emisión de factura
  Escenario: OC recibida en plazo
    Dado un EDP en estado "OC recibida" en HubSpot
    Cuando emito la factura en Defontana
    Entonces el negocio avanza a estado "Facturado"
    Y empieza a contar el plazo legal de 8 días para rechazo
    Y se traspasa el caso al pipeline de Cobranza
  Escenario: Cliente sin OC
    Dado un EDP aceptado pero sin OC
    Cuando el ejecutivo comercial gestiona la OC con el cliente
    Entonces el equipo comercial registra la gestión en HubSpot
    Y el caso permanece en "Enviado al cliente" hasta obtener la OC

Citas: [Finanzas-20260416 5:16, 33:02, 33:33; Recaudacion-20260423 6:34, 10:26].

HU-FIN-09 — Proyección diaria de avance comercial (Ignacio + Power BI)

Como Finanzas / gerencia, Quiero ver la producción valorizada del día contra el presupuesto y los días hábiles, Para anticipar el cierre del mes en Power BI antes de la facturación.

Funcionalidad: Dashboard diario en Power BI
  Escenario: Carga rutinaria
    Dado el ciclo diario de Ignacio (~30-60 min en la mañana)
    Cuando se actualiza el archivo Python
    Entonces Power BI muestra avance vs presupuesto y días hábiles
  Escenario: Diferencia con facturación final
    Dada producción a precio de lista en Power BI
    Cuando Facturación aplica reglas especiales de descuento
    Entonces la facturación final difiere de la proyección
    Y la gerencia toma decisiones con visión distorsionada

Citas: [Finanzas-20260416 7:03, 7:34, 42:13, 42:39].

HU-FIN-10 — Centralización Buk-Defontana (Contabilidad)

Como Contabilidad, Quiero centralizar mensualmente la nómina (Buk) en Defontana, Para consolidar los gastos de personal en el ERP financiero.

Funcionalidad: Centralización de nómina
  Escenario: Centralización manual actual
    Dado el cierre mensual de Buk
    Cuando Contabilidad procesa la centralización
    Entonces se hace de forma manual (sin integración automática)
  Escenario: Estado deseado pendiente
    Dado el proyecto de centralización Buk-Defontana
    Cuando se complete la integración
    Entonces se eliminará el trabajo manual
    Y se reducirá el error de transcripción

Citas: [Finanzas-20260416 25:23].

4. Diagrama BPMN (Mermaid) — ciclo EDP

flowchart TD
  start(("Inicio:<br/>producción cerrada<br/>por Contraloría"))

  prod["Descarga producción mensual<br/>desde FlowMed/Secall<br/>(Ignacio Ahumada)"]
  python["Script Python valorización<br/>(Rodrigo / Ignacio, ~18 s)<br/>precios por tramo + descuentos"]
  cruce["Cruce manual con correos<br/>SAC / agendamiento / comerciales"]
  macro["Macro Excel carátula<br/>(Belén)<br/>carpetas por cliente"]
  rev["Revisión caso a caso<br/>analistas de cartera"]

  conta["Reconocimiento contable<br/>en Defontana<br/>nota de venta = ingreso"]
  hubspot_carga["Carga EDP en HubSpot<br/>estado: Cargado"]

  envio["Envío de carátula<br/>al cliente"]
  hubspot_envio["HubSpot: Enviado al cliente"]

  cliente_rev{{"Cliente revisa EDP"}}
  obs["Observaciones / peloteo<br/>5 días por iteración"]

  oc{{"¿OC recibida?"}}
  hubspot_oc["HubSpot: OC recibida"]

  factura["Emisión de factura<br/>en Defontana"]
  hubspot_fact["HubSpot: Facturado<br/>plazo legal 8 días"]

  fin(("Handoff a<br/>Recaudación / Cobranza"))

  start --> prod
  prod --> python
  python --> cruce
  cruce --> macro
  macro --> rev
  rev --> conta
  conta --> hubspot_carga
  hubspot_carga --> envio
  envio --> hubspot_envio
  hubspot_envio --> cliente_rev
  cliente_rev -->|"acepta"| oc
  cliente_rev -->|"observa"| obs
  obs --> rev
  oc -->|"sí"| hubspot_oc
  oc -->|"no, gestiona comercial"| envio
  hubspot_oc --> factura
  factura --> hubspot_fact
  hubspot_fact --> fin

Notas del diagrama:

5. Trazabilidad

IDTipoDescripción cortaHU asociadasCitas
RN-FIN-01RNReconocimiento de ingresos sobre producción devengadaHU-FIN-04[Finanzas-20260416 23:57, 24:27]
RN-FIN-02RNTramos de descuento (volumen 5/10/12% en 100/200/500 pacientes) + lista + unitario + grupoHU-FIN-01, HU-FIN-02[Comercial-20260420 27:34; Recaudacion-20260423 1:31:31, 1:34:06]
RN-FIN-03RNPlazo legal 8 días corridos para rechazo de facturaHU-FIN-08[Recaudacion-20260423 10:26]
RN-FIN-04RNCiclo EDP ~5 días por iteración clienteHU-FIN-07[Finanzas-20260416 5:16; 00-mapa-cruzado §5.5]
RN-FIN-05RNCierre de mes "blando" — producción retroactivaHU-FIN-01[Finanzas-20260416 7:34, 8:27]
RN-FIN-06RN"Nadie toca clientes que no son de ellos"HU-FIN-05[Recaudacion-20260423 37:32]
RN-FIN-07RNAprobación de OC por monto ($1M / $1M-$3M / >$3M / comité)HU-FIN-08[Abastecimiento-20260423 37:14, 37:42]
RN-FIN-08RNHubSpot: cuentas separadas Finanzas / ComercialHU-FIN-05[Finanzas-20260416 34:00]
RN-FIN-09RNProducción no llega antes del día 5-6; últimos EDPs salen día 9HU-FIN-03[Recaudacion-20260423 36:33]
RN-FIN-10RNTamaño facturas $20M-$40M (extremos $300M-$400M); ~$300k/personaHU-FIN-04, HU-FIN-08[Recaudacion-20260423 30:09, 31:05]
EX-FIN-01EXAtención en laboratorio externo no integrado: imposible cobrarHU-FIN-02[Finanzas-20260416 8:04, 8:27]
EX-FIN-02EXProducción retroactiva descalza meses cerradosHU-FIN-01[Recaudacion-20260423 1:33:37]
EX-FIN-03EXNegociación verbal sin contrato en ERPHU-FIN-02, HU-FIN-07[Finanzas-20260416 3:08, 15:01]
EX-FIN-04EXCentro de costo malformado (100A / 100 espacio A)HU-FIN-07[Finanzas-20260416 3:35]
EX-FIN-05EXCliente con nomenclatura propia de bateríasHU-FIN-06[Finanzas-20260416 10:16]
EX-FIN-06EXCliente pide EDPs separados (centro de costo / solicitante)HU-FIN-06[Recaudacion-20260423 21:15]
EX-FIN-07EXCambios post-agendamiento obligan a recortar EDPHU-FIN-07[Recaudacion-20260423 14:11, 20:18]
EX-FIN-08EXSobre-reporte de centros acreditados: cliente rechaza EDPHU-FIN-07[Recaudacion-20260423 56:07]
C-6.5ContradicciónIniciativa valorización FlowMed: lista pero abandonada hace ~6 mesesHU-FIN-01[00-mapa-cruzado §6.5; Recaudacion-20260423 38:29, 41:43]
C-6.9ContradicciónScript Python: GitHub personal Ignacio (F5) vs Rodrigo autor (F11)HU-FIN-01[00-mapa-cruzado §6.9; Finanzas-20260416 45:17; Recaudacion-20260423 1:30:35]
KPI-1KPI300-400 EDPs/mesHU-FIN-03, HU-FIN-05[Recaudacion-20260423 6:06]
KPI-2KPI~2 días hábiles para despachar todos los EDPsHU-FIN-03[Recaudacion-20260423 6:06]
KPI-3KPI1 a 1,5 días — cierre de mes (producción final)HU-FIN-01[Finanzas-20260416 41:22]
KPI-4KPI~18 segundos — script PythonHU-FIN-01[Finanzas-20260416 43:32]
KPI-5KPIEquipo Finanzas ~22-23 personasHU-FIN-05[Finanzas-20260416 45:47]
KPI-6KPIVolumen archivo EDP 957-3.000 filasHU-FIN-03[Recaudacion-20260423 25:00]
KPI-7KPIProducción valorizada diaria a precio de listaHU-FIN-09[Finanzas-20260416 7:03, 42:39]

Notas de solape con otros AS-IS (a documentar al consolidar):