---
title: 'Análisis de consumo'
description: 'Análisis completo de un único nodo de medición de gas: calidad de los datos, perfil de consumo, pasaporte del equipo y diario de eventos, con detalle forense opcional.'
section: AI Analytics
weight: 1
related:
  - ai-analytics/node-reports/metering-bypass
  - ai-analytics/node-reports/battery-forecast
  - ai-analytics/fleet-reports/top-problem-nodes
---

import Alert from '@/components/docs/Alert.astro';
import Image from '@/components/docs/Image.astro';

El Análisis de consumo es un estudio metrológico y operativo en profundidad de **un único nodo de medición de gas** durante el período seleccionado. El objetivo no es solo trazar una curva de consumo, sino responder a las preguntas prácticas del servicio de medición. El análisis aplica referencias metrológicas internacionales allí donde justifican una cifra: ISO 5167 (medición por placa de orificio), EN 12405-1 (dispositivos electrónicos de conversión de volumen), OIML R 137 (contadores de gas), OIML R 140 (sistemas de medición de combustibles gaseosos), ISO 6976 (poder calorífico), EN 1359 (contadores de gas de diafragma) y EN 14236 (contadores domésticos de gas por ultrasonidos).

## Propósito

<Image
  src="/images/ai-analytics/consumption-analytics/01_hero_block.svg"
  alt="Encabezado del informe"
/>

_Encabezado del informe._ Lo primero que ve el lector: nombre y dirección del nodo, tipo de corrector, métricas clave de la última hora (P, T), volumen total de datos en la ventana (puntos), número de eventos detectados, método de análisis (reglas / reglas+LLM / solo LLM), duración de la extracción y período cubierto.

El informe responde a las preguntas cotidianas del servicio de medición:

- si los datos del período seleccionado están completos;
- si el archivo puede usarse para el cierre del período comercial;
- si hay una brecha de cola al final del período;
- si la telemetría actual está funcionando;
- si el caudal horario concuerda con el volumen acumulado;
- si algún sensor de P/T está bloqueado;
- si hay problemas de comunicación o de entrega del archivo;
- si el pasaporte metrológico está suficientemente cumplimentado;
- si hay patrones sospechosos de submedición;
- si es necesaria una visita al sitio;
- qué rol debe actuar: metrólogo, despachador, ingeniero de comunicaciones, ingeniero de integración, brigada de campo o analista de facturación.

<Alert type="warning">
  El informe **no es un acta formal de incidente**. No prueba manipulación, derivación ni hurto de
  gas. Muestra indicadores técnicos y metrológicos que requieren verificación. Un veredicto legal es
  un proceso aparte que exige una visita obligatoria al sitio.
</Alert>

## Lógica central

El informe separa **tres evaluaciones ortogonales** que no deben mezclarse:

| Evaluación                              | Significado                                                         |
| --------------------------------------- | ------------------------------------------------------------------- |
| Disponibilidad de datos del período     | si el archivo es utilizable para el período seleccionado            |
| Estado de la telemetría actual          | si el nodo está activo en el momento de generar el informe          |
| Disponibilidad para el cierre comercial | si el período puede usarse para facturación sin conciliación manual |

Un período histórico puede ser perfectamente utilizable para el análisis aunque el nodo esté silencioso hoy.

**Ejemplo de interpretación correcta:**

```
Datos del período:        utilizable con salvedades
Monitorización actual:    degradada
Cierre de facturación:    no listo para el cierre definitivo
```

Esto no es una contradicción. Significa: los datos históricos son parcialmente utilizables, pero la telemetría actual o el cierre comercial necesitan verificación adicional.

## Glosario

| Término               | Significado                                          |
| --------------------- | ---------------------------------------------------- |
| Q                     | caudal horario, m³/h                                 |
| P                     | presión del gas, kPa                                 |
| T                     | temperatura del gas, °C                              |
| V                     | volumen acumulado, m³                                |
| ΣQ                    | suma de los caudales horarios del período            |
| ΔV                    | incremento del volumen acumulado en el período       |
| H_expected            | cuántas horas correspondían en el período de informe |
| H_received            | cuántos registros horarios se recibieron realmente   |
| H_validQ              | cuántos registros tienen un valor de caudal válido   |
| H_nullQ               | cuántos registros existen pero con caudal NULL       |
| H_missing             | cuántas horas faltan en el archivo                   |
| final_tail_gap        | ausencia de datos al final del período               |
| internal_gap          | brecha dentro del período                            |
| freshness             | cuán actual es la última hora del archivo            |
| passport completeness | grado de cumplimentación del pasaporte metrológico   |
| incident              | problema agrupado que requiere acción                |

## Ventana temporal de análisis

### Inicio y fin del período

Usted fija el inicio y el fin del período. El informe analiza cada hora desde las 00:00 del primer día hasta las 23:00 del último día:

$$
\text{window\_start} = \text{report\_start } 00{:}00, \quad
\text{window\_end} = \text{report\_end } 23{:}00
$$

### Número esperado de horas

$$
H_\text{expected} = \mathrm{count}(\text{hours from window\_start to window\_end})
$$

Para un período anual, normalmente $H_\text{expected} \approx 8760$.

## Desglose de disponibilidad del archivo

| Categoría         | Significado                                        |
| ----------------- | -------------------------------------------------- |
| Hora válida       | el registro existe con un valor de caudal correcto |
| Hora NULL         | el registro existe pero el caudal está vacío       |
| Brecha interna    | hora ausente dentro del período                    |
| Brecha de cola    | horas faltantes al final del período               |
| Hora no observada | cualquier hora sin un valor de caudal válido       |

**Fórmulas:**

$$
H_\text{received} = \mathrm{count}(\text{hourly records})
$$

$$
H_\text{validQ} = \mathrm{count}(\text{records where } Q \neq \text{NULL and } Q \geq 0)
$$

$$
H_\text{nullQ} = \mathrm{count}(\text{records where } Q = \text{NULL})
$$

$$
H_\text{missing} = \max(0, H_\text{expected} - H_\text{received})
$$

$$
H_\text{unobserved} = H_\text{missing} + H_\text{nullQ}
$$

<Alert type="warning">
  La brecha de cola **no se cuenta dos veces** sobre `missing_records` cuando esas horas ya forman
  parte del total de horas faltantes.
</Alert>

## Integridad de los datos

<Image
  src="/images/ai-analytics/consumption-analytics/07_completeness_validity.svg"
  alt="Disponibilidad, actualidad y validez de los datos"
/>

_Disponibilidad, actualidad y validez_ son tres cortes ortogonales en la comprobación de aptitud del archivo previa a cualquier análisis de fondo. La **integridad** responde: cuántas de las horas esperadas llegaron. La **actualidad** — cuán reciente es el dato _ahora mismo_. La **validez** — si los valores caen dentro de rangos físicamente razonables.

### Fórmula de cobertura

$$
\mathrm{Coverage}_\text{valid} = \frac{H_\text{validQ}}{H_\text{expected}} \times 100\,\%
$$

Adicionalmente:

$$
\mathrm{Coverage}_\text{received} = \frac{H_\text{received}}{H_\text{expected}} \times 100\,\%
$$

La diferencia importa:

- `Coverage_received` — si los registros llegaron siquiera;
- `Coverage_valid` — si son utilizables para el análisis de caudal.

### Interpretación de la cobertura

| Cobertura | Estado      | Significado                             |
| --------- | ----------- | --------------------------------------- |
| ≥ 98 %    | Excelente   | archivo casi completo                   |
| 95–98 %   | Bueno       | utilizable con salvedades menores       |
| 80–95 %   | Advertencia | brechas apreciables                     |
| 50–80 %   | Grave       | requiere conciliación manual            |
| < 50 %    | Crítico     | no utilizable para la mayoría de tareas |

## Brecha de cola

Brecha de cola = ausencia de datos de archivo al final del período seleccionado.

$$
H_\text{tail} = \text{window\_end} - \text{last\_valid\_archive\_hour}
$$

| Cola    | Estado                                                              |
| ------- | ------------------------------------------------------------------- |
| ≤ 2 h   | aceptable                                                           |
| 2–6 h   | advertencia                                                         |
| 6–24 h  | grave                                                               |
| > 24 h  | crítico                                                             |
| > 168 h | dispositivo en silencio más de una semana — visita urgente al sitio |

La brecha de cola responde: **¿puede considerarse el período completamente cerrado?** Si faltan datos al final, el informe puede seguir siendo utilizable para análisis retrospectivo pero **no está listo** para el cierre comercial definitivo (véase Veredicto comercial de medición).

## Actualidad de los datos

Dos métricas de actualidad independientes.

### Actualidad respecto al fin del período

Se usa para análisis histórico y facturación:

$$
\mathrm{Lag}_\text{period} = \text{window\_end} - \text{last\_valid\_archive\_hour}
$$

Responde: **¿hay datos hasta el final del período seleccionado?**

### Actualidad respecto al momento de generación

Se usa para la monitorización actual:

$$
\mathrm{Lag}_\text{current} = \text{generation\_time} - \text{last\_valid\_archive\_hour}
$$

Responde: **¿está el nodo activo ahora mismo?**

### Cobertura de las últimas 24 horas

$$
\mathrm{Fresh}_{24h} = \frac{H_\text{validQ, last 24h}}{24} \times 100\,\%
$$

### Puntuación compuesta de actualidad

$$
\mathrm{LagScore} = \max(0, 100 - 2 \times \mathrm{Lag}_\text{period})
$$

$$
\mathrm{FreshnessScore} = \frac{\mathrm{LagScore} + \mathrm{Fresh}_{24h}}{2}
$$

## Estado de la telemetría actual

<Image
  src="/images/ai-analytics/consumption-analytics/16_telemetry_major.svg"
  alt="Estado de la telemetría actual y resumen del nodo"
/>

_Monitorización actual y resumen del nodo._ Este bloque responde a "¿podemos actuar sobre este archivo ahora mismo?". Se comparan tres momentos: la última hora archivada, el fin de la ventana de informe y el momento de generación del informe. Si las comunicaciones son recientes pero el archivo va con retraso, el problema **no está en el despachador**, sino en el analizador/carga del lado del servidor. El comentario de IA produce un resumen breve y legible para el operador, **sin anular** los estados formales.

Se calcula **respecto al momento de generación**, no al período:

$$
\mathrm{Lag}_\text{archive, current} = \text{generation\_time} - \text{last\_archive\_hour}
$$

$$
\mathrm{Age}_\text{session} = \text{generation\_time} - \text{last\_session\_time}
$$

| Retraso   | Estado      |
| --------- | ----------- |
| ≤ 6 h     | normal      |
| 6–24 h    | advertencia |
| 24–72 h   | grave       |
| > 72 h    | crítico     |
| sin datos | crítico     |

**Diagnóstico diferencial:**

| Síntoma                               | Causa probable                                                 |
| ------------------------------------- | -------------------------------------------------------------- |
| sesiones recientes, archivo retrasado | problema de **entrega del archivo / analizador / importación** |
| sin sesiones, sin archivo             | módem / SIM / antena / alimentación / batería                  |

## Validez de los datos

Comprobaciones de rango físico por canal:

| Canal         | Condición                                      |
| ------------- | ---------------------------------------------- |
| Caudal Q      | $Q \geq 0$                                     |
| Presión P     | $0 < P \leq 5000\text{ kPa}$                   |
| Temperatura T | $-50\,°\mathrm{C} \leq T \leq 80\,°\mathrm{C}$ |

Por canal:

$$
\mathrm{Validity}_\text{ch} = \frac{N_\text{ok}}{N_\text{total}} \times 100\,\%,
\quad
N_\text{ok} = N_\text{total} - N_\text{null} - N_\text{below} - N_\text{above}
$$

Agregado:

$$
\mathrm{Validity}_\text{total} = \frac{\sum N_\text{ok}}{\sum N_\text{checked}} \times 100\,\%
$$

## Estabilidad de los sensores

<Image
  src="/images/ai-analytics/consumption-analytics/06_sensor_health.svg"
  alt="Diagnóstico de estabilidad de los sensores"
/>

_Diagnóstico detallado de los sensores de P y T._ Cada tramo bloqueado recibe su inicio/fin/duración/valor. Los intervalos largos con el mismo valor son casi siempre señal de fallo del ADC / reinicio del sensor / parada operativa del caudal — **no** física real. Los picos — saltos bruscos ≥ umbral por hora — son, por el contrario, un artefacto de telemetría o un reinicio del sensor.

<Image
  src="/images/ai-analytics/consumption-analytics/05_sensors_critical.svg"
  alt="Estado de los sensores y plan de acción"
/>

_Interpretación y plan de acción para los sensores._ "Estado del sensor: CRÍTICO" es una síntesis textual final sobre ambos canales. Cada problema detectado se etiqueta automáticamente con una recomendación, una prioridad, un rol responsable y un disparador breve (qué se activó concretamente).

### Sensor bloqueado

Se considera que un sensor está bloqueado si el valor apenas cambia durante más tiempo que el umbral (24 h):

$$
H_\text{stuck} \geq 24 \text{ h}
$$

Tolerancia de igualdad (0,1 %):

$$
\mathrm{tol}(x) = \max\bigl(0.05,\ |x| \times 0.001\bigr)
$$

Los puntos se consideran iguales si $|x_i - x_\text{run}| \leq \mathrm{tol}(x_\text{run})$.

### Pico de temperatura

$$
|T_i - T_{i-1}| > 20\,°\mathrm{C / h}
$$

### Pico de presión

$$
|P_i - P_{i-1}| > \max(1.0, 0.5 \times \overline{P})
$$

### Interpretación

| Indicador                | Significado                                          |
| ------------------------ | ---------------------------------------------------- |
| T bloqueada largo tiempo | posible fallo del sensor de T                        |
| P bloqueada largo tiempo | posible fallo del sensor de P o modo `P_const`       |
| Muchos picos de P        | inestabilidad del canal o artefacto de telemetría    |
| Muchos picos de T        | error del sensor o cambio brusco de modo tecnológico |

<Alert type="warning">
  Un sensor bloqueado **no es prueba de manipulación**. Es ante todo un riesgo metrológico que
  requiere verificación conforme a OIML R 137 / EN 12405-1.
</Alert>

## Puntuaciones agregadas de calidad del archivo

<Image
  src="/images/ai-analytics/consumption-analytics/08_quality_summary.svg"
  alt="Panel agregado de calidad"
/>

_Panel agregado de calidad._ Arriba — los KPI clave del informe (horas de datos, volumen, eventos, inactividad/deriva). Debajo — pestañas de sección (calidad de datos, perfil de consumo, pasaporte técnico, submedición y manipulación, anomalías e incidentes, diario, fuentes). En la pestaña de calidad de datos — 6 subindicadores de 0 a 100 más un veredicto verbal y los pesos de la puntuación compuesta.

El informe produce **5 puntuaciones ortogonales** (de 0 a 100 cada una) que cubren facetas distintas de la calidad:

| Puntuación                    | Sobre                                         |
| ----------------------------- | --------------------------------------------- |
| `score_historical_archive`    | usabilidad de los datos del período histórico |
| `score_data_validity`         | corrección de los valores de Q/P/T            |
| `score_sensor_health`         | estado de los sensores (bloqueos, picos)      |
| `score_timeliness`            | actualidad del archivo y de las sesiones      |
| `score_operational_readiness` | disponibilidad para la monitorización actual  |

<Alert type="warning">
  Deliberadamente **no** se produce un único **escalar compuesto** de "calidad global" — mezclar la
  usabilidad histórica con la actualidad arroja una imagen falsamente tranquilizadora. Cada
  puntuación se lee por separado con su propio veredicto.
</Alert>

## Estimación del volumen potencialmente no observado

<Image
  src="/images/ai-analytics/consumption-analytics/14_uncovered_volume.svg"
  alt="Estimación de riesgo del volumen no observado"
/>

_Dos estimaciones distintas del mismo volumen._ La media del período es conservadora (relleno de la cola bajo un perfil plano), mientras que el perfil por hora activa capta mejor el ritmo diurno (turno de trabajo / noche / fin de semana). La diferencia entre ambas es el **rango de incertidumbre**, no un valor único. El nivel de riesgo depende de la duración de la brecha y del caudal medio característico.

<Image
  src="/images/ai-analytics/consumption-analytics/11_anomalous_month.svg"
  alt="Mes de consumo anómalo"
/>

_Mes de consumo anómalo._ Las anomalías mensuales son una señal aparte, evaluada frente al ritmo anual (temporada de calefacción vs verano). Si un mes concreto excede **sustancialmente** la mediana de los demás (umbral × 2), se resalta automáticamente en la parte superior con una sugerencia de revisar el flujo de eventos, el pasaporte y las causas tecnológicas.

Este bloque estima cuánto gas pudo pasar durante las horas sin datos de archivo válidos.

<Alert type="warning">
  Esto **no es una pérdida confirmada**. No es una cifra de hurto ni una reclamación automática de
  daños. Es una estimación del **punto ciego** — el volumen no cubierto por un archivo válido.
</Alert>

### Horas sin datos válidos

$$
H_\text{blind} = H_\text{missing} + H_\text{nullQ}
$$

### Estimación basada en la media

$$
\overline{Q} = \frac{\sum Q_\text{valid}}{H_\text{validQ}},
\qquad
V_\text{blind, mean} = H_\text{blind} \times \overline{Q}
$$

Apta para objetos con un consumo relativamente uniforme.

### Estimación basada en el perfil

Caudal típico para la hora del día $h$ (mediana sobre el período):

$$
\mathrm{Profile}(h) = \mathrm{median}(Q \mid \text{hour\_of\_day} = h)
$$

$$
V_\text{blind, profile} = \sum_{t \in \text{BlindHours}} \mathrm{Profile}(\text{hour}(t))
$$

Si el perfil de una hora no es fiable, se usa $\overline{Q}$.

### Rango de la estimación

Se muestran ambas estimaciones. Si están próximas, el perfil diario es estable. Si divergen significativamente, el objeto tiene un modo de operación marcado y se requiere cautela.

## Nodo inactivo

Si un nodo prácticamente no tuvo consumo real durante el período, la ausencia de caudal **no se trata como un riesgo**.

### Comprobación de inactividad

Umbral adaptativo de cuasi-cero:

$$
Q_\text{nearzero} = \max(0.5, 0.05 \times \mathrm{median}(Q))
$$

El nodo se considera inactivo cuando se cumplen **ambas** condiciones:

$$
\overline{Q} \leq 0.05\text{ m³/h} \quad \text{and} \quad V_\text{blind, mean} < 5\text{ m³}
$$

### Efecto

La escala de severidad se suaviza (máximo `medium` en lugar de `critical`) y el informe indica:

> El nodo estuvo efectivamente fuera de línea / parado estacionalmente. La ausencia de consumo no se trata como un riesgo de submedición.

## Conciliación Q/V

<Image
  src="/images/ai-analytics/consumption-analytics/13_qv_volume.svg"
  alt="Análisis del volumen acumulado"
/>

_Conciliación del caudal horario frente al acumulador._ El cálculo comercial metrológico se basa en el incremento de V, no en la suma de valores instantáneos de Q. Una concordancia ΣQ ≈ ΔV en ≥ 80 % de las horas es la norma de un nodo sano. Las **inversiones de V** (de una hora a otra, $V_{t+1} < V_t$) y los **saltos bruscos de V** son señales críticas de fallo del archivo y casi siempre exigen investigación.

El bloque metrológico clave. Compara la suma de los caudales horarios con el incremento del contador acumulado.

### Magnitudes base

$$
\Sigma Q = \sum_{h=1}^{n} Q_h, \qquad
\Delta V = V_\text{end} - V_\text{start}
$$

$$
\mathrm{Diff} = \Sigma Q - \Delta V, \qquad
\mathrm{Diff}_\% = \frac{\Sigma Q - \Delta V}{\Delta V} \times 100\,\%
$$

### Interpretación del desajuste

| $\vert\mathrm{Diff}_\%\vert$ | Veredicto                           |
| ---------------------------- | ----------------------------------- |
| ≤ 2 %                        | `good` (concordante)                |
| 2–5 %                        | `warn` (concordante con salvedades) |
| > 5 %                        | `bad` (desajuste)                   |
| sin V                        | `unavailable`                       |
| base de Q/V desconocida      | requiere verificación del pasaporte |

### Monotonía del contador

El contador debe aumentar o mantenerse constante.

Retroceso: $\Delta V_h < -0.5\text{ m³}$ → incidente `V_ROLLBACK`.

Salto brusco: $\Delta V_h > V_\text{jump\_threshold}$ → incidente `V_JUMP`.

### Conciliación por hora $Q \cdot 1\text{h} \approx \Delta V$

Para cada hora con $Q$ y $V$ a la vez:

$$
\mathrm{Match}_h = \frac{|Q_h - \Delta V_h|}{\max(Q_h, \Delta V_h)}
$$

La hora es concordante si $\mathrm{Match}_h \leq 20\,\%$. Proporción de horas concordantes:

$$
\mathrm{Match}_\% = \frac{H_\text{matched}}{H_\text{checked}} \times 100\,\%
$$

### Limitaciones de la conciliación Q/V

Incluso una buena concordancia numérica no equivale a usabilidad comercial. Es necesario saber:

| Pregunta                               | Por qué importa                                         |
| -------------------------------------- | ------------------------------------------------------- |
| ¿Q — volumen normalizado o de trabajo? | bases distintas introducen un sesgo                     |
| ¿V — volumen normalizado o de trabajo? | se necesita la misma base                               |
| ¿Cuál es el peso del impulso?          | imprescindible para una conciliación comercial completa |
| ¿Es V monótono?                        | los retrocesos ponen en duda el archivo                 |
| ¿Hay correcciones manuales?            | pueden explicar la divergencia                          |

Si la base es desconocida:

> La conciliación Q/V es numéricamente concordante, pero la base comercial no está confirmada. Se requiere verificación del pasaporte, del peso del impulso y de la base de volumen (véase EN 12405-1 §7).

## Comunicaciones vs archivo

<Image
  src="/images/ai-analytics/consumption-analytics/12_csq_vs_archive.svg"
  alt="Diagnóstico CSQ vs archivo"
/>

_Diagnóstico diferencial "comunicaciones vs carga"._ Si existen sesiones en la ventana pero no el archivo, el dispositivo responde por GSM/CSQ, pero el archivo o no se escribe o no lo analiza el servidor. Esto **no** es un problema de despachador / módem — debe atenderlo un ingeniero de integración.

### Fórmulas base

$$
N_\text{sessions} = \mathrm{count}(\text{sessions}), \quad
N_\text{success} = \mathrm{count}(\text{successful sessions})
$$

$$
\mathrm{SessionSuccess}_\% = \frac{N_\text{success}}{N_\text{sessions}} \times 100\,\%
$$

### Entrega del archivo

Para cada brecha comprobamos si hubo sesiones en la misma ventana temporal:

- `gap_with_sessions` — brecha de archivo con sesiones presentes;
- `gap_without_sessions` — brecha de archivo y tampoco sesiones.

### Diagnóstico diferencial

| Situación                                | Causa probable                                                |
| ---------------------------------------- | ------------------------------------------------------------- |
| sin sesiones, sin archivo                | módem / SIM / antena / alimentación                           |
| sesiones OK, archivo sin actualizar      | entrega del archivo horario / analizador / importación        |
| sesiones OK pero falta parte del archivo | lectura parcial / salto de página / backend                   |
| sesiones recientes, archivo obsoleto     | **no es un problema de GSM**, problema de entrega del archivo |
| marca de tiempo de sesión en el futuro   | desajuste de reloj / zona horaria                             |

### Calidad de la señal

Si la calidad de la señal se reporta como CSQ:

$$
\mathrm{RSSI}_\text{dBm} \approx -113 + 2 \times \mathrm{CSQ}
$$

Ejemplo: CSQ=29 → RSSI ≈ −55 dBm (excelente).

## Pasaporte metrológico

### Campos obligatorios con pesos

El pasaporte define 11 campos con pesos:

| Campo                      | Peso    | Por qué                           |
| -------------------------- | ------- | --------------------------------- |
| equipment_serial_number    | 1.0     | identificación                    |
| equipment_type_id          | 1.0     | modelo/tipo                       |
| installation_date          | 0.8     | contexto operativo                |
| **verification_date**      | **1.5** | validez legal (OIML R 137 cl. 3)  |
| next_verification_date     | 1.0     | control de vigencia               |
| **flow_range** (Qmin/Qmax) | **1.5** | rango según EN 12405-1            |
| meter_serial_number        | 1.0     | identificación en sitio           |
| meter_type                 | 1.0     | vínculo metrológico               |
| firmware_version           | 0.5     | compatibilidad y fallos conocidos |
| p_const                    | 0.5     | presión sustituida                |
| pulse_weight               | 0.8     | para la conciliación Q/V          |

### Fórmula de cumplimentación

$$
\mathrm{PassportCompleteness} = \frac{\sum w_\text{filled}}{\sum w_\text{required}} \times 100\,\%
$$

### Interpretación

| Cumplimentación | Estado              |
| --------------- | ------------------- |
| ≥ 80 %          | COMPLETE            |
| 50–80 %         | PARTIAL             |
| 20–50 %         | INCOMPLETE          |
| < 20 %          | CRITICAL_INCOMPLETE |

Si el pasaporte está incompleto, el veredicto comercial debe incluir una salvedad:

> Pasaporte metrológico incompleto. El veredicto comercial requiere conciliación manual y referencia a OIML R 137 / EN 12405-1.

## Patrones sospechosos de submedición

<Image
  src="/images/ai-analytics/consumption-analytics/03_forensic_signals.svg"
  alt="Clasificación de señales de submedición"
/>

_Clasificación de señales._ Cada señal se clasifica en una categoría, tiene un nivel de evidencia (bajo / medio / alto), una prioridad de campo, evidencia formal y una acción recomendada. **Esto no es un veredicto sobre el nodo** — es una lista de ventanas que necesitan revisión manual por un operador o por el personal de servicio.

Estas son **heurísticas**, no pruebas.

### Umbral de cuasi-cero

$$
Q_\text{nearzero} = \max(0.5, 0.05 \times \mathrm{median}(Q))
$$

### Caudal cero durante horas activas

Una hora es sospechosamente silenciosa si $Q_h < Q_\text{nearzero}$ Y cae dentro del intervalo activo típico del objeto.

### P-viva + cero (Q≈0 con P viva)

Puede ser:

- parada / válvula aguas abajo cerrada / parada estacional;
- modo P_const o fallo del sensor;
- error de la entrada de impulsos;
- **posible manipulación** — pero no probada.

<Alert type="warning">
  P-viva + cero **no es prueba de manipulación**. Es solo un motivo para verificar el modo de
  operación del nodo.
</Alert>

### Interrupción-recuperación

Patrón: Q normal → Q≈0 → Q normal. Cambio brusco de modo, pero no prueba de infracción. Explicaciones posibles: parada planificada / detención del objeto / cierre de válvula / fallo del canal / intervención manual / error de entrega del archivo.

### Manipulación confirmada

Un patrón estadístico por sí solo **no puede** confirmar manipulación. Se necesitan **pruebas firmes**:

- apertura del armario (cover_open en los eventos del dispositivo);
- interferencia magnética;
- cambios de parámetros (parameter_change);
- modificación no autorizada de P_const;
- reinicio del archivo;
- manipulación confirmada de la entrada de impulsos;
- acta de aceptación de la visita al sitio;
- fotos / precintos / lecturas en sitio.

Formato correcto del veredicto:

```
Manipulación confirmada:  NO DETECTADA
Patrones sospechosos:     PRESENTES
Preparación legal:        NO LISTA
```

## Veredicto comercial de medición

<Image
  src="/images/ai-analytics/consumption-analytics/02_commercial_verdict.svg"
  alt="Veredicto comercial de medición"
/>

_Estado de gestión._ Las 7 filas cierran 7 preguntas distintas de nivel directivo: si el período puede cerrarse (facturación), si el nodo funciona ahora (monitorización), si el archivo y el acumulador concuerdan (Q×h vs ΔV), si es necesaria una visita al sitio, si hay patrones sospechosos, cuán íntegros son los datos, si están presentes todos los parámetros del pasaporte. Cada fila es clicable y apunta al bloque de evidencia del informe.

El veredicto principal para el responsable del servicio de medición.

### Reglas del archivo de facturación

**Listo:**

- Cobertura ≥ 98 %
- Brecha de cola ≤ 2 h
- Q/V concordante (`good`)
- V monótono
- Pasaporte COMPLETE
- Sin problemas críticos de sensores

**Listo con salvedades:**

- Cobertura 95–98 %
- Brecha de cola 2–24 h
- Q/V concordante con salvedades (`warn`)
- Pasaporte PARTIAL
- Sin bloqueante crítico

**No listo para el cierre definitivo:**

- Brecha de cola > 24 h O
- Q/V no clasificado O
- Retroceso de V presente O
- Pasaporte incompleto en los campos comerciales O
- Problema crítico de sensores

**No utilizable:**

- Cobertura críticamente baja O
- Archivo corrupto O
- V con retroceso/picos graves O
- Q/V completamente inconsistente O
- Canal clave no disponible

### Monitorización actual — evaluada por separado

| Condición                                     | Estado                             |
| --------------------------------------------- | ---------------------------------- |
| archivo y sesión recientes                    | utilizable                         |
| archivo retrasado pero con sesiones presentes | degradado / problema de entrega    |
| archivo y sesiones obsoletos                  | crítico / problema de comunicación |
| marca de tiempo no válida                     | no fiable                          |

### Inspección de campo

Se requiere una visita si se cumple **al menos una** de las siguientes:

- brecha de cola no restablecida;
- Q/V no clasificado;
- retroceso del contador presente;
- pasaporte críticamente incompleto;
- sensor de P o T bloqueado;
- patrones sospechosos de submedición;
- diario de eventos no disponible mientras existen anomalías fuertes;
- telemetría actual críticamente degradada.

## Incidentes

Un incidente es un problema **agrupado**, no cada registro en bruto.

### Tipos

| Tipo                   | Significado                              |
| ---------------------- | ---------------------------------------- |
| `FINAL_TAIL_GAP`       | sin datos al final del período           |
| `COMMUNICATION_GAP`    | corte de comunicaciones                  |
| `ARCHIVE_DELIVERY_GAP` | sesiones presentes, archivo no entregado |
| `Q_V_MISMATCH`         | Q y V no cuadran                         |
| `V_ROLLBACK`           | el contador retrocedió                   |
| `P_SENSOR_STUCK`       | presión bloqueada                        |
| `T_SENSOR_STUCK`       | temperatura bloqueada                    |
| `PASSPORT_INCOMPLETE`  | faltan campos del pasaporte              |
| `TAMPERING_CANDIDATE`  | patrón sospechoso, no prueba             |

### Principio de agrupación

```
eventos en bruto → incidentes agrupados → incidentes de máxima prioridad
```

Ejemplo: 301 en bruto → 15 agrupados → Top-5 para acción. No debe mostrarse al operador 301 eventos idénticos como 301 problemas separados.

## Plan de acción

<Image
  src="/images/ai-analytics/consumption-analytics/09_action_plan_checklist.svg"
  alt="Plan de acción por rol y lista de comprobación de campo"
/>

_Acciones con prioridades P0/P1/P2._ Cada acción lleva un rol responsable, un plazo (hoy / dentro del día / 1–3 días) y la **causa** que la incorporó a la lista. La lista de comprobación de campo se genera automáticamente a partir del veredicto y los incidentes abiertos: qué llevar, qué revisar, qué medir — etiquetado P0/P1 para priorizar en sitio.

Cada recomendación está vinculada a una causa.

| Campo     | Descripción                       |
| --------- | --------------------------------- |
| ID        | número de recomendación           |
| Prioridad | P0 / P1 / P2 / P3                 |
| Acción    | qué hacer                         |
| Rol       | quién es responsable              |
| Plazo     | cuándo completarla                |
| Causa     | por qué surgió esta acción        |
| Estado    | open / assigned / done / verified |

### Ejemplos de reglas

| Condición                      | Acción                                                                    |
| ------------------------------ | ------------------------------------------------------------------------- |
| cola > 24h, sesiones recientes | backend: restablecer la entrega del archivo horario                       |
| cola > 24h, sin sesiones       | comunicaciones: revisar módem/SIM/alimentación                            |
| T bloqueada ≥ 24h              | metrólogo: verificar el sensor de T (OIML R 137)                          |
| P bloqueada ≥ 24h              | metrólogo: verificar el sensor de P o el ajuste de P_const                |
| desajuste Q/V                  | metrólogo + facturación: conciliar V, Q, peso del impulso (EN 12405-1 §7) |
| pasaporte incompleto           | administrador / metrólogo: cumplimentar el pasaporte                      |
| patrones sospechosos           | brigada de campo: revisar precintos, entrada de impulsos, válvulas        |

## Lista de comprobación de campo

### Qué llevar

manómetro patrón • termómetro patrón • multímetro • comprobador de señal/antena • kit de precintos • protocolo de inspección • acceso al archivo y al pasaporte • cámara fotográfica.

### Qué revisar

precintos del corrector y del contador • cable de impulsos • sensores de P, T • módem, antena, alimentación, batería • válvulas de corte • posible derivación • pasaporte frente al equipo real.

### Qué medir

P, T de referencia • Q actual • V acumulado • lecturas del contador externo • CSQ/RSSI • tensión de alimentación • impulsos de entrada • fecha/hora del corrector • P_const • Qmin/Qmax • peso del impulso.

### Qué fotografiar

pantalla del corrector (P/T/Q/V) • fecha/hora en el dispositivo • números de serie • precintos • cable de impulsos • sensores • módem y antena • vista general • posiciones de las válvulas.

## Fuente según el perfil de comportamiento

El archivo y el campo concretos de la API se seleccionan automáticamente según el comportamiento del dispositivo. Tres familias:

### Archivo horario continuo

El dispositivo escribe un registro **exactamente una vez por hora**. Prioridad de fuentes:

1. campo directo "caudal por hora" (si el dispositivo lo calcula);
2. Δ del volumen normalizado acumulado;
3. Δ del volumen de trabajo acumulado.

Brecha aceptable — **exactamente 1 hora**.

### Carga por sesiones con archivo de estado actual

El dispositivo escribe registros cuando se conecta, no estrictamente cada hora. La fuente primaria es el **caudal instantáneo** (calculado por el dispositivo); el respaldo es Δ del volumen acumulado normalizado:

$$
\dot Q_h = \frac{V_t - V_{t-\Delta t}}{\Delta t / 3600}
$$

Brecha aceptable — **hasta 6 horas**; si $\Delta t > 6\text{ h}$ el punto se considera no válido (probable pérdida de datos, no descarga del contador).

### Bloques de telemetría pura

El dispositivo transmite solo comunicaciones/estado, no mide gas — el informe muestra N/A con "este dispositivo no tiene punto de medición".

### Respaldo disperso

Si el archivo primario aporta < 50 % de los puntos esperados, se intenta automáticamente el archivo de sesiones secundario (tal cual, sin malla horaria) y el cálculo procede a partir de él.

## Limitaciones de la metodología

### Archivo

Si el archivo horario está incompleto, todas las estimaciones para las horas faltantes son **aproximadas**.

### Q/V

La conciliación Q/V solo tiene sentido cuando Q y V:

- comparten una única base de volumen (normalizado o de trabajo);
- tienen un peso de impulso correcto;
- pertenecen a la misma fuente de medición;
- están sincronizados en el tiempo.

Véase OIML R 137 para el procedimiento de verificación y EN 12405-1 §7 para la base de conversión.

### Pasaporte

Sin Qmin/Qmax, fecha de verificación, P_const o peso del impulso, el veredicto comercial debe llevar una salvedad.

### Patrones sospechosos

Los patrones de submedición **no son prueba** de manipulación. Solo fijan la prioridad de la inspección.

### Comentario de IA

El comentario de IA **no interviene** en el veredicto legal y no sustituye a las reglas formales. Solo ayuda a explicar la situación en lenguaje sencillo.

## Cómo leer el informe

<Image
  src="/images/ai-analytics/consumption-analytics/04_chart_qpt_profile.svg"
  alt="Caudal, presión y temperatura con perfil de consumo"
/>

_Visualización de Q/P/T y perfiles de comportamiento._ En el gráfico principal, los eventos se destacan como bandas verticales semitransparentes por tipo (pico / inactividad / fuga / sensor bloqueado / sin datos) — cualquier tipo puede mostrarse u ocultarse haciendo clic en su chip. Las medias móviles de 7 / 30 días aportan un suavizado estacional. El patrón de consumo es un doble desglose: perfil diario (hora del día) separado por día laborable/fin de semana, y un mapa de calor de calendario "día de la semana × mes" que muestra la estabilidad del turno de trabajo.

<Image
  src="/images/ai-analytics/consumption-analytics/10_period_compare.svg"
  alt="Comparación con el período anterior"
/>

_Comparación período a período._ Un delta interanual conlleva dos trampas: (1) **cambio de la cobertura del período anterior** (si era del 6 %, un crecimiento de eventos de "33×" es un artefacto de división, no la realidad) y (2) **ausencia de normalización de la duración**. Por eso, con cobertura < 50 %, la comparación oculta el Δ % y muestra solo deltas absolutos, para no inducir al operador a conclusiones falsas.

1. Comience por el **Veredicto comercial de medición**.
2. Compruebe si el período está listo para facturación.
3. Verifique por separado la monitorización actual.
4. Pase a los **Top-5 incidentes**.
5. Si hay una cola — vaya a "comunicaciones vs archivo".
6. Si hay una discrepancia Q/V — vaya al análisis del volumen acumulado.
7. Si los sensores de P/T están bloqueados — vaya a la estabilidad de los sensores.
8. Si el pasaporte está incompleto — **no** emita un veredicto comercial firme.
9. Si existen patrones sospechosos — planifique una revisión, pero **no emita un veredicto legal**.
10. Ejecute el plan de acción por rol.

## Criterios mínimos para un informe completo

Un informe se considera completo si contiene:

- período de análisis • $H_\text{expected}$ • registros recibidos • registros válidos • registros NULL • brechas internas • brecha de cola • cobertura • actualidad • validez de Q/P/T • estado de los sensores • estimación del volumen no observado • conciliación Q/V • monotonía de V • comunicaciones vs archivo • cumplimentación del pasaporte • Top-5 incidentes • plan de acción por rol • lista de comprobación de campo;

- tres descargos de responsabilidad obligatorios:
  - sobre la submedición (es una estimación del punto ciego, no una cifra de pérdida);
  - sobre la sospecha de manipulación (los patrones ≠ prueba);
  - sobre el comentario de IA (no es un veredicto legal).

## Parámetros de ejecución

| Parámetro               | Descripción                                                                                                                                                                                                                                                                                                                                                                                    |
| ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| N.º de nodo de medición | el nodo de medición a analizar                                                                                                                                                                                                                                                                                                                                                                 |
| Período desde           | inicio de la ventana de análisis (por defecto: un año atrás)                                                                                                                                                                                                                                                                                                                                   |
| Período hasta           | fin de la ventana de análisis (por defecto: ayer)                                                                                                                                                                                                                                                                                                                                              |
| Análisis ampliado       | carga adicionalmente el archivo de sesiones de comunicaciones y el archivo de eventos anómalos del corrector. Habilita los bloques Disponibilidad de la fuente de datos, Estado de las comunicaciones y Registro de anomalías del dispositivo, y rellena la Matriz de causa raíz con la confianza y la causa raíz por evento. Añade entre 5 y 15 segundos al tiempo de generación del informe. |
