Fuentes de datos
El informe integra dos fuentes de información exportadas desde ActiveCollab y el sistema de facturación interno:
  • Horas trabajadas — export.csv (2025) y 2026.csv (2026): registros de tiempo por persona, cliente, proyecto y tarea
  • Ingresos facturados — ingresos-2025.csv e ingresos-2026.csv: facturas emitidas con montos, estado de cobro y tipo de proyecto
Proceso de generación
El script generate_report.py procesa los CSV y genera el HTML con Chart.js:
  1. Parseo de horas — lee el CSV de ActiveCollab, maneja filas multilinea, filtra por año y clasifica horas como internas (Bloom User Experience) o externas
  2. Parseo de ingresos — lee el CSV de facturación, convierte montos CLP a números, filtra por mes de emisión y clasifica por estado (pagada/emitida/proyectada)
  3. Cruce de datos — mapea nombres de clientes entre ambas fuentes (ej: "Universidad de Concepción" → "UDEC") y calcula $/hora por cliente
  4. Cálculo de métricas — agrega por persona/mes, cliente, tarea; calcula promedios semanales brutos y ajustados (excluyendo semanas sin actividad)
  5. Generación HTML — produce un reporte autocontenido con CSS, tablas y gráficos Chart.js
Estructura del informe
Cada reporte contiene las siguientes secciones:
  • KPIs de horas — total equipo, % billable, horas externas, trabajo interno
  • KPIs de valor — ingresos facturados, valor hora promedio, horas promedio por semana, ticket promedio
  • Horas por persona — tabla mensual con promedios semanales y desglose internas/externas
  • Volumen mensual — gráfico de barras apiladas + tabla con % billable e internas por mes
  • Clientes: horas e ingresos — tabla con horas, ingresos, $/hora y facturas por cliente
  • Concentración de clientes — ranking de clientes externos con % de horas
  • Top tareas — 15 tareas con mayor demanda de horas
Clasificación de horas
Las horas se clasifican según el cliente registrado en ActiveCollab:
  • Internas — Client Name = "Bloom User Experience" (proyectos internos, administración, comercial)
  • Externas — todos los demás clientes (universidades, empresas, organismos públicos)
Mapeo de clientes
Los nombres de clientes difieren entre ActiveCollab y el sistema de facturación. El script aplica este mapeo:
  • UCSC → UCSC
  • Universidad de Concepción → UDEC
  • Universidad del Desarrollo → UDD
  • Superintendencia de Salud → SUPERINTENDENCIA
  • Mapatex S.A. → VERDEAGUA
  • Rijk Zwaan → Rijk Zawaan
  • e[ad] PUCV → PUCV
  • Universidad de Viña del Mar → UVM
  • Catálogo Arquitectura → CATALOGOARQ
  • Falabella → FALABELLA
  • Pluxee → SODEXO
  • DuocUC → DUOC
  • PUC → PUC
Uso del script
Para regenerar los reportes:
python3 generate_report.py 2025
python3 generate_report.py 2026
El script usa export.csv para 2025 y 2026.csv para 2026. Los ingresos se leen de ingresos-{año}.csv.