Automatización de la Gestión Financiera (IV): Categorización de Movimientos

Containers
Imagen Container  por  Glyn Lowe Photoworks   (CC BY)

El objetivo de este bloque del proceso es la categorización de movimientos bancarios que, en el artículo anterior, habíamos normalizado, es decir, darle a cada movimiento una categoría o grupo; otorgarle una característica que lo distinga de unos movimientos y lo «hermane» con otros. De esta forma podremos realizar ulteriores análisis sonbre cada una de las categorías para saber cosas como qué hemos gastado en alimentación, en transporte, etc.

Lo primero que debes tener claro es ¿cómo quiero llevar a cabo la categorización de movimientos? Coge papel y lápiz, piensa en ello y define tu estructura. Este paso es muy importante; de él depende el análisis y comparativa de gastos e ingresos.

Una categorización con la que después no te sientas satisfecho va provocar que tengas que hacer reasignaciones de categoría, es decir, modificaciones sobre la categoría previamente asignada a un movimiento, cosa que requiere del uso de sentencias SQL contra el almacén de datos (algo que es preferible evitar si no sabemos manejarno con él).

Flujo del proceso

Ya te adelanto que es un bloque un tanto complejo; es el que tiene más pasos de los 3 bloques de los que consta todo el proceso de automatización. Se realizan 3 acciones principales, y se apoya en 2 archivos.

Te ruego que leas detenidamente en número 2 de esta serie de artículos el apartado «Categorización de movimientos» para una mejor comprensión del flujo.

Al igual que en el capítulo anterior, es necesario que modifiques los nodos de tipo Microsoft Excel input y Microsoft Excel output, para que apunten al directorio de trabajo de tu elección que estés usando (el de descargas de tu ordenador o donde tengas los extractos descargados).

Archivos de apoyo

La categorización de movimientos requiere de 2 archivos excel (que os voy a proporcionar) que tienen como objetivo realizar la clasificación automática de los movimientos en alguna de las acciones principales que describiremos más adelante:

  • Archivo «mappings_bancs.xlsx»: como comenté en el número 2 de esta serie, los bancos suelen otorgar ya una clasificación a cada movimiento, pero en cada banco es distinta. Este archivo contiene las clasificaciones que realizan los bancos con los que trabajo (ING y N26) y las traduce a mis propias categorías. De esta forma, un movimiento clasificado como «Dentista, médico» se asignaría a la categoría «Salud» y subcategoría «Servicios» (ir al médico es un servicio de salud, para mí). Además, este archivo indica que esta categoría «Salud» es de tipo gasto (los movimientos son de signo positivo para ingresos o entradas y de signo negativo para gastos o salidas)
  • Archivo»keyword_mappings.xlsx»: como comenté en el número 2 de esta serie, hay movimientos clasificados por el banco que requieren de cierta inteligencia previa para categorizarlos, analizando la descripción del movimiento. Este archivo contiene una lista de palabras «clave» y la categoría a la que pertenece el movimiento que contiene esa palabra. Así, un movimiento de cargo del gimnasio que el banco lo clasifica como «Salud y droguería», a través del nombre del gimnasio en su descripción se categorizará como «Deporte» y subcategoría «Servicios»; un movimiento de cargo de la peluquería que el banco lo clasifica como «Salud y droguería», a través del nombre de la peluquería en su descripción se llevará a la categoría «Cuidado personal» y subcategoría «Peluquería»

Ejemplo de registro en «mappings_bancs.xlsx»:


Subcategoria_banc
Mapping_CategoriaMapping_SubcategoriaMapping_ClassificacioConcepte
Dentista, médicoSaludServiciosGasto
Salud y droguería??Gasto

Ejemplo de registro en «keyword_mappings.xlsx»:

KeywordCategoriaSubcategoriaClassificationConcepte
MUSCLESALADeporteServiciosGasto

Te habrás fijado en que en «mappings_bancs.xlsx» la categoría «Salud y dorguería» se ha traslaldado a la subcategoría «?». Esto indicará a una de las acciones que se llevan a cabo en este proceso que debe regirse por el archivo «keyword_mappings.xlsx» y no con el de «mappings_bancs.xlsx».

Acciones principales

Podemos agrupar los pasos de este proceso de categorización en las siguientes acciones principales:

  • Asignar categorías en base al archivo «mappings_bancs.xlsx«: se toman los movimientos normalizados explicados en el artículo número 3 de esta serie y se clasifican en nuestras propias categorías y subcategorías según indica el archivo «mappings_bancs.xlsx» (aparece como un nodo de tipo Microsoft Excel input llamado «mapping_list»). A partir de ahí nos encontramos con 3 casuísticas: movimientos que no hemos podido categorizar, y que serán tratados según las indicaciones de «keyword_mappings.xlsx», movimientos categorizados y movimientos que no sabemos qué hacer con ellos.
  • Asignar categorías en base al archivo «keyword_mappings.xlsx«: los movimientos de la acción anterior que no han podido ser categorizados, tratan de serlo usando el diccionario (aparece como un nodo de tipo Microsoft Excel input llamado «keywords»)
  • Escupir todos los movimientos a un archivo excel: tanto los movimientos cagtegorizados por alguna de las 2 acciones anteriores como los que se quedan sin categorizar (el proceso no sabe qué hacer con ellos) son llevados a un mismo excel (nodo de tipo Microsoft Excel output llamado «categorised_movements»)

¿Qué hago con los movimientos sin categoría?

El nodo de tipo Microsoft Excel output llamado «categorised_movements» acaba generando un excel con movimientos donde algunos de ellos no tendrán una categoría ni subcategoría asignadas (con un ‘?’ o con un valor en blanco). Estos movimientos no pueden quedarse así; debemos categorizarlos manualmente.

¿Qué ha ocurrido? Como ya sabes, se necesitan 2 archivos para realziar la categorización automática. A estos archivos tienes que hacerlos crecer en contenido. Cuando el proceso no sabe cómo categorizar un movimiento es porque no encuentra una forma de hacerlo con ninguno de los 2 archivos.

Tu misión es la de ir incorporando líneas en «mappings_bancs.xlsx», en primera instancia, o en «keyword_mappings.xlsx», en segunda instancia. Des esta forma, poco a poco el proceso irá siendo capaz de ir categorizando de forma automática cada vez más y más movimientos.

Te recomiendo incorporar las líneas que consideres necesarias en estos archivos y vuelvas a ejecutar la transformación; verás que ahora son muchas más líneas las que son categorizads de forma automática.

Próximos pasos

En futuros artículos os explicaré, con detalle, (y os haré llegar los archivos para su descarga) el bloque final para completar el proceso.

Os recomiendo entender el funcionamiento de los nodos de entrada y salida de datos con excel de Pentaho data integration a través de su ayuda, foro u otros recursos. A partir de ahí podéis falimiliarizaros con el resto de nodos que se usan en la transformación.

Aquí tienes el enlace de descarga al archivo ktr y aquí el del archivo con el mapping de categorías y el de palabras clave.

La serie completa de “Automatización de la gestión financiera”

  1. Problema y solución
  2. Esquema de la solución
  3. Normalización de extractos
  4. Categorización de Movimientos (este artículo)
  5. Carga
  6. Análisis de datos