micaco
Menú14+

Observatori · Metodologia v1

Com calculem el risc.

El score composite és un detector estadístic, no un veredicte d'irregularitat. Llegir-lo bé significa entendre la fórmula i els caveats de cada factor. Aquí els tens tots.

La fórmula en una línia.

score_global = Σ (factor_i × pes_i)
             = 0.30 × concentracio_proveidor
             + 0.25 × negociats_sense_publi
             + 0.15 × baixa_baixa
             + 0.10 × prorrogues
             + 0.20 × eventualitat_rlt

Cada factor és un número 0..1 (winsoritzat al p95 per estabilitzar outliers). El resultat es multiplica per 100 per llegir-se com a percentatge.

Baixa

< 30

Mitja

30–60

Alta

> 60

Els cinc factors.

  • Concentració proveïdor

    pes 30%
    Fórmula
    max(% importe top-1 proveïdor) / 100
    Fonts
    PSCP / PSCP-Cat + dim.proveedores
    Interpretació
    Si un únic proveïdor concentra >50% del volum adjudicat per un organisme, el factor satura al 100%. Mesura captura. No prejutja qualitat tècnica.
    ⚠ Caveat
    Organismes amb molt poc volum (n<5 contractes) sortiran inflats. Filtrem per >= 3 contractes en finestra de 3 anys.
  • Negociats sense publicitat

    pes 25%
    Fórmula
    % contractes amb procedimiento = "negociado_sin_publicidad"
    Fonts
    fact.contratos.procedimiento (camp tipificat al CODICE)
    Interpretació
    Procediment legal però d'excepció. Una proporció alta de manera sostinguda mereix preguntar per la motivació tècnica de cada un.
    ⚠ Caveat
    No incloem 'menors' (legalment exempts), només negociats sense publicitat que justifiquen criteris d'urgència o singularitat.
  • Baixa baixa nominal

    pes 15%
    Fórmula
    % contractes amb baixa < 5% sobre import licitat
    Fonts
    fact.contratos.importe_licitado vs importe_adjudicado
    Interpretació
    Una baixa molt curta sostinguda pot indicar baix nivell de competència real o licitacions ajustades a l'oferta del proveïdor. No és per si sol irregular.
    ⚠ Caveat
    Inaplicable en serveis amb preus oficials o en obres amb projecte tancat — aquests es filtren del càlcul.
  • Pròrrogues

    pes 10%
    Fórmula
    % contractes amb >= 1 pròrroga registrada
    Fonts
    fact.contratos_prorrogues
    Interpretació
    Pròrrogues encadenades retarden noves licitacions i mantenen el mateix proveïdor. Pes baix perquè pot tenir causes operatives legítimes.
    ⚠ Caveat
    Si la ingesta no captura totes les pròrrogues (publicades en perfils diferents) el valor estarà subestimat — tractem com a límit inferior.
  • Eventualitat RLT

    pes 20%
    Fórmula
    % places eventuals sobre total places ocupades del RLT
    Fonts
    dim.puestos_rlt + dim.persona_puesto
    Interpretació
    Plantilla amb molts eventuals indica gestió per excepció i obre la porta a personalisme polític. Compara any contra any per detectar pujades sobtades.
    ⚠ Caveat
    Algunes substitucions per maternitat o IT temporals s'etiqueten 'eventual'. Filtrem per durada > 6 mesos.

Com llegir-ho bé.

  1. Un score alt no és prova d'irregularitat — detecta concentració estructural. Sempre cal contrastar.
  2. Mira el desglossament: dos organismes amb score 70 poden tenir perfils molt diferents. Un dominat per concentració, l'altre per negociats: el periodisme és diferent.
  3. Compara amb organismes del mateix tipus i mida. Una EPE petita no és comparable amb un ajuntament gran.
  4. Mira l'evolució temporal: un score que puja és una història; un score alt estable pot ser estructural i conegut.
  5. Cross-ref amb el timeline i el BORME. Un canvi al consell d'administració just abans d'una adjudicació singular val la pena preguntar.

Reproduibilitat

El codi de càlcul viu a apps/micaco-dades/sql/migrations/0016_risc_concentracio.sql. Els pesos són constants documentades a la vista pub.v_risc_factors. Cada organ exposa el seu desglossament a l'API:

GET /v1/observatori/organ/{organo_id}
Metodologia · Observatori civic-intel · Micaco · Micaco · Ho sabem TOT de Badalona