Medido en 97 formularios reales (5.144 campos). Cada uno se firma dos veces, como persona y como representante de una empresa. La IA no responde siempre igual, así que las cifras son la media de 3 ejecuciones.
Sin IA. Firmín usa reglas en el Mac y no escribe nada solo: todo lo propone. Acierta el 70,8 % de lo que propone y pone bien el 50,8 % de tus datos (con IA, el 68,6 %).
Coste. Reconocer un formulario cuesta unos 0,0044 € en OpenRouter (0,0050 US$; OpenRouter cobra en dólares). Mil formularios, unos 4,37 €.
Cómo funciona
La IA no ve tus datos. Firmín le pregunta qué es cada campo y escribe tus datos en tu Mac.
titular.nif · 100 %- 90 % o más: lo escribe
- 50–90 %: lo propone
- Menos: en blanco
- Lee los campos del PDF y el texto que tienen alrededor: el rótulo a la izquierda o encima, el título del apartado, el nombre interno del campo, si es una fila de cajitas.
- Pregunta dos cosas de cada campo a Jev, un modelo de OpenRouter que no escribe texto: elige entre opciones cerradas y da la probabilidad de cada una. ¿De quién es el dato? (tuyo, de tu representante, de otra persona, de la firma, del trámite o de nadie) y ¿qué dato es? (NIF, calle, código postal, IBAN, fecha…). Se envía la estructura del formulario, de diez en diez campos, marcada para que OpenRouter solo use proveedores que no guardan los datos. Así es cada consulta, con dos ejemplos.
- Junta las dos respuestas en una etiqueta, como
titular.nifodomicilio.cp, con su probabilidad. - Decide qué hacer con cada campo. Con un 90 % o más, lo escribe solo, en verde. Entre el 50 % y el 90 %, te lo propone en amarillo. Por debajo, no escribe nada. Los datos del banco siempre se proponen. Las casillas no se marcan. No toca lo que el formulario ya trae escrito. En una tabla, tus datos solo van en la primera fila. Y si un dato sale dos veces, solo el primero va en verde: el segundo suele ser de otra persona.
- Revisas antes de firmar. Lo verde se firma tal cual y lo amarillo solo si lo confirmas. Cualquier campo se cambia con un clic.
Lo que se envía de un campo
Del formulario instancia-leon, con las dos preguntas:
{
"cabecera": "CIF / DNI",
"tipo": "texto",
"posicion": "x=474 y=632 (y mayor = más arriba)",
"pagina": 1,
"texto_encima": "CIF / DNI",
"campo": "#3",
"apartado": "1. Solicitante (datos de obligado cumplimiento)",
"nombre_interno": "dni.s"
}
«¿De quién es el dato que va en el campo #3?»
«¿Qué dato va en el campo #3?»
Lo que responde Jev
De quién es el dato:
titular100 %
Qué dato es:
nif100 %
Juntas, titular.nif con un 100 %: va en verde y Firmín escribe ahí tu NIF.
Cómo lo medimos
Con formularios reales y la respuesta correcta de cada campo.
- 97 formularios públicos de ayuntamientos, diputaciones, comunidades autónomas, universidades y ministerios, todos con campos rellenables: altas de terceros, instancias, representaciones, declaraciones responsables, subvenciones, licencias, domiciliaciones, fraccionamientos y padrón.
- La respuesta correcta de cada campo (5.144 en total) se marca mirando el formulario y sin ver lo que dice Firmín, con ayuda de Claude, un modelo de IA distinto del que usa Firmín, y con un catálogo de etiquetas común. Dos marcados independientes del mismo formulario coincidieron en 43 de 44 campos; la diferencia era un campo mal hecho en el propio PDF.
- Cada formulario se firma dos veces, como una persona y como representante de una empresa, con certificados de prueba y datos inventados: domicilio, teléfonos, correo e IBAN.
- Se compara lo que se escribiría con lo que se debería escribir según la respuesta correcta. Cuenta el valor: un IBAN repartido en casillas de entidad, oficina y cuenta está bien si los dígitos están bien. Un dato escrito donde no iba nada cuenta como error.
- Las mejoras se idean con 60 formularios (desarrollo) y se comprueban con otros 37 que se buscaron después (prueba). En desarrollo, lo que se escribe solo está bien el 97,5 %; en prueba, el 96,8 %.
No se miden los formularios escaneados o sin campos, que Firmín no rellena, ni las casillas. El perfil de prueba tiene todos los datos; con el tuyo, Firmín solo escribe los que hayas guardado en Mis datos. Las respuestas correctas pueden tener errores: si ves uno, escríbenos a [email protected].
Lo que hemos probado
Cada cambio en cómo se rellenan los formularios se mide antes con estos formularios. Están todos, también los descartados.
| adoptada | Un dato que Firmín da por seguro dos veces (el NIF, el código postal) suele ser de otra persona la segunda vez: el del representante, el del banco. Solo se escribe solo el primero; los demás se proponen. | Con las mismas respuestas de la IA, con y sin la regla (media de 3 ejecuciones). En los 60 formularios de desarrollo, lo que se escribe solo pasa del 94,3 % al 96,9 % bien. En los 37 de prueba, que no se miraron al idearla, del 94,0 % al 96,2 %: un 39 % menos de errores en verde. Los datos bien puestos no cambian: los repetidos pasan a propuesta. |
| adoptada | En la línea «En ___, a __ de ____ de ____», la IA sabe que los campos son de la firma pero confunde cuál es el lugar, el día, el mes o el año. Que decida su orden en la línea, como hacen las reglas. | La primera versión mejoraba en desarrollo y empeoraba en prueba: con «En ___, a [fecha]» tomaba la fecha entera por el día. Ajustada para actuar solo si la fecha va troceada, en desarrollo se ponen bien 1,2 puntos más de tus datos y lo propuesto acierta 1,4 puntos más; en prueba, lo que se escribe solo no cambia y se ponen bien entre 0,1 y 0,5 puntos más. Como la ajustamos después de ver la prueba, para esta regla el conjunto de prueba ya no es del todo ciego. |
| adoptada | La cuenta bancaria en varios campos o cajitas: muchos formularios la piden como la cuenta antigua (entidad, oficina, DC, cuenta) o en tramos, y Firmín solo sabía escribir el IBAN entero. Ahora escribe cada parte y trata la fila como una línea: si su espacio suma 24 caracteres es el IBAN, si suma 20 la cuenta sin «ES91», y se rellena en orden, la llame como la llame la IA. | Medido sobre todo el banco con las mismas respuestas de la IA (media de 3 ejecuciones): se ponen bien 185 datos más (en desarrollo, de 1.787 a 1.935; en prueba, de 791 a 828) y lo propuesto acierta igual (76 %). Lo que se escribe solo no cambia: el banco siempre se propone. Al ajustarla miramos formularios de los dos conjuntos, así que para esta regla la prueba no es ciega. |
| adoptada | Más contexto en cada consulta: además de los campos cercanos, el resto de su apartado, todo en orden de lectura (antes iban los de ±160 puntos de altura, sin ordenar). | Con preguntas nuevas, 3 ejecuciones. Se ponen bien 29 datos más (del 67,9 % al 68,6 %), y lo que se escribe solo sube del 96,7 % al 97,0 % con 22 campos más. Mejora en desarrollo y en prueba. Cuesta lo mismo. |
| descartada | Una consulta previa sobre todo el formulario (quién lo presenta, si tiene apartado de representante, si hay datos de otras personas), y su respuesta en cada consulta de campos. | Dentro del ruido: en desarrollo, 18 datos bien menos y el verde baja 0,3 puntos; en prueba, 5 más y el verde baja 0,2. No compensa una consulta más. |
| descartada | Describir mejor las filas de cajitas a la IA (el NIF en 9 cajitas sale a veces como de otra persona). | No se probó: las cajitas con datos de quien firma son pocas (unos 80 campos en los dos casos, casi todos de dos formularios), y con el apartado entero como contexto ya no hay errores en verde en ellas. |
| adoptada | Un umbral por tipo de dato: en desarrollo, el nombre de pila, el día, el mes y el año de la firma y el municipio aciertan el 95–100 % con una seguridad de 80–90 %, así que se escriben solos desde el 80 %. Y el nombre del representante, que propuesto acierta un 36 %, solo se propone desde el 70 %. | Con las mismas respuestas de la IA: en desarrollo se escriben solos 45 datos más y lo que se escribe solo pasa del 97,2 % al 97,5 % bien; en prueba, 16 más y del 96,6 % al 96,8 %. Hay algunas propuestas malas menos y los datos bien puestos no cambian. |
| descartada | El ancho del campo como prueba: un código postal, un número o un piso no deberían ir en campos anchos. | No separa aciertos de errores: hay códigos postales bien puestos en campos de más de 400 puntos y errores en campos de 40. |
| descartada | Pedir más seguridad para escribir solo: 95 % en vez de 90 %. | Lo que se escribe solo sube al 96,1 % bien, pero 83 respuestas correctas pasan a propuesta. La regla de los datos repetidos quita los mismos errores perdiendo un tercio. |
| descartada | Cuando la IA duda (menos del 50 %), proponer lo que dicen las reglas. | Recupera unos 100 datos más, pero solo la mitad están bien (43–51 % según la ejecución). Con el botón de confirmar todo, demasiadas propuestas malas. |
| descartada | Lo mismo, solo en las filas de cajitas (NIF, IBAN), donde las reglas parecen más fiables. | Entre el 45 % y el 71 % bien según la ejecución: inestable y poca ganancia. |
| descartada | Decidir de quién es cada dato mirando también su apartado: mezclar lo que dice la IA de cada campo con lo que dice de los demás campos del apartado. | Apenas mejora lo que se escribe solo (97,7 % → 98,3 % en la mejor ejecución) y se escriben solos un 25 % menos de datos. |
| descartada | Usar el apartado solo para rescatar los campos en los que la IA duda, sin escribirlos nunca solos. | Menos de medio punto más de datos bien puestos. |
| cambio de medida | Medir por etiquetas: un campo está bien si su etiqueta es la de la respuesta correcta. | Daba un 70 % de acierto que no decía nada útil: contaba casillas que Firmín no marca y campos de otros que deja en blanco, y daba por malo un IBAN bien escrito en casillas de entidad y oficina. Ahora se compara lo que se escribiría con lo que se debería escribir, en dos casos por formulario. |
Formulario a formulario
Datos de la primera ejecución. Al abrir un formulario se ven sus campos, firmando como persona o como empresa, y las consultas a OpenRouter con sus respuestas.
- Lo escribe solo, bien
- Lo propone, bien
- Mal: otro dato, o donde no va nada
- Iba un dato tuyo y lo deja en blanco
aderader.esdesarrollo0/020/2220/34—
alquiler-juntaex—desarrollo0/06/126/8—
animales-malaga—desarrollo19/1912/2431/35—
aplazamiento-aranjuezaranjuez.esdesarrollo26/2652/5478/79—
aragon-educaeduca.aragon.esdesarrollo41/416/847/97—
asociaciones-alhamadatos.alhamademurcia.esdesarrollo14/1412/1426/32—
aspeaspe.esdesarrollo14/1420/3234/88—
ayuda-autonomos-juntaexjuntaex.esdesarrollo35/3513/1348/54—
ayuda-inclusionsede.inclusion.gob.esdesarrollo28/288/1036/43—
benicarloajuntamentdebenicarlo.orgdesarrollo6/615/2121/36—
conductor-badajoz—desarrollo1/17/78/29—
conductor-coslada—desarrollo6/610/1216/27—
conductor-sevilla—desarrollo12/120/412/22—
contratacion-cuencadipucuenca.esdesarrollo0/28/118/142
datos-aepd-portabilidadaepd.esdesarrollo18/182/420/26—
datos-culturacultura.gob.esdesarrollo18/182/220/26—
declaracion-igualdadviolenciagenero.igualdad.gob.esdesarrollo0/00/40/10—
declaracion-mitmacdn.mitma.gob.esdesarrollo12/1416/1828/532
deportes-fmdvafmdva.orgdesarrollo6/616/2422/33—
dipusevilladipusevilla.esdesarrollo6/629/3135/46—
estacionamiento-aranjuezaranjuez.esdesarrollo24/244/628/31—
fraccionamiento-alcorconportalciudadano.ayto-alcorcon.esdesarrollo18/1850/5068/74—
fraccionamiento-granadagranada.orgdesarrollo21/2115/1536/42—
fraccionamiento-igaeigae.pap.hacienda.gob.esdesarrollo31/3751/7182/1286
fraccionamiento-palenciaaytopalencia.esdesarrollo20/2062/6382/85—
fraccionamiento-sevillasevilla.orgdesarrollo35/355/1740/76—
ibi-ponferradaponferrada.orgdesarrollo16/160/016/18—
instancia-alicantealicante.esdesarrollo12/1235/4847/78—
instancia-leonsede.aytoleon.esdesarrollo20/200/020/20—
instancia-sevillasevilla.orgdesarrollo21/214/425/38—
intersindical-gvaintersindical.orgdesarrollo10/10185/202195/358—
juntaexjuntaex.esdesarrollo12/1212/1224/32—
juntaex-autorrellenablejuntaex.esdesarrollo8/820/2028/32—
larinconadalarinconada.esdesarrollo43/4351/5194/106—
lavallduixolavallduixo.esdesarrollo18/1812/1430/30—
logronosedeelectronica.logrono.esdesarrollo18/1850/5068/68—
madrid-impreso-2646F1gestiona7.madrid.orgdesarrollo27/2719/2146/53—
matrimonio-alcala—desarrollo0/014/1814/33—
matrimonio-exteriores—desarrollo0/09/99/29—
matrimonio-guadalajara—desarrollo2/215/1517/17—
moncadamoncada.esdesarrollo7/1111/2018/394
obra-alicantealicante.esdesarrollo16/162/418/18—
padron-alcorconportalciudadano.ayto-alcorcon.esdesarrollo0/016/2616/34—
padron-villanuevavvapardillo.orgdesarrollo4/411/1315/16—
patrimonial-caibcaib.esdesarrollo10/1021/2731/43—
puertodelacruzpuertodelacruz.esdesarrollo0/06/66/38—
recurso-opaefsede.opaef.esdesarrollo24/244/1628/30—
representacion-aeatsede.agenciatributaria.gob.esdesarrollo8/825/2833/58—
representacion-aragonaragon.esdesarrollo4/48/1412/32—
representacion-corunaentidadeslocais.dacoruna.galdesarrollo13/135/518/18—
representacion-madrid-atmagenciatributaria.madrid.esdesarrollo16/1614/1730/40—
representacion-mitecomiteco.gob.esdesarrollo1/16/187/10—
santacruz-imassede.santacruzdetenerife.esdesarrollo30/3016/2046/67—
titularidad-cordobagmucordoba.esdesarrollo10/1230/6540/492
titularidad-huelvahuelva.esdesarrollo13/139/2322/32—
vado-barcelonabcn.catdesarrollo17/2119/3436/474
vado-leonsede.aytoleon.esdesarrollo24/240/024/24—
vado-malagastatic.malaga.esdesarrollo34/3412/1646/58—
vado-manisesmanises.esdesarrollo10/104/414/17—
xixonaxixona.esdesarrollo7/713/2120/74—
animales-algecirasocms-algeciras.westeurope.cloudapp.azure.comprueba24/242/226/42—
animales-balearescaib.esprueba7/714/1521/25—
bonificacion-ivtm-barcelonaajuntament.barcelona.catprueba14/140/914/26—
declaracion-callosacallosadesegura.esprueba14/148/1322/30—
declaracion-ciudadrealciudadreal.esprueba16/1615/2331/44—
declaracion-mulamula.esprueba18/1810/3028/36—
declaracion-suancessuances.esprueba16/164/420/24—
devolucion-oepmoepm.esprueba4/46/1410/22—
domiciliacion-atibatib.esprueba0/26/136/522
domiciliacion-corunasede.coruna.galprueba19/198/2827/57—
domiciliacion-ibi-torrejonayto-torrejon.esprueba10/146/2216/334
emprendedores-lanbideeuskadi.eusprueba14/144/718/19—
espacios-culturales-valenciacultural.valencia.esprueba8/81/39/13—
fraccionamiento-canariaswww3.gobiernodecanarias.orgprueba16/1619/2335/44—
fraccionamiento-esamursede.carm.esprueba5/511/1716/32—
instancia-algecirasocms-algeciras.westeurope.cloudapp.azure.comprueba30/302/332/32—
obra-menor-gijondrupal.gijon.esprueba10/1017/2127/36—
obra-menor-xermadexermade.orgprueba9/94/713/19—
padron-venturadaventurada.orgprueba0/014/2014/26—
queja-sanidadsede.mscbs.gob.esprueba24/242/226/32—
queja-trabajomites.gob.esprueba9/102/511/181
reclamacion-teasede.tea.hacienda.gob.esprueba21/2125/2746/46—
recurso-euskadieuskadi.eusprueba9/95/514/14—
representacion-euskadieuskadi.eusprueba7/122/99/205
representacion-rosesroses.catprueba4/40/14/8—
rotulos-puerto-cruzciudadsostenible.puertodelacruz.esprueba19/1917/1736/40—
solicitud-jcyleduca.jcyl.esprueba22/220/022/22—
solicitud-palmapalma.esprueba20/204/424/33—
subvencion-clubes-torreviejatorrevieja.esprueba8/85/813/15—
subvencion-juventud-extremadurajuventudextremadura.juntaex.esprueba14/146/620/30—
terceros-crevillentcrevillent.esprueba22/2219/2641/45—
terceros-dipburgosburgos.esprueba14/1458/6072/74—
terceros-dipucadizdipucadiz.esprueba15/1510/1925/38—
terceros-doshermanasdoshermanas.esprueba17/1715/1532/32—
terceros-euskadieuskadi.eusprueba2/212/1214/34—
terceros-usgerencia.us.esprueba6/623/2329/39—
terraza-tudelatudela.esprueba18/184/622/33—
Generado el 2026-10-08 con 3 ejecuciones del banco de formularios.