Hoy he dedicado mi día a perfeccionar el método de extracción del NIF de los contratistas que encuentro en los datos oficiales. A priori parece fácil. Basta con utilizar el dígito de control (o la letra) para comprobar la validez de cada NIF.

Chupado, ¿verdad? Pues no.
El problema es bastante más complejo. Y, algorítmicamente, muy interesante.

La primera vuelta de tuerca viene cuando el funcionario aplica la imaginación a la hora de escribir el NIF en el expediente. Pero tiene fácil solución 🎉.
Pero con tantísimos contratos públicos, tarde o temprano te encuentras con casos más exóticos, como estos de la imagen. Porque las herramientas informáticas de algunas administraciones no validan los datos al introducirlos, así que pueden escribir cualquier cosa…

Una fiesta.
Algunos contratos tienen lotes y varios adjudicatarios. ¡No problemo! Se añaden al expediente tantos como sea necesario, ¿no?

Pues tampoco. En la práctica, a veces encuentro que meten TODOS los adjudicatarios como si fueran uno solo. EN EL MISMO CAMPO. Y tengo que separarlos…
Lógicamente no hago nada manualmente. Sería imposible. He escrito un programa y lo aplico a los 3,2 millones de expedientes.

En uno me he topado con esto. Es un caso excepcional, muy extraño; y que puede inducir fácilmente a error. Por eso lleva tanto tiempo hacerlo bien™️.
Ahora viene la segunda derivada: los contratistas extranjeros. Si ya tiene tela detectar un NIF español, solo en la 🇪🇺UE hay 27 formatos más.

Una primera opción es hacer una detección formal. Es decir, detectarlos por su forma. Mediante expresiones regulares queda así. 👇
Un segundo paso es aplicar el algoritmo de cálculo del dígito de control. Pero… ¿dónde está definido el algoritmo oficial que usa cada país? 🔍

Spoiler: algunos países no utilizan algoritmo alguno… Y en otros hay dígitos que son simplemente aleatorios.
La cosa puede complicarse todo lo que queramos. Veamos, por ejemplo, este contrato del Ayuntamiento de Cullera.

¡Al NIF del contratista le falta un dígito! Podríamos darlo por perdido pero… ¿y si es justo la pyme del cuñado del alcalde? 🤣
Una solución es aplicar el algoritmo inverso y calcular el dígito faltante. Así podemos corregir unos cuantos miles de contratos que, si no, no podrían cruzarse con otras fuentes de datos.

🚫 B9699103 👈 Lo que publica el Estado… (incorrecto)
✅ B96991039 👈 El NIF corregido
Esto es solo una pincelada de la complejidad que puede alcanzar resolver un problema que no debería haberse creado. Porque si no se validan los datos en el momento de su introducción, arreglarlo luego puede ser imposible. Y al sistema llega todo tipo de chatarra inútil como esta.
Como siempre, muchísimas gracias a mis patronos ❤️, que es quienes hacen posible que pueda poner mis magulladas neuronas a resolver esto. Que servirá para que pronto todos tengamos una nueva herramienta digital que dará más transparencia a los concursos y al dinero público. 🙏

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Jaime Gómez-Obregón

Jaime Gómez-Obregón Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @JaimeObregon

Jan 28
❗️ Lo que dice Mikel es para reflexionar. ¿Qué transparencia es esta si para utilizar los datos públicos hay que ser un supermán o darse la paliza que me estoy dando? Las AAPP tienen que publicar datos que tengan un mínimo de calidad.
Y la calidad del dato no es solo que estén libre de errores (los que me leéis os lo estaréis pasando pipa con la cantidad de ellos que estoy cazando y comentando). Es también que los datos sean precisos.

Valga como ejemplo este contrato público… 👇
contrataciondelestado.es/wps/poc?uri=de…
Son 5.000 euros y el objeto del contrato solo tiene una palabra: «mascarillas». Mascarillas, sí, pero… ¿cuántas?, ¿de qué tipo?…

El expediente tiene que describir con un mínimo de rigor lo que se compra. Ahora hay MILES de contratos públicos con un objeto impreciso, ambiguo…
Read 6 tweets
Jan 27
Sigo revisando los trillones de datos de la Plataforma de Contratación. En los capítulos anteriores os contaba que hay cientos de organismos públicos cuyos datos son manifiestamente erróneos. Es el caso, por ejemplo, del Ayuntamiento de Centenera…

Hoy he dado un paso más en la validación de los datos de los contratantes y contratistas: he buscado todos los NIF en el censo de contribuyentes de la Agencia Tributaria 🎉.

Así he podido cazar errores difíciles de cazar.

¡Veamos uno muy escurridizo! 👇
Se trata de los datos erróneos de la empresa pública HOSTELERÍA ASTURIANA, S. A. (HOASA). En el portal de contratación del Estado, y si te fijas mucho, puedes ver dos NIF diferentes para esta empresa, lo cual ya es un cantazo…
Read 21 tweets
Jan 27
Qué curioso esto. Entre los órganos de contratación del Estado encuentro RUMASA. La empresa original, la de 1961 que fue expropiada en 1983. Está aún en liquidación.

Por cotillear, me he bajado el último informe de auditoría y las cuentas anuales, donde se resume la historia. 👇
No puedo enlazar el documento porque es uno de esos enlaces mágicos del Estado que desaparecen… ☹️. Ni siquiera Google llega a ellos, y por lo tanto no aparecen en buscadores.

Documentos públicos que no se publican.
La transparencia de Schrödinger.
La historia de siempre.
La memoria dice que el culebrón de RUMASA provocó MÁS DE 1.500 JUICIOS y procedimientos.

Aquello duró 31 años: desde 1983 hasta 2014.
Read 4 tweets
Jan 25
📄 Anoche explicaba que hay miles de expedientes oficiales de contratación con datos erróneos de empresas, y ponía ejemplos. Bueno, ¡pues también en los órganos de contratación hay errores!

De verdad, alucino con la pésima calidad de los datos públicos. Me explico… 👇
El órgano de contratación es la entidad pública que contrata. El pagano (el que paga, vamos). Cuando este órgano es una corporación local (un ayuntamiento), su NIF comienza por la letra «P».

Es lo que sucede, por ejemplo, en el Ayuntamiento de Torrelavega (Cantabria). 👇
Sin embargo, hay entes públicos cuyos datos están mal en la Plataforma de Contratación del Sector Público 🤦‍♂️. Es el caso, por ejemplo, del Ayuntamiento de Vierlas (Zaragoza). Han puesto un DNI en lugar del NIF del ayuntamiento. Y eso no puede ser. 👇

🔗 contrataciondelestado.es/wps/poc?uri=de…
Read 11 tweets
Jan 25
Observo que en los contratos públicos el nombre de un mismo contratista puede aparecer de muchas formas diferentes:

ACME, S.A.
ACME, S. A.
ACME S.A.
ACME SA
ACME SOCIEDAD ANÓNIMA
En mi herramienta quiero presentar los nombres de una forma homogénea, dentro de lo posible. ¿Alguien sabe si hay una forma canónica, un estándar para nombrar?

Se me ha ocurrido ir a la Agencia Tributaria y mirar su listado de grandes morosos. Suelen hacer estas cosas bien™️.
Pero parece que en la AEAT tampoco hay una forma canónica, estándar, de nombrar las sociedades. Solo en esta página aleatoria del listado de morosos veo que utilizan hasta cuatro sufijos diferentes para las sociedades limitadas.

🔗 sede.agenciatributaria.gob.es/static_files/S…
Read 13 tweets
Jan 24
Esta noche estoy en una fiesta.
¡Es la fiesta de los NIF de los contratistas del Estado 🎉🥳🍾!

Os lo cuento… 🧵
A los contratos públicos concurren licitadores (empresas y autónomos) que presentan sus ofertas. El nombre del ganador (o ganadores, pues pueden ser varios si el contrato tiene lotes) queda grabado con letras áureas en los anales de la historia: el expediente del contrato.
(Sí; eso de «los anales de la historia» suena fatal).
Read 18 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(