Acceso a reportes
Archivos base
Cómo se construyó el reporte
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:- 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
- 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)
- Cruce de datos — mapea nombres de clientes entre ambas fuentes (ej: "Universidad de Concepción" → "UDEC") y calcula $/hora por cliente
- Cálculo de métricas — agrega por persona/mes, cliente, tarea; calcula promedios semanales brutos y ajustados (excluyendo semanas sin actividad)
- 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.
Archivos del proyecto