Cómo resolvimos la contabilidad de millones de dólares en Fintual

Ah, los contadores. Puedes amarlos u odiarlos. En el cine algunos son héroes que usan sus cálculos para el bien. Otros son mentes criminales maestras que se aprovechan de sus conocimientos para engañar al sistema.

Andy Dufresne en The Shawshank Redemption. Chris Wolff en The Accountant. Itzhak Stern en Schindler’s List. Skyler White en Breaking Bad.

Las películas y series nos dan una visión de los contadores distinta a la que tienen muchas personas. Esta profesión, a veces percibida como poco atractiva (o derechamente aburrida), esconde un poder que pocos entienden bien. De ahí que los héroes y villanos manejan la contabilidad para lograr sus objetivos.

En Fintual tenemos nuestro propio héroe contable. Se llama Watson y es puro código.

As an accountant

Cuando estuvo de moda el trend “As an accountant” de TikTok, mi pololo fue el primero en mandarme el video porque, según él, yo ahora era “contadora”. La contabilidad se parece mucho a no querer limpiar una bodega que nadie ha tocado hace años. Una resistencia a meterse en algo que puede ser complejo y abstracto. Creo que por eso el video tiene algo de verdad cuando dice: “nobody asks you questions when you say you’re an accountant” (nadie te hace preguntas cuando dices que eres un contador).

Programar el back-office puede no ser muy llamativo, porque el usuario “no lo ve”. Pero en el caso de Watson, nuestro software de contabilidad de fondos, para mí esa es una de las cosas más desafiantes. Cómo lograr que algo tan crítico como el cálculo del valor cuota, que impacta directamente a nuestros más de 85.000 clientes todos los días, sea algo invisible para ellos. Que funcione tan bien que nadie se dé cuenta de la magia por detrás.

Nunca pensé que iba a trabajar con contabilidad, pero entré a ese mundo desde que empezamos a desarrollar Watson hace ya tres años.

Me atrevo a decir que es de los desarrollos más desafiantes que ha hecho Fintual, aunque te entiendo si siempre has visto la contabilidad como algo perno o fome. Yo soy perna, tal vez por eso me gusta lo complejo que se puede poner. Y por esa misma complejidad es que muchos prefieren dejar lo contable a los contadores y confiar.

Contabilidad 101

Un poco de contexto contable.

Si no te interesa, salta a la siguiente sección 👇 *mirada juzgadora*

Todos los días, las Administradoras Generales de Fondos (AGF) tienen que calcular el patrimonio neto de sus fondos. Esta es la porción de cada fondo que es propiedad de las personas que invierten en él, los aportantes.

El cálculo se hace con la clásica fórmula contable:

Activos - Pasivos = Patrimonio Neto

Un fondo tiene activos -como caja e inversiones-, pero no todo es de los aportantes porque el fondo también tiene obligaciones (pasivos) con otras personas -como cuentas por pagar o la comisión que cobra la administradora-. La diferencia entre sus activos y pasivos (lo que debe) es el patrimonio.

A partir de esto podemos calcular el valor cuota de cada serie del fondo, con el que se valorizan las inversiones de todos los clientes. Cada vez que inviertes en un fondo mutuo, compras cuotas de ese fondo y el monto de tu inversión depende del valor de ellas.

En simple, si un fondo tiene un patrimonio de $2.000.000 y 1.000 cuotas repartidas entre las personas que invirtieron en él, el valor cuota ese día es de $2.000.000 / 1.000 = $2.000. Si tuvieras 20 cuotas de ese fondo, entonces tu balance es de 20 * $2.000 = $40.000.

El patrimonio cambia todos los días y ahí es cuando ves variaciones en tus inversiones. De vuelta al ejemplo, si el valor cuota cambió a $2.050 y no depositaste ni retiraste, entonces tu balance ahora es de 20 * $2.050 = $41.000. “Ganaste” luca.

¿Qué cosas hacen cambiar el patrimonio de los fondos en Fintual? Principalmente, las inversiones (compras y ventas de activos o monedas extranjeras), el valor del dólar, el precio de los activos en que invierten los fondos, los aportes (depósitos) o rescates (retiros) de los usuarios y la remuneración (comisión que cobramos para cada serie).

El cierre

Al cálculo de los valores cuota y la actualización de las inversiones de los clientes le llamamos cierre contable de fondos.

El mensaje que ves bajo el gráfico de rentabilidad en tu objetivo en Fintual cuando “cerramos fondos”.

Este proceso se hace todos los días hábiles y es crítico: no nos podemos equivocar porque cualquier error o demora impacta a los clientes. Una complejidad extra es que empieza tarde, porque esperamos a que cierre el mercado de Nueva York y que todas las operaciones del día estén registradas.

Por otro lado, necesitamos que las tareas del cierre sean lo menos manuales posible. Así disminuimos la probabilidad de error y se hace más fácil administrar una mayor cantidad de fondos.

¿Te ha tocado compartir gastos de un carrete? Quién puso la comida, quién las cosas para tomar, dividir el Uber, etc. Es un cacho. Sin Splitwise, imposible.

Ahora imagina calcular manualmente toda la plata que entró y salió para muchos fondos con muchos clientes, actualizar los valores de las inversiones de sus activos, considerar el dólar, los precios de mercado y dividendos, llevar el historial de cuotas de los aportantes, calzar cada peso de las operaciones…

Ya pero qué tan difícil puede ser, se hace en todos lados

Sí, todas las AGF cierran sus fondos. La diferencia está en cómo lo hacen.

En algunas empresas el proceso involucra a muchas personas de distintas áreas. Tienen encargados de registros, tesorería, contabilidad y control; pueden ser incluso más de uno por fondo.

A veces tienen sistemas de turnos. Un equipo temprano para registrar y preparar movimientos y otro tarde para el cierre contable. Conocí a una persona de una administradora que cerraba fondos desde las 18:00 hrs hasta las 2:00 am si es que no había errores.

Si los procesos no están automatizados cada paso toma más tiempo. Si éstos son manuales o sus respaldos están en documentos físicos y aparece algún error, es común que los encargados se queden hasta la madrugada o incluso hasta el día siguiente resolviéndolos.

Cuando nos dicen que para cerrar fondos hay que ingresar operaciones en distintos sistemas y dejar respaldo en papel.

Muchas administradoras dependen de empresas contables externas y es clave poder confiar en sus procesos e infraestructura. Nadie quiere quedarse sin cerrar fondos si el servidor se apagó porque un auto chocó un poste de la otra oficina o un incendio cortó los cables de luz (true story). El solo hecho de trabajar con dos sistemas es un desafío porque puede traer inconsistencias.

¿Un héroe nace o se hace?

Desde el principio, en Fintual quisimos desarrollar nuestro propio software de contabilidad de fondos. Sabíamos que era un desafío enorme, pero para seguir creciendo al ritmo que necesitábamos, era crítico crear esta “empresa” dentro de nuestra empresa.

Para empezar necesitábamos entender muy bien el problema.

Teníamos los conocimientos de Omar, el CIO, que había sido Portfolio Manager de otra AGF; de Sebastián, nuestro oficial de cumplimiento; y el apoyo de Flanes (nombre ficticio), una empresa externa que se encargaba de la contabilidad y reportería de nuestros fondos mientras aprendíamos cómo hacerlo nosotros mismos. Desde el primer día les dijimos que la intención era internalizar este proceso, aunque probablemente muchos dudaron que lo lograríamos.

A principios del 2019, llegó Ginger, un médico-ingeniero-contador que tomó este difícil proyecto. A esas alturas, Nico y Saratscheff, devs de Fintual, ya llevaban un tiempo estudiando el tema.

El nuevo proyecto ya estaba andando y necesitaba un nombre.

16 de mayo de 2019. Sherlock 🕵️ era nuestro proyecto de comparador de fondos mutuos. “g” era Ginger.

Así fue como nació Watson.

A programar

Desde septiembre del 2019, justo cuando llegué a Fintual, empezamos a desarrollar con Shape Up. Para cada ciclo de seis semanas tomábamos uno o más proyectos llamados pitches.

Por 6 ciclos hicimos desarrollos de 6 semanas para Watson.

El primero fue de exploración. Al final de este ciclo éramos capaces de llevar la contabilidad de nuestro fondo Streep en una planilla. Sí, una planilla. Tal vez no suena a una gran automatización, pero era un primer paso.

Very Conservative Streep fue el primer fondo al que Fintual le calculó el valor cuota.

Desde el segundo ciclo nos pusimos a programar. Nico lideró el proyecto de inicio a fin y muchos otros devs participamos del proceso.

En ese tiempo trabajaba part-time mientras estudiaba y Watson siempre me llamó la atención. Era la mezcla perfecta entre mis especialidades de computación e industrial: programación e inversiones/contabilidad. Sentía que mi cabeza iba a explotar tratando de entender los cálculos por detrás del valor cuota para las distintas series (nuestros fondos tienen una serie “normal” -la A- y otra APV), pero no había mayor satisfacción que lograr llevarlos a código.

Todo el desarrollo fue bien iterativo. Partimos por automatizar la contabilidad de Streep y desde ahí seguimos atacando problemas de a uno: manejar más de un fondo y más de una serie, generar reportes y finalmente hacer pruebas de cálculos en paralelo con Flanes para comprobar que todo cuadrara.

El 31 de agosto del 2020, más de un año y medio después desde que se bautizó a Watson, creamos los asientos de apertura en nuestra base de datos de los fondos Risky Norris, Moderate Pitt y Conservative Clooney. Desde septiembre el valor cuota oficial sería el calculado por Fintual y ya no necesitaríamos una empresa externa de contabilidad de fondos.

We did it.


Watson reloaded

El mes pasado se cumplieron dos años desde que Fintual es el responsable del cálculo del valor cuota de sus fondos. En el camino hemos mejorado y automatizado muchísimo el proceso.

Todo el cierre involucra a seis personas con distintos roles (para los que usamos varios seudónimos):

  • Los cuatro cerradores, uno por cada fondo
  • Ironman, de Inversiones, que registra las operaciones del día y hace cross-check del valor cuota
  • Brinks, de Operaciones, que ejecuta lo necesario para las compras y ventas de activos o monedas
  • Bad Bunny, developer (dev) de Operaciones, que cierra el fondo Moderate Pitt y está atento a dudas o problemas
Así se ve Watson. Cada cerrador se encarga de un fondo y para los equipos de inversiones y finanzas tenemos vistas de flujos de caja, registros de operaciones y balances.

Por varios meses el rol dev de soporte de Operaciones -Big Boss- era el encargado de todas las urgencias relacionadas a plata de clientes y fondos. Ahora tenemos un equipo dedicado a automatizar la inversión, contabilidad y reportes regulatorios de los fondos. El rol dev de soporte es Bad Bunny.

El Conejo Malo quedó a cargo del legado del mejor de todos los tiempos. Igual que en el reggaeton.

El detalle técnico del desarrollo de Watson y cómo funciona da para otra historia, que puedo publicar si hay suficiente interés 👀.

Elemental, mi querido Watson

Watson es el protagonista contable de Fintual y ha tenido un impacto enorme. Gracias a él tenemos más control sobre nuestras operaciones, cerramos cada vez más temprano (en promedio a las 18:30 hrs) y con menos errores.

El efecto en la hora de cierre gracias a Watson y los equipos de operaciones

Estoy agradecida de haber sido parte del desarrollo de Watson. En este tiempo pude entender a fondo la operación de Fintual en Chile; meterle cabeza a solucionar problemas difíciles; trabajar con un equipo brillante con infinitas ganas de automatizar y hacerme responsable de un proceso crítico, uno de los pilares para seguir creciendo al ritmo que necesitamos.

Actualmente el equipo de Ops Fondos es el responsable del cierre. Tenemos muchos desafíos de mejora continua por delante y, quién sabe, tal vez podemos pensar en ampliar este software para ofrecérselo al mundo 🌎.

*Si te interesa un post más técnico sobre Watson y cómo funciona, escríbeme a cartas@fintual.com para pedirlo.