Qué se pretende conseguir
Detectar inconsistencias
Objetivo: señalar ventas sin compra, filas repetidas y posiciones que no cuadran.
Hoy: el motor cubre solo una parte (ver «Qué existe hoy y qué no»).
Reconstruir historiales con documentos
Objetivo: indicar qué documento falta y, si hay pruebas, proponer cómo recuperar el coste sin inventarlo.
Hoy: no existe. Una simulación manual demostró que es posible.
Dejar un registro trazable
Objetivo: que cada conclusión indique en qué fichero y fila se apoya.
Hoy: el motor conserva el origen de cada fila; un registro legible para el usuario aún no existe.
Tres situaciones habituales
Una inversora ficticia compró 100 acciones del Valor N en Broker Alfa (2021), las trasladó a Broker Beta (2023) y vendió 60 (2025). Solo conserva el historial de Alfa desde junio de 2022. ¿Qué documento aporta?
Historial de Broker Alfa
| Fecha | Operación | Cantidad | Precio | Importe |
|---|---|---|---|---|
| Antes de 06/2022: sin documento aportado (aquí estaba la compra original) | ||||
| 10/03/2021 | Ingreso de efectivo | — | — | 4.000,00 $ |
| 10/03/2021 | Compra · Valor N | 100 | 40,00 $ | 4.000,00 $ |
| 14/06/2022 | Ingreso de efectivo | — | — | 1.000,00 $ |
| 05/09/2022 | Compra · Valor Z | 50 | 12,40 $ | 620,00 $ |
Este fichero no registra ninguna salida del Valor N: el traslado solo consta en Beta.
Historial de Broker Beta
| Fecha | Operación | Cantidad | Precio | Importe |
|---|---|---|---|---|
| 16/05/2023 | Entrada en especie · Valor N Origen citado: Broker Alfa · valor de mercado 4.500,00 $ | 100 | sin precio | — |
| 14/02/2025 | Compra · Valor Z | 30 | 15,00 $ | 450,00 $ |
| 12/03/2025 | Venta · Valor N | 60 | 71,00 $ | 4.260,00 $ |
Comisión de 1,00 $ en cada operación de Beta (no mostrada en las columnas).
Ver el paso a paso (4 pasos)
¿Qué ocurre con esta venta?
- SÍ Detecta que falta historia: marca la venta como «coste sin resolver» y avisa de historial incompleto.
- SÍ No inventa la ganancia: el resultado de esa venta queda «no calculable».
- NO No relaciona los dos brokers. El origen («Broker Alfa») queda como nota de texto, pero el motor no lo usa.
- NO Muestra 0 acciones en Beta cuando en realidad quedan 40 (100 − 60). Las comprobaciones contables internas siguen en verde (18 de 18).
- NO Aunque aportes el historial completo de Alfa, el motor no los enlaza: Alfa sigue mostrando 100 acciones abiertas y la venta de Beta sigue sin compra.
Ver el aviso literal del motor
Sin la compra de 2021 no hay nada que simular: no existe un coste que arrastrar. Cualquier cifra sería inventada, y justo eso es lo que no debe hacerse.
Con el historial completo de Alfa, se emparejó a mano y solo en memoria la salida de Alfa con la entrada de Beta (hubo que crear la salida y renombrar el valor para que el emparejador la aceptara). El mecanismo de arrastre de coste que ya existe pudo resolver la venta:
Importes en dólares, antes de convertir a euros. La barra gris no la da por buena el motor. Los 45 $ son una hipótesis del caso. No es un cálculo fiscal.
Ver el cálculo
- Coste económico (60 acc.)
- 2.700,00 $
- Base arrastrada de Alfa
- 2.400,00 $
- Ganancia con base documentada
- 1.859,00 $ (4.259 − 2.400)
- Diferencia entre bases
- 300 $ (60 × (45 − 40))
Qué demuestra: la idea es técnicamente posible. Qué no demuestra: que el enlace funcione para otras carteras, ni que exista ya como función.
Unidades: INCOMPLETO Coste: INCOMPLETO
Mensaje al usuario: «No puedo calcular la ganancia de la venta del 12/03/2025: faltan las 100 compras que dieron origen a las acciones. Llegaron a Beta el 16/05/2023 desde Broker Alfa, pero el historial de Alfa que has aportado empieza en 06/2022.» No se inventa ningún coste ni se crea ninguna operación.
Documentos que pediría
- El historial de Broker Alfa desde la compra (anterior a 06/2022).
- Un documento de Alfa que acredite la salida de las 100 acciones, o el aviso de Beta que cita el origen.
Propuesta de enlace: «Beta recibió 100 acciones del Valor N el 16/05/2023 citando a Alfa como origen, y Alfa conserva exactamente 100. Alfa no documenta la salida, así que te pido que confirmes el enlace.»
| Situación | Unidades | Coste |
|---|---|---|
| 1 · Historial completo, enlace sin confirmar | INCOMPLETO | INCOMPLETO |
| 2 · Tú confirmas el enlace | NO COMPROBABLEprovisional | INCOMPLETOprovisional Cifra tentativa: 60 × 40 $ = 2.400 $ |
| 3 · Además Alfa documenta la salida de las 100 | VERIFICADO* | VERIFICADO* |
Una confirmación del usuario permite mostrar una cifra provisional, pero no es evidencia documental independiente: por sí sola no basta para VERIFICADO. En la situación 3 hay dos fuentes independientes (la salida documentada por Alfa y la entrada documentada por Beta). *Dentro del alcance de los documentos aportados: no descarta movimientos fuera de ellos.
El coste histórico se arrastra desde la compra documentada y no se inventa nada.
Resultado objetivo del diseño propuesto. No se ha construido ni probado más allá de la simulación manual.
Un fichero de Broker Beta contiene la misma compra dos veces: 30 acciones del Valor Z a 15,00 $, el 14/02/2025 a las 11:20:00. ¿Es un duplicado o fueron dos compras reales?
| Fila | Fecha y hora | Operación | Cantidad | Precio | Importe |
|---|---|---|---|---|---|
| 1 | 14/02/2025 11:20:00 | Compra · Valor Z | 30 | 15,00 $ | 450,00 $ |
| 2 | 14/02/2025 11:20:00 | Compra · Valor Z | 30 | 15,00 $ | 450,00 $ |
¿Cómo pueden aparecer duplicados y por qué podrían ser legítimos?
Cómo aparecen
- Se pegan dos exportaciones que se solapan.
- Se descarga dos veces el mismo periodo con otro nombre.
- El broker lista por separado ejecuciones parciales de una misma orden.
Por qué podrían ser legítimas
- Dos órdenes distintas pueden ejecutarse al mismo precio en el mismo segundo.
- Una orden grande puede ejecutarse en dos trozos iguales.
- Borrar una compra real hace parecer que tienes menos acciones de las que tienes.
¿Qué hace cada uno?
SÍ Ficheros que se solapan
Si subes dos exportaciones de Beta con operaciones comunes, el motor detecta las repetidas, las descarta del cálculo y las enlaza con la original (no las borra). En la prueba: 2 duplicados descartados y posición correcta de 40 acciones del Valor Z (30 + 10).
NO Fila repetida en el mismo fichero
Las cuenta como dos compras: 60 acciones en lugar de 30, sin ningún aviso. Las comprobaciones contables siguen en verde (18 de 18), porque revisan la coherencia interna, no la realidad. Con un segundo de diferencia entre las dos filas tampoco avisa.
La ambigüedad es real: sin un identificador de ejecución ni otra evidencia, el motor no puede saber si son una o dos compras. Hoy asume que son dos.
Principio: el auditor no elimina operaciones ambiguas. Las conserva todas y decide según la evidencia. Elige qué evidencia hay:
Decisión sobre la fila 2: duplicado probable → excluida de forma reversible, no borrada.
Estado: NO COMPROBABLEprovisional
Por qué: la posición declarada (30) coincide con una sola copia, pero esa cifra procede del mismo emisor y no descarta que falte otro movimiento (por ejemplo, una venta no registrada de 30) que también diera 30.
Para VERIFICADO: una segunda fuente independiente, como los movimientos de efectivo o las confirmaciones de órdenes.
Decisión sobre la fila 2: dos compras legítimas probables → se mantienen ambas.
Estado: NO COMPROBABLEprovisional
Por qué: la posición declarada (60) solo cuadra si ambas compras son reales, pero procede del mismo emisor y otro movimiento omitido podría compensar la diferencia.
Para VERIFICADO: los movimientos de efectivo (dos cargos) o las confirmaciones de órdenes.
Decisión sobre la fila 2: sin decidir. No se elimina nada ni se da por buena la cifra.
Estado: NO COMPROBABLE
Por qué: podrían ser 30 o 60 acciones y no hay ninguna fuente que lo decida. Se muestra el rango (30–60) y se pide el extracto de posiciones.
Decisión sobre la fila 2: operaciones distintas probables → se mantienen ambas.
Estado: NO COMPROBABLEprovisional
Por qué: los identificadores pertenecen al mismo fichero que las filas: indican que no son copias, pero no prueban que no falte nada. Falta contrastar la posición final.
Decisión sobre la fila 2: duplicado → excluida de forma reversible, no borrada.
Estado: VERIFICADO (en el alcance de los documentos aportados)
Por qué: dos fuentes independientes entre sí coinciden: el extracto de posiciones (30) y la cuenta de efectivo (un solo cargo de 450 $). Sigue sin descartar movimientos fuera de esos documentos.
Evidencias que distinguen un duplicado de una coincidencia
- La posición que declara el broker (una fuente, no independiente de las operaciones del mismo broker).
- El identificador de ejecución, si el fichero lo trae.
- Los movimientos de efectivo: cuántos cargos hay.
- Que el mismo fichero o el mismo periodo se haya cargado dos veces.
Se calculan las posiciones de Broker Beta a partir de sus operaciones y se comparan con las que el propio extracto de fin de 2025 declara.
| Valor | Calculada | Declarada | Diferencia |
|---|---|---|---|
| Valor N | 0 | 40 | +40 |
| Valor Z | 30 | 30 | 0 |
Calculada: la que resulta de aplicar el motor actual a las operaciones de Beta del ejemplo A (el motor no cuenta las entradas en especie). Declarada: sección de posiciones abiertas del extracto ficticio.
Posibles causas de la diferencia y documentos a revisar
Causa más probable
En 2023 llegaron 100 acciones por transferencia (sin compra) y en 2025 se vendieron 60: 100 − 60 = 40, exactamente la diferencia.
Otras causas que habría que descartar
- Una operación que falta en el historial.
- Una operación contada dos veces.
- Un desdoblamiento de acciones («split») no registrado.
- Una fecha de corte distinta entre el extracto y las operaciones.
Documentación que habría que revisar
- El extracto de Beta con la sección «posiciones abiertas».
- El aviso de entrada en especie de Beta (con el origen).
- El historial de Broker Alfa, para recuperar el coste.
¿Qué hace cada uno?
- NO No compara las posiciones declaradas con las calculadas. El importador reconoce la sección de posiciones abiertas del extracto, la registra como «foto» y la ignora; no se encontró en el código ningún componente que la contraste.
- La posición del Valor N queda en 0 («cerrada») y las 18 comprobaciones internas siguen en verde.
- Existe una comparación contra la posición de otro tipo de extracto concreto, pero no es una comprobación general entre brokers.
Segunda fuente independiente (solo cambia el Valor Z)
| Valor | Unidades | Coste | Qué diría |
|---|---|---|---|
| Valor N | DISCREPANCIA con el cálculo actual (0 frente a 40) NO COMPROBABLEprovisional al contar la entrada en especie | INCOMPLETO | «Calculo 0 y el extracto declara 40. Al contar la entrada de 100 acciones y restar la venta de 60 sale 40, pero las dos cifras proceden del mismo extracto de Beta y Alfa no documenta la salida: no descarto movimientos omitidos. El coste sigue pendiente: falta el historial de Alfa.» |
| Valor Z | NO COMPROBABLEprovisionalVERIFICADO | NO COMPROBABLEprovisionalVERIFICADO | «Calculo 30 y el extracto declara 30. La compra y la posición salen del mismo extracto de Beta (una sola fuente): coincide, pero no puedo descartar un movimiento omitido.»«Calculo 30, el extracto declara 30 y la cuenta de efectivo registra el cargo de la compra. Dos fuentes independientes coinciden, dentro del alcance de los documentos aportados.» |
«Provisional» marca una cifra o decisión tentativa que depende de una sola fuente o de una confirmación del usuario. VERIFICADO nunca es provisional y siempre indica su alcance.
Resultado global de la cartera: INCOMPLETO mientras el coste del Valor N siga pendiente. Una cartera con un descuadre relevante nunca se marca como verificada: manda el peor estado.
Los cuatro estados del auditor
◇ DISEÑO PROPUESTO Forman parte del diseño del auditor independiente, no de una función terminada.
Los datos comprobados coinciden con la evidencia disponible, dentro del alcance temporal y documental declarado.
Ejemplo: la posición calculada coincide con el extracto y con otra fuente independiente.
Dos fuentes documentales presentan información incompatible.
Ejemplo: tu historial dice 0 y el extracto dice 40.
Falta una operación o documento necesario para reconstruir el historial.
Ejemplo: una venta sin la compra que la origina.
No existen suficientes fuentes independientes para verificar el resultado.
Ejemplo: dos compras idénticas y solo un extracto del mismo broker.
Reglas de evidencia del diseño
- VERIFICADO exige al menos dos fuentes documentales independientes entre sí. Dos secciones del mismo extracto cuentan como una sola fuente y así se declara.
- Una confirmación del usuario no es evidencia documental. Permite mostrar una cifra provisional, pero no verificarla.
- Que las posiciones coincidan con las operaciones no prueba que no falte nada: un movimiento omitido puede compensar otro.
- «Provisional» marca una cifra o decisión tentativa que depende de una sola fuente o de una confirmación. Nunca acompaña a VERIFICADO.
- Unidades y coste se evalúan por separado: una posición puede tener unidades comprobadas y coste incompleto.
- Toda verificación indica su alcance (fechas y documentos) y no certifica nada fuera de él.
- En una cartera manda el peor estado; con un descuadre relevante nunca es «verificada».
Qué existe hoy y qué no
Comprobado con la prueba de concepto sobre documentos ficticios: 3 capacidades existen, 5 todavía no y 1 queda fuera del alcance.
Ver la tabla completa
| Capacidad | Motor actual | Auditor futuro |
|---|---|---|
| Aviso cuando una venta no tiene compra detrás | ✔ Sí (probado) | Con explicación y petición de documentos propuesto |
| Enlazar un traslado entre brokers y arrastrar el coste | ✘ No Posible solo con una simulación manual | Con confirmación del usuario propuesto |
| Descartar duplicados entre ficheros que se solapan | ✔ Sí (probado) | Se mantiene |
| Detectar una fila repetida dentro del mismo fichero | ✘ No | Sin borrar; decide según la evidencia propuesto |
| Corregir un error de precio pequeño entre dos fuentes (≈3 %) | ✔ Sí (probado) | Se mantiene |
| Evitar que un error grande de precio o cantidad cree una operación adicional | ✘ No (duplica la compra) | Lo marcaría como discrepancia propuesto |
| Comparar posiciones calculadas con las declaradas por el broker | ✘ No de forma general | Con cuatro estados propuesto |
| Procesar una cartera solo con estos brokers, sin depender de nuestra cartera | ✘ No sin cambios | Módulo independiente propuesto |
| Cálculo fiscal | ✘ No es el objetivo de esta demostración | ✘ No incluido |
¿Quieres saber cuándo esté disponible?
Esta página no envía ni guarda nada. El acceso anticipado todavía no está abierto: cuando lo esté, podrás apuntarte desde la página principal.