CatalogoDati pubblici ›Trasparenza

Sicurezza sul lavoro — gli infortuni provincia per provincia

Gli infortuni sul lavoro denunciati all'INAIL, provincia per provincia: l'andamento negli anni, i casi mortali, i settori, e la mappa d'Italia del tasso per 1.000 abitanti. Dati ufficiali 2020-2024, incrociati da soli con la popolazione ISTAT.

📈 La tua provincia🏭 I settori🗺️ La mappa

spazio dati «sicurezza-lavoro» — il collante della suite: sul tuo dispositivo, multi-utente con un invito (link o QR), cifrato end-to-end.

▶ Apri la suite (3 micro-app)

oppure aprila come app unica

sicurezza sul lavoroinfortuniinailmorti sul lavoroprovinceprevenzionemappatrend

Cosa registra

  • Sigla provincia

Composta da 3 micro app

Un compito ciascuna, sugli stessi dati: ogni micro app legge e scrive lo spazio dati condiviso «sicurezza-lavoro» (col tuo consenso, chiesto alla prima apertura). Tutto resta sul tuo dispositivo — e con un solo invito l'intera suite diventa multi-utente, cifrata end-to-end.

Come funziona

Questa è un'app Reactive: un semplice documento di testo che il browser trasforma in un'app funzionante — moduli, dati dal vivo, tabelle, statistiche e persino grafici, senza installare né configurare nulla.

  1. Usala subito. Premi «Usa questa app»: si apre subito nel tuo browser, già pronta, con i dati salvati solo sul tuo dispositivo.
  2. I tuoi dati restano tuoi. Tutto è memorizzato in locale sul dispositivo, separato per ogni app: niente account, niente server, niente da configurare.
  3. Rendila tua. Il testo qui sotto è l'app per intero: copialo, cambia campi, viste e parole, e le modifiche diventano subito interattive.
  4. Condividila come file. Un'app è un semplice file: salvalo, esportalo o condividilo con un link; e con la collaborazione cifrata più persone modificano gli stessi dati in tempo reale.
Il testo dell'app
# ⛑️ Sicurezza sul lavoro

Gli infortuni sul lavoro denunciati all'INAIL, provincia per provincia:
l'andamento negli anni, i casi mortali, i settori, e la mappa d'Italia del
tasso per 1.000 abitanti. Dati ufficiali 2020-2024, incrociati da soli con la
popolazione ISTAT.

:::::page{title="La tua provincia" icon="📈"}

## L'andamento nella tua provincia

Sigla della provincia (es. `BO`, `MI`, `TO`, `NA`, `PA`).

::input[prov]{value="BO" placeholder="Sigla provincia"}

::od-query{into="trend" sql="SELECT anno AS anno, sum(infortuni) AS infortuni FROM inail_infortuni WHERE sigla = '{#prov}' GROUP BY anno ORDER BY anno"}

::chart-line{data="trend" x="anno" y="infortuni" height="16rem"}

I **casi mortali** meritano un grafico a parte (la scala è diversa di tre
ordini di grandezza):

::od-query{into="mortali" sql="SELECT anno AS anno, sum(mortali) AS morti FROM inail_infortuni WHERE sigla = '{#prov}' GROUP BY anno ORDER BY anno"}

::chart-bar{data="mortali" x="anno" y="morti" height="14rem"}

:::table{path="trend" headers="Anno,Infortuni denunciati" pagesize="6" search="false"}
{anno} | {infortuni}
:::

:::::

:::::page{title="I settori" icon="🏭"}

## Dove ci si infortuna

Le denunce del 2024 nella provincia scelta, per gestione assicurativa:
l'industria e i servizi, l'agricoltura, il conto Stato (scuola e PA).

::od-query{into="settori" sql="SELECT gestione AS gestione, sum(infortuni) AS infortuni FROM inail_infortuni WHERE sigla = '{#prov}' AND anno = 2024 GROUP BY gestione ORDER BY infortuni DESC"}

::chart-pie{data="settori" label="gestione" value="infortuni" height="16rem"}

E la distinzione di genere, sugli stessi dati:

::od-query{into="genere" sql="SELECT CASE genere WHEN 'M' THEN 'Uomini' WHEN 'F' THEN 'Donne' ELSE genere END AS genere, sum(infortuni) AS infortuni FROM inail_infortuni WHERE sigla = '{#prov}' AND anno = 2024 GROUP BY 1 ORDER BY 2 DESC"}

::chart-pie{data="genere" label="genere" value="infortuni" height="14rem"}

:::::

:::::page{title="La mappa" icon="🗺️"}

## Il tasso di infortuni, provincia per provincia

Ogni provincia colorata per **infortuni ogni 1.000 abitanti** (2024): il
numeratore è INAIL, il denominatore la popolazione ISTAT. Passa il mouse per
il valore.

::od-query{into="mappa" sql="SELECT p.provincia AS provincia, p.geojson AS geojson, t.tasso AS tasso FROM istat_confini_province p JOIN (SELECT i.sigla, round(1000.0 * sum(i.infortuni) / ab.pop, 1) AS tasso FROM inail_infortuni i JOIN (SELECT c.sigla, sum(po.popolazione) AS pop FROM istat_confini_comuni c JOIN istat_popolazione po ON po.codice_istat = c.codice_istat GROUP BY 1) ab ON ab.sigla = i.sigla WHERE i.anno = 2024 GROUP BY i.sigla, ab.pop) t ON t.sigla = p.sigla" limit="150"}

:::map{path="mappa" geojson="geojson" fill="tasso" height="28rem"}
**{provincia}** — {tasso} infortuni ogni 1.000 abitanti
:::

Il tasso rapportato agli abitanti (non agli occupati) è un indicatore di
*impatto sul territorio*: le province manifatturiere e agricole svettano.

:::::

---

I dati sono le **denunce di infortunio INAIL** (Open Data, CC BY 4.0),
aggregate per provincia, anno, gestione e genere, e la **popolazione** e i
**confini** ISTAT (CC BY 4.0). Le fonti si agganciano da sole con la sigla
della provincia. Un infortunio *denunciato* non è necessariamente
*riconosciuto*: per confronti rigorosi consulta anche i dati INAIL definiti.
Nessun dato tuo lascia il dispositivo.