← Natrag
Tech

OIB kao jedini istiniti identitet: zašto name matching ne radi

RiNET Engineering· 8. lipnja 2026.· 4 min čitanja· 19 pregleda
OIB kao jedini istiniti identitet: zašto name matching ne radi
🎧 Poslušaj članak

Kad vam sustav za entity matching javi stotinu lažnih pozitivnih rezultata za Ivana Horvata, shvatite da ime i prezime nisu identitet. Name matching je, u najboljem slučaju, vjerojatnosna igra. U najgorem, izvor kaosa u bazama podataka koji generira ogromne troškove i pravne rizike. Problem nije u lošoj implementaciji algoritama, već u fundamentalnoj zabludi da je string ljudskog imena dovoljno jedinstven da identificira osobu. Hrvatska ima više od deset tisuća registriranih Ivana Horvata, a to je samo vrh ledene sante. Kad u jednadžbu ubacite varijacije u pisanju imena, dijakritičke znakove, skraćenice i pogreške pri unosu, dobijete eksponencijalni rast mogućih kombinacija. Name matching algoritmi, bilo da koriste Levenshtein distance, Soundex ili naprednije fonetske metode, uvijek rade s aproksimacijama. A u reguliranim industrijama, gdje svaka pogreška nosi financijsku ili pravnu posljedicu, aproksimacija nije opcija.

OIB je, s druge strane, matematički definiran identitet. Njegova struktura, s jedanaest znamenki od kojih je posljednja kontrolni broj izračunat MOD11 algoritmom, omogućuje automatsku validaciju unosa. To znači da sustav može odbaciti pogrešan OIB u trenutku unosa, prije nego što uopće uđe u bazu. No ključna prednost OIB-a nije samo u validaciji formata, već u njegovoj funkciji jedinstvenog identifikatora u više registara. Državna uprava koristi OIB za povezivanje podataka iz MUP-a, Porezne uprave, HZMO-a i drugih institucija. To nije slučajno – to je arhitektonska odluka koja name matching čini suvišnim. Kada imate OIB, ne trebate pogađati je li Ivan Horvat iz Zagreba taj onaj iz Splita. Problem je što mnogi poslovni sustavi, osobito oni koji su nastali prije uvođenja OIB-a ili su migrirali iz starijih arhitektura, i dalje koriste kombinaciju imena i datuma rođenja kao primarni ključ. To je tehnički anakronizam.

Pogledajmo konkretan primjer iz prakse. Jedna infrastrukturna firma, s kojom smo radili na konsolidaciji korisničke baze, imala je više od četiri tisuće duplikata u bazi od sto dvadeset tisuća zapisa. Name matching algoritam, konfiguriran s pragom sličnosti od devedeset posto, identificirao je tri tisuće potencijalnih duplikata. No ručna provjera je pokazala da je samo četrdeset posto tih kandidata stvarno bilo duplicirano. Ostalo su bili lažni pozitivni rezultati – ljudi sa sličnim imenima, ali različitim OIB-ovima. Kad smo prebacili matching na OIB kao primarni ključ, broj duplikata pao je na nulu. Nije bilo potrebe za pragovima sličnosti, fonetskim algoritmima ili ljudskom provjerom. OIB je eliminirao interpretaciju. To nije teorijska prednost – to je konkretna ušteda u vremenu i resursima, jer svaki lažni pozitivni rezultat zahtijeva ljudsku intervenciju koja košta i vrijeme i novac.

No OIB nije savršen. Problem nastaje kad sustav ne može dohvatiti OIB iz vanjskih izvora ili kad je unos OIB-a neobavezan. U praksi, mnoge web aplikacije i korisnička sučelja ne validiraju OIB na unosu, što dovodi do upisa pogrešnih ili nepotpunih vrijednosti. Ovdje ulazi u igru MOD11 validacija, koja je jednostavna, ali učinkovita. Algoritam uzima prvih deset znamenki, množi ih s težinskim faktorima, zbraja, dijeli s jedanaest i uspoređuje ostatak s jedanaestom znamenkom. Ako ne štima, unos je pogrešan. Implementacija ove validacije na frontendu ili backendu zahtijeva doslovno desetak linija koda. Ipak, vidjeli smo sustave koji tu provjeru ne rade, čak ni u reguliranim industrijama gdje je OIB obavezan. Rezultat su baze podataka s tisućama zapisa koji imaju OIB jednak nuli, jedinici ili nekom drugom besmislenom nizu. To nije problem tehnologije, već discipline unosa podataka.

Ovaj pristup razvijamo na rinet.one — za detalje slobodno se javi.

Druga dimenzija problema je cross-referenciranje OIB-a s javnim registrima poput Sudskog registra ili DIP-ovog sustava. Sudski registar, koji vodi trgovačke sudove, sadrži podatke o svim poslovnim subjektima, uključujući OIB-e članova uprave, prokurista i osnivača. DIP, odnosno Digitalni identitet osobe, omogućuje provjeru identiteta putem e-Građana. Kad spojite OIB s tim izvorima, dobivate mogućnost provjere tko je tko u stvarnom vremenu. Na primjer, prilikom sklapanja ugovora ili otvaranja poslovnog računa, možete automatski provjeriti je li osoba koja se predstavlja kao direktor tvrtke zaista upisana u Sudski registar s tim OIB-om. Name matching to ne može – on samo kaže da ime sliči. OIB s cross-referencom daje odgovor da ili ne. I to bez ljudske intervencije.

Implementacija OIB-a kao primarnog identifikatora u entity matching sustavu nije samo tehnička odluka, već arhitektonska promjena u načinu na koji tretirate podatke. To znači da ime i prezime postaju deskriptivni atributi, a ne ključevi. Što implicira da sustav mora imati mehanizam za dohvat OIB-a prije nego što uopće počne s obradom. U praksi, to znači integraciju s vanjskim izvorima poput OIB servisa, bilo putem API-ja ili batch importa. Ako radite u industriji koja ima pristup državnim registrima, taj je put relativno ravan. No i bez pristupa državnim bazama, možete implementirati interni OIB lookup – jednostavno tako da OIB postane obavezno polje prilikom unosa korisnika, s MOD11 validacijom i provjerom duplikata u vlastitoj bazi. To nije komplicirano, ali zahtijeva disciplinu.

Ključna lekcija iz našeg iskustva s desecima projekata na kojima smo radili jest da name matching stvara iluziju kontrole. Algoritmi su dobri, ali su fundamentalno ograničeni prirodom ljudskog imena. Ime nije identitet – ono je kulturološki i jezični konstrukt koji se mijenja, varira i duplicira. OIB je, nasuprot tome, dizajniran da bude identitet. On je jednoznačan, verificiran i nepromjenjiv u kontekstu državnih registara. Kad ga koristite kao sidro, cijeli sustav postaje deterministički. Nema vjerojatnosti, nema pragova, nema lažnih pozitiva. To je razlika između pogađanja i znanja. I u svijetu gdje podaci pokreću odluke, znanje je jedina valuta koja vrijedi.

Zato, kad netko kaže da ima dobar name matching sustav, pitajte ga koliko lažnih pozitivnih rezultata generira. Ako vam kaže da ih nema, ili laže ili ne provjerava. OIB rješava taj problem ne zato što je pametniji, već zato što je dizajniran za ono što name matching pokušava postići – jedinstvenu identifikaciju. Sve ostalo je zakrpa na sustavu koji je od početka bio osuđen na pogreške.

Ako te zanima ovakva arhitektura ili gradiš nešto slično za svoju instituciju — javi se preko rinet.one.

OIBidentity resolutionentity matchingCroatian PINdata qualityRi.NETsovereign AIAI operativni sustavCroatian AItehnologija

Zanima vas ovakva AI tehnologija?

RiNET gradi sovereign AI rjesenja za javni sektor i poduzeca - od civic intelligence do automatizacije nabave.

Kontaktirajte nas →
0 komentara

Komentari