Skip to content

Billing

Objetivo

Documentar cómo sy-energy convierte la energía consumida en un importe a cobrar, y qué diferencia hay entre los dos modelos comerciales que soporta.

Responsabilidad del módulo

Calcular el costo de la energía por centro de carga según el contrato vigente, consolidarlo en un estado de cuenta y dejarlo listo para facturar.

Audiencia

Finanzas, operación y desarrollo interno.

Estado documental

  • Estado: Borrador
  • Última actualización: 2026-08-02
  • Owner: Pendiente
  • SME requerido: finanzas / operación
  • Fuente resumida: constructores de estado de cuenta, tipos de producto y comandos de cálculo.

Los dos modelos

Todo el módulo gira alrededor de una decisión: cómo se determina el precio de la energía en el contrato.

Tipo de productoCómo se cobraCuándo se puede facturar
fixed — FijoPrecio pactado en el contrato.En cuanto cierra el mes: solo hace falta la demanda.
fixed-with-energy-loss — Fijo con pérdidasPrecio pactado, considerando pérdidas de energía.Igual que el fijo.
pass-through — Pass ThroughSe traslada al cliente el costo real del mercado.Solo cuando CENACE publicó la información del periodo.

Esa diferencia es la razón de que el ciclo mensual tenga dos fechas: día 1 para los contratos fijos, día 4 para los pass-through.

Entidades principales

EntidadRol
ContratoVincula un centro de carga con un tipo de producto y una vigencia.
Centro de cargaEl punto que consume energía, identificado por RMU.
Estado de cuentaDocumento mensual con el desglose del periodo.
Factura / OrdenDocumento fiscal derivado del estado de cuenta.

Un solo contrato activo

El sistema exige exactamente un contrato activo por centro de carga en el periodo. Con cero o con más de uno, la generación del estado de cuenta falla y notifica al administrador.

Es la causa más frecuente de que un centro de carga quede sin facturar en el cierre mensual.

Cómo se arma el estado de cuenta

text
file:statement-account --rmu --year --month

        ├─ busca el contrato activo del periodo

        └─ según el tipo de producto:
              fixed / fixed-with-energy-loss  →  constructor de costo fijo
              pass-through                    →  constructor pass-through

El comando falla, sin generar documento, si el centro de carga no existe, si no hay contrato activo o si hay más de uno.

run:statement-account hace lo mismo para todos los centros de carga del participante, encolando un trabajo por cada uno. Sin --year y --month usa el mes anterior al día en que se ejecuta.

Componentes del costo pass-through

Cuando el contrato es pass-through, el costo se compone de varios conceptos que se calculan por fecha de operación:

ComponenteComando
Mercado de Día en Adelantopassthrough:mda
Mercado de Tiempo Realpassthrough:mtr
Congestiónpassthrough:congestion
Distribuciónpassthrough:distribution
Ancho de bandapassthrough:bandwidth
Estimado del mespassthrough:estimated

Y el cálculo integral del mes, sobre los contratos activos del centro de carga:

bash
php artisan calculate:by-passthrough --rmu=<RMU> --year=<YYYY> --month=<MM>

Cubre bloque de energía, CELs, capacidad y pass-through de CENACE.

Otros conceptos

ConceptoDónde se calcula
Capacidad anualcalculate:critical-hours y calculate:by-charge-center --slug=year-capacity
CELs — Certificados de Energías LimpiasDominio de CELs; entra en el cálculo integral.
Balances de CENACE, energía, trading y pass-throughEstrategias de reporte del sistema.

Las 100 horas críticas del año determinan la capacidad; se calculan una vez por año, no en cada cierre.

Validaciones disponibles

ValidaciónComando
Potencia MDA contratada vs. la del estado de cuentaverify:mda-deals --year= --month=
Completitud de la energía de CENACE en un periodopassthrough:check-cenace-energy <inicio> <fin>
Contratos activos en una fechacontracts:active --date=

Las tres conviene correrlas antes de facturar, no después.

Errores comunes

SíntomaCausa probable
Un centro de carga no generó estado de cuentaCero o más de un contrato activo en el periodo.
Importes en cero en un contrato pass-throughEl periodo se calculó antes de que CENACE publicara la información.
Importes incompletosFaltan datos de demanda o huecos en el ECD.
Diferencias de potencia MDADiscrepancia entre contrato y estado de cuenta; revisar con verify:mda-deals.

Evidencia esperada

  • Exportación de contratos activos del periodo.
  • Estado de cuenta generado para cada centro de carga esperado.
  • Resultado de las validaciones previas al cierre.

Riesgos y gaps

  • No está documentada la fórmula de cada componente pass-through; esta página describe el flujo, no el cálculo.
  • No está documentado el tratamiento de un periodo reliquidado por CENACE después de facturar.
  • No hay una vista única que muestre qué centros de carga quedaron sin estado de cuenta en un cierre.
  • No está confirmado si los cálculos son idempotentes al repetirse sobre un periodo ya procesado.

Próxima revisión

Al resolver las preguntas abiertas del ciclo mensual de facturación.