Imprimir
Categoría: Proyectos Software
Visto: 3252

Este es un proyecto ejecutado en colaboración con ¡ea! la Asociación Andaluza de Consumidores y Usuarios .

Antecedentes

Gas Natural Andalucía S.A está obligada a devolver tanto las cuotas de alta (hasta el 19 de julio de 2.004) como las cuotas de canon IRC (hasta el 5 de agosto de 2.005), ya que las clausulas correspondientes a estos conceptos fueron declarados nulos por sentencia judicial.

El juzgado ha ordenado a la empresa que informe acerca de los usuarios a los que cobró indebidamente para proceder a la devolución de las cuotas cobradas indebidamente.

La documentación aportada

La forma de "informar" de la empresa (al juzgado) ha sido la siguiente:

 

El procesamiento de la información

Sin entretenernos en más detalles, vemos que la documentación es a todas luces incompleta y errónea por los siguientes motivos:

Existe muchos menos archivos de facturas que afectados, por lo que no disponemos de toda la información relativa a cada afectado para poder realizar los cálculos.

Los archivos PDF (de facturas, que no de pólizas) aunque son legibles, incorporan del orden de 100 errores de forma (que ha sido necesario ir corrigiendo a lo largo de la ejecución del proyecto) algunos errores destacados son:

Objetivo del proyecto

 Pues es sencillo de comprender: Se trata de crear una base de datos coherente que podamos consultar para obtener las cantidades exactas a devolver para cada reclamante basándonos en el caos de información suministrada.

Desarrollo del proyecto

Como se puede comprender, el proceso no ha sido nada sencillo y ha requerido de varios meses de trabajo (un 80% del tiempo dedicado a detectar y corregir los errores de las fuentes).

A tal objeto, se han creado una serie de programas escritos en Java capaces de leer la documentación, tanto de texto como de los PDF y que son capaces de generar la base de datos final.

Dado que hay algunos cientos de miles de archivos PDF sobre los que realizar un "parsing" (análisis sintáctico) para extraer la documentación relevante convenía utilizar un hardware potente. A tal efecto, se empleó un ordenador MacBook Pro de Apple equipado con 10 GB de RAM, un disco de estado sólido de 256 GB y un procesador Intel i7 de cuatro núcleos..........y no es por gusto, dado que solía ocurrir que cuando el sistema iba procesando el archivo 125.314 (es un ejemplo), se encontraba con un nuevo error y ¡vuelta a empezar!.

Una vez creadas las tablas que sintetizan la información de las pólizas, facturas de alta, facturas primera de IRC y facturas última de IRC "sólo" queda llevar a cabo los procedimientos de cálculo para obtener las cantidades exactas a devolver a cada reclamante. 

En el caso del concepto de alta, es relativamente sencillo (una vez soslayado el problema de que este concepto se nombra de formas diversas en los PDF); mas ardua resultó la tarea de calcular el canon de IRC.

En principio, esta es una cantidad que se cobra de manera bimensual (aproximadamente) y su importe anda entre tres y cuatro euros dependiendo del año. Por supuesto, si Gas Natural hubiese aportado las facturas de todos los reclamantes, el proceso sería sencillo: Sumarlos todos. 

Desgraciadamente, sólo suministra la primera y la última de las facturas por lo que es necesario "interpolar" los valores intermedios. ¿Cómo realizamos la interpolación?; pues no es sencillo:

Se toma el valor de canon IRC de la primera factura y se divide entre los días transcurridos entre la lectura anterior y la lectura actual de gas; esto nos da el canon diario. Ahora, en teoría, sólo tenemos que multiplicar el número de días transcurridos entre la lectura anterior de la primera factura de IRC y la lectura actual de la última factura de IRC por el canon diario obtenido anteriormente. 

Por supuesto, hemos de tener en cuenta que el IPC ha ido variando a lo largo de los años, por lo que hemos de ponderar el canon diario para cada año según el IPC correspondiente.

Los problemas aparecen cuando no existe, por ejemplo, la primera factura de IRC ¿qué hacemos?: Pues tomar como fecha de inicio del cálculo la fecha de la factura de alta y calcular el canon diario a partir de la última factura de IRC aplicando un proceso inverso de IPC para estimar el valor que tendría el canon diario en el momento del alta del reclamante.......sencillo ¿no?.

Bueno, pues en total existen ocho posibilidades diferentes pero no voy a aburrir explicando cómo se trata cada una de ellas, aunque sí que quiero hacer mención a un problema curioso que se presentó:

Normalmente, los periodos de lectura son bimensuales (aproximadamente), con lo que el canon irc diario calculado es una cantidad relativamente constante para un año determinado, pero hay muchos casos en los que el periodo entre lecturas es de pocos días y, sin embargo, el canon cobrado es el habitual de entre tres y cuatro euros. Al dividir, nos sale un canon diario muy alto con respecto a la media y al multiplicarlo por el número de días que el reclamante ha sido abonado de Gas Natural, nos salen cantidades desorbitantes. ¿Cómo solucionarlo?:

Como siempre, las matemáticas están a nuestro servicio para resolvernos la vida: Realizamos una gráfica de frecuencias relativas del valor del canon diario para todos los reclamantes y obtenemos lo que vemos en la siguiente gráfica:

En esta página no se aprecia demasiado bien, pero si "pincháis" con el botón derecho la imagen y la abrís en una nueva pestaña o ventana del navegador, la veréis a su tamaño natural.

Lo que podemos apreciar es que los valores del canon se agrupan alrededor de dos picos. Curioso ¿verdad?.

Bien, lo que hacemos entonces es analizar, para cada reclamante, el canon diario obtenido y si resulta mayor de un determinado valor (en este caso, 0,15€) significa que se sale de margen. Decidimos entonces modificar su valor por el que tendría de modo más probable, esto es, lo ajustamos a 0,06 € que es el máximo absoluto de la gráfica (el valor más probable, evidentemente), con lo que los cálculos ya son otra cosa.

Por cierto, que la cantidad total a devolver asciende a la friolera de  ¡10.089.705 €!

 Y ya vamos llegando al final........

Herramientas utilizadas

Además del hardware al que nos hemos referido anteriormente, se ha utilizado:

La ley de protección de datos

Todas las fuentes de información se han tratado de manera confidencial, ya que contienen datos sensibles de los reclamantes,  y no se han transmitido desde el ordenador de desarrollo por ningún medio electrónico (cifrado o no). Para más seguridad, permanecen tanto las fuentes como la documentación elaborada en un disco rígido extraíble.

 

 Y eso es todo.........