Dati sintetici di bilancio

Generazione, archetipi e uso per testare motori automatici di analisi

Dati sintetici
Bilanci
Imprese
Generazione, archetipi e uso per testare motori automatici di analisi
Autore/Autrice

Paolo Volterra

Data di Pubblicazione

14 luglio 2026

1 Sintesi

Questo documento descrive un piccolo laboratorio per generare dati sintetici di bilancio e usarli per provare un motore automatico di analisi.

L’idea nasce da un problema pratico: se vogliamo spiegare, testare o stressare un algoritmo di lettura dei bilanci, non sempre e’ opportuno usare dati reali. I dati reali possono contenere informazioni riconoscibili, possono essere coperti da vincoli di riservatezza e possono rendere difficile condividere esempi didattici.

I dati sintetici risolvono questo problema quando sono costruiti bene:

  • non rappresentano imprese reali;
  • mantengono una struttura economico-finanziaria plausibile;
  • permettono di creare molti casi diversi;
  • consentono di misurare quanto un algoritmo screma, filtra o segnala casi critici;
  • rendono esplicite le regole usate per generare il campione.

Nel progetto sono stati generati 1000 bilanci sintetici e un primo motore di screening trasparente. Lo screening classifica ogni impresa sintetica in PASS, WATCH o REJECT.

metrica valore
0 Imprese sintetiche generate 1000
1 Archetipi disponibili 7
2 Bilanci quadrati 1000/1000
3 Output screening disponibili REJECT, WATCH, PASS

2 Premessa: il problema dei dati di bilancio

Una premessa di contesto riguarda la disponibilita’ dei bilanci societari in Italia.

I bilanci depositati dalle societa’ sono documenti pubblici in senso giuridico: esistono nel Registro delle Imprese e possono essere richiesti. Tuttavia, per un uso analitico sistematico, la situazione e’ diversa. Nella pratica l’accesso avviene spesso per singola impresa, tramite visure, atti o bilanci scaricati puntualmente, con costi e interfacce pensate piu’ per la consultazione documentale che per il riuso massivo come open data.

Questo crea una frizione importante:

  • il dato esiste;
  • il dato e’ formalmente pubblico;
  • ma non e’ normalmente disponibile come dataset aperto, bulk, machine-readable e liberamente riusabile;
  • l’analisi su larga scala richiede quindi acquisto di dati, scraping, estrazioni puntuali o fonti proprietarie.

Il tema si collega alla politica europea sugli open data. La Direttiva Open Data e PSI (European Parliament and Council of the European Union 2019) promuove il riuso dell’informazione del settore pubblico e introduce il principio degli high-value datasets. Tra le categorie di alto valore rientrano anche i dati su companies and company ownership, cioe’ imprese e titolarita societaria. Il Regolamento di esecuzione sugli high-value datasets (European Commission 2023) rafforza l’idea che alcune basi dati pubbliche debbano essere rese disponibili con condizioni tecniche e giuridiche favorevoli al riuso.

Questa osservazione va formulata con precisione: non si assume qui che esista gia’ un obbligo europeo pienamente operativo di pubblicare in open data tutti i bilanci completi delle societa’ italiane. Il punto e’ piu’ pragmatico: c’e’ una tensione evidente tra l’obiettivo europeo di riuso dei dati pubblici ad alto valore e l’attuale disponibilita’ operativa dei bilanci societari italiani, che rimane prevalentemente puntuale e a pagamento.

In altri paesi esistono esperienze piu’ vicine a dataset analitici aperti o facilmente riusabili. Un esempio utile e’ la documentazione di dataset su bilanci societari norvegesi (Wahlstrøm 2022), che mostra il valore di una base dati ampia e strutturata sui financial statements aziendali.

In questo contesto, i dati sintetici non sostituiscono l’open data reale. Servono pero’ a tre scopi:

  1. costruire esempi condivisibili senza dati riservati o proprietari;
  2. sviluppare e testare motori di analisi prima di applicarli a basi dati reali;
  3. rendere esplicite regole, indicatori e soglie in un ambiente controllato.

C’e’ anche un aspetto culturale. La disponibilita’ di dati di bilancio aperti, strutturati e riusabili non aiuterebbe solo chi sviluppa algoritmi. Aiuterebbe anche:

  • chi redige i bilanci, per comprendere meglio come le informazioni vengono lette e confrontate;
  • chi li legge, per allenarsi su casi, ratios, riclassificazioni e segnali di rischio;
  • chi li spiega, per costruire esempi verificabili e non dipendenti da singoli documenti proprietari;
  • chi fa ricerca, per confrontare metodi e risultati su basi comuni;
  • chi sviluppa strumenti, per migliorare controlli, parser e motori di analisi.

Una community che puo’ lavorare su dati aperti o su dataset sintetici ben documentati tende a produrre sinergie: corregge errori, propone metriche, confronta approcci, costruisce esempi didattici e aumenta la conoscenza condivisa. In questo senso il dato non e’ solo materia prima per modelli automatici, ma infrastruttura culturale.

3 Cosa sono i dati sintetici

Per dati sintetici intendiamo dati generati artificialmente, ma costruiti per assomigliare a una certa famiglia di fenomeni reali.

Nel nostro caso il fenomeno e’ il bilancio di una societa’. Un bilancio sintetico non e’ il bilancio di una vera impresa, ma deve avere almeno alcune caratteristiche realistiche:

  • ricavi in un ordine di grandezza credibile;
  • margini compatibili con lo scenario aziendale;
  • capitale circolante plausibile;
  • debiti e patrimonio netto coerenti con la rischiosita’ del caso;
  • stato patrimoniale che quadra;
  • indicatori bancari interpretabili.

Il punto importante e’ che “sintetico” non significa “casuale senza regole”. Un numero casuale puo’ essere inutile; un dato sintetico deve essere governato da ipotesi esplicite.

La letteratura sui dati sintetici nasce anche nel campo della protezione della riservatezza statistica: l’idea e’ produrre dati utilizzabili per analisi senza rilasciare direttamente microdati sensibili (Rubin 1993; Little 1993; Drechsler and Haensch 2023). In anni piu’ recenti il tema si e’ esteso alla generazione di dati tabellari per machine learning, benchmarking e condivisione controllata di dataset (Patki et al. 2016; Xu et al. 2019; Stoian et al. 2025).

4 Perche’ generarli

I dati sintetici servono soprattutto quando vogliamo lavorare sul metodo.

Esempi:

  • spiegare come funziona un motore di analisi;
  • costruire case study senza esporre una societa’ reale;
  • testare filtri automatici;
  • verificare se le soglie sono troppo severe o troppo permissive;
  • produrre casi estremi, come crisi di liquidita’ o forte indebitamento;
  • creare dataset per esercizi, formazione o benchmark.

Nel lavoro su XBRL il problema era mostrare il processo end-to-end senza trasformare il caso in esposizione di una societa’ reale. Qui facciamo un passo ulteriore: invece di anonimizzare un bilancio reale, generiamo molti bilanci fittizi con regole controllate.

5 Come sono stati generati

Il generatore e’ contenuto nel file synthetic_balance_generator.py.

Il flusso e’ il seguente:

  1. viene scelto casualmente un archetipo aziendale;
  2. vengono estratti i driver principali dentro i range previsti per quell’archetipo;
  3. vengono calcolati conto economico, stato patrimoniale e indicatori;
  4. viene forzata la quadratura minima dello stato patrimoniale;
  5. il dataset viene esportato in CSV ed Excel.

La generazione e’ riproducibile: usando lo stesso seed, si ottiene lo stesso dataset.

python3 synthetic_balance_generator.py --n 1000 --seed 42

Gli output principali sono:

  • OUT/bilanci_sintetici.csv;
  • OUT/bilanci_sintetici.xlsx;
  • OUT/archetipi.xlsx;
  • OUT/archetipi_A4_trasposta.xlsx;
  • OUT/parametri_algoritmo.xlsx.

6 Gli archetipi

Gli archetipi sono profili economico-finanziari. Non sono imprese reali: sono stampi logici usati per generare casi diversi.

archetipo descrizione
0 sana_stabile Impresa equilibrata: margini buoni, leva conte...
1 crescita Impresa in espansione: ricavi in aumento, fabb...
2 margini_bassi Impresa con volumi anche elevati ma redditivit...
3 indebitata Impresa operativa ma con struttura finanziaria...
4 tensione_liquidita Impresa con assorbimento di cassa: incassi len...
5 crisi Impresa in deterioramento: ricavi in calo, EBI...
6 turnaround Impresa in recupero: crescita moderata, margin...

Ogni archetipo ha range diversi per ricavi, crescita, margini, leva finanziaria, patrimonio netto e capitale circolante. In questo modo il dataset contiene imprese sane, imprese in crescita, imprese fragili e imprese in crisi.

La tabella seguente e’ la versione ruotata, pensata per lettura e stampa A4.

variabile unita sana_stabile crescita margini_bassi indebitata tensione_liquidita crisi turnaround
0 Descrizione NaN Impresa equilibrata: margini buoni, leva conte... Impresa in espansione: ricavi in aumento, fabb... Impresa con volumi anche elevati ma redditivit... Impresa operativa ma con struttura finanziaria... Impresa con assorbimento di cassa: incassi len... Impresa in deterioramento: ricavi in calo, EBI... Impresa in recupero: crescita moderata, margin...
1 Ricavi EUR 8.0 - 80.0 mln 5.0 - 60.0 mln 15.0 - 120.0 mln 10.0 - 100.0 mln 8.0 - 70.0 mln 5.0 - 50.0 mln 6.0 - 65.0 mln
2 Crescita ricavi % -3.0% - 6.0% 10.0% - 35.0% -2.0% - 8.0% -5.0% - 10.0% -10.0% - 4.0% -30.0% - -5.0% 0.0% - 18.0%
3 EBITDA margin % 10.0% - 18.0% 8.0% - 16.0% 2.5% - 6.5% 6.0% - 12.0% 3.5% - 9.5% -8.0% - 3.5% 3.0% - 11.0%
4 Ammortamenti / ricavi % 1.5% - 3.5% 1.8% - 4.0% 0.8% - 2.5% 1.5% - 3.5% 1.2% - 3.0% 1.0% - 3.0% 1.2% - 3.2%
5 PFN / EBITDA x 0.4x - 1.8x 1.0x - 3.0x 1.5x - 4.2x 3.5x - 6.5x 2.8x - 5.5x 4.5x - 9.0x 2.0x - 4.8x
6 Patrimonio netto / attivo % 32.0% - 55.0% 22.0% - 42.0% 18.0% - 38.0% 8.0% - 25.0% 10.0% - 30.0% 2.0% - 18.0% 12.0% - 32.0%
7 Giorni magazzino gg 35 - 85 55 - 130 40 - 100 65 - 150 95 - 190 100 - 220 70 - 150
8 Giorni clienti gg 45 - 95 55 - 120 45 - 105 70 - 150 90 - 180 95 - 210 65 - 150
9 Giorni fornitori gg 45 - 110 55 - 130 50 - 125 65 - 145 35 - 85 25 - 75 55 - 130
10 Tasso interesse % 3.5% - 6.5% 4.5% - 8.0% 4.5% - 8.5% 6.0% - 11.0% 6.0% - 12.0% 8.0% - 15.0% 5.5% - 10.5%

7 I parametri dati all’algoritmo

La tabella parametri_algoritmo descrive che cosa riceve il generatore come input logico.

La distinzione principale e’:

  • random per archetipo: il valore e’ estratto dentro un range che dipende dallo scenario;
  • random comune: il valore e’ estratto da un range uguale per tutti;
  • derivato: il valore non viene estratto, ma calcolato da altri valori;
  • controllo: il valore serve a verificare la coerenza finale.
area parametro tipo distribuzione valori uso
0 generale archetipo random scelta uniforme sana_stabile, crescita, margini_bassi, indebit... Sceglie lo scenario economico-finanziario dell...
1 generale ricavi random per archetipo uniforme continua Vedi righe ricavi_min/ricavi_max nella tabella... Dimensiona l'azienda e alimenta la maggior par...
2 generale crescita ricavi random per archetipo uniforme continua Vedi crescita_min_pct/crescita_max_pct. Ricostruisce i ricavi dell'anno precedente e c...
3 conto economico EBITDA margin random per archetipo uniforme continua Vedi ebitda_margin_min_pct/ebitda_margin_max_pct. Determina EBITDA = ricavi * EBITDA margin.
4 conto economico ammortamenti / ricavi random per archetipo uniforme continua Vedi ammortamenti_ricavi_min_pct/ammortamenti_... Determina ammortamenti = ricavi * percentuale;...
5 conto economico aliquota fiscale effettiva random comune uniforme continua 20% - 30%, solo se risultato ante imposte posi... Determina imposte; se il risultato ante impost...
6 conto economico tasso interesse random per archetipo uniforme continua Vedi tasso_interesse_min_pct/tasso_interesse_m... Determina oneri finanziari = debito finanziari...
7 struttura finanziaria PFN / EBITDA target random per archetipo uniforme continua Vedi pfn_ebitda_min/pfn_ebitda_max. Determina la posizione finanziaria netta inizi...
8 struttura finanziaria patrimonio netto / attivo random per archetipo uniforme continua Vedi patrimonio_attivo_min_pct/patrimonio_atti... Determina il patrimonio netto come quota dell'...
9 capitale circolante giorni magazzino random per archetipo uniforme intera Vedi giorni_magazzino_min/giorni_magazzino_max. Determina rimanenze = acquisti stimati * giorn...
10 capitale circolante giorni clienti random per archetipo uniforme intera Vedi giorni_clienti_min/giorni_clienti_max. Determina crediti commerciali = ricavi * giorn...
11 capitale circolante giorni fornitori random per archetipo uniforme intera Vedi giorni_fornitori_min/giorni_fornitori_max. Determina debiti fornitori = acquisti stimati ...
12 capitale circolante costo del venduto / ricavi random comune uniforme continua 55% - 78% Stima gli acquisti/costo del venduto usati per...
13 attivo cassa / ricavi random comune uniforme continua 1% - 8%, minimo tecnico 20.000 EUR Determina disponibilita liquide.
14 attivo immobilizzazioni / ricavi random comune uniforme continua 12% - 55% Determina immobilizzazioni iniziali.
15 passivo quota debito bancario corrente random comune uniforme continua 35% - 85% del debito bancario Usata per stimare le passivita correnti e quin...
16 quadratura altri debiti e fondi derivato formula totale attivo - patrimonio netto - debiti forn... Voce di quadratura del passivo; se negativa, i...
17 validazione check_quadratura derivato controllo booleano totale_attivo == totale_passivo_pn Verifica minima di coerenza contabile del bila...

Questa tabella e’ importante perche’ rende il dataset auditabile. Se un archetipo produce troppe imprese respinte, possiamo capire se il problema nasce dai range di leva, dai margini, dai giorni clienti o da altre ipotesi.

Nella letteratura sui dati sintetici, questa distinzione tra generazione e valutazione e’ centrale: non basta creare dati realistici, bisogna anche misurarne utilita’, fedelta’ statistica, rischio di disclosure e coerenza con vincoli di dominio (Raab et al. 2017, 2021; Hassan et al. 2023).

8 Variabili prodotte

Il dataset finale contiene variabili economiche, patrimoniali e indicatori.

variabile
0 company_id
1 ragione_sociale
2 archetipo
3 ricavi_anno_precedente
4 ricavi
5 crescita_ricavi_pct
6 ebitda
7 ebitda_margin_pct
8 ammortamenti
9 ebit
10 oneri_finanziari
11 risultato_ante_imposte
12 imposte
13 utile_netto
14 rimanenze
15 crediti_commerciali
16 disponibilita_liquide
17 immobilizzazioni
18 totale_attivo
19 patrimonio_netto
20 debiti_bancari
21 debiti_fornitori
22 altri_debiti_fondi
23 totale_passivo_pn
24 posizione_finanziaria_netta
25 pfp_ebitda
26 interest_coverage
27 current_ratio
28 giorni_magazzino
29 giorni_clienti
30 giorni_fornitori
31 check_quadratura

Alcune variabili sono direttamente generate, altre sono derivate:

  • ricavi, crescita_ricavi_pct, ebitda_margin_pct descrivono la dinamica economica;
  • ebitda, ebit, utile_netto sintetizzano la redditivita’;
  • rimanenze, crediti_commerciali, debiti_fornitori descrivono il capitale circolante;
  • patrimonio_netto, debiti_bancari, posizione_finanziaria_netta descrivono la struttura finanziaria;
  • pfp_ebitda, interest_coverage, current_ratio sono indicatori usati nello screening;
  • check_quadratura verifica che lo stato patrimoniale sintetico quadri.

9 Esempio di bilancio riclassificato

Per rendere piu’ concreto il dataset, prendiamo una singola impresa sintetica con criticita’ evidenti e la rappresentiamo in forma riclassificata.

La scelta di un caso problematico e’ didatticamente utile: il lettore puo’ confrontare i prospetti con i ratios e verificare se lo screening automatico ha intercettato segnali coerenti.

Questa non e’ una riclassificazione civilistica completa. E’ una vista didattica, utile per mostrare come i dati generati possano essere letti da un analista:

  • nello stato patrimoniale distinguiamo attivo corrente, immobilizzazioni, patrimonio netto e debiti;
  • nel conto economico distinguiamo ricavi, EBITDA, EBIT, gestione finanziaria, imposte e utile netto.
campo valore
0 Company ID SYN00005
1 Ragione sociale Impresa Sintetica 00005 S.p.A.
2 Archetipo crisi
3 Ricavi 36.0 mln EUR
4 Esito screening REJECT
5 Numero fail 5
6 Motivi fail utile_non_gravemente_negativo; ebitda_positivo...

9.1 Situazione patrimoniale riclassificata

La situazione patrimoniale riclassificata mostra da un lato gli impieghi, cioe’ dove sono investite le risorse, e dall’altro le fonti, cioe’ come quegli impieghi sono finanziati.

Attivo riclassificato EUR Fonti riclassificate EUR
0 Rimanenze 8906000 Patrimonio netto 2970000.0
1 Crediti commerciali 12712000 Debiti bancari 2734000.0
2 Disponibilita liquide 2734000 Debiti fornitori 1710000.0
3 Totale attivo corrente 24352000 Altri debiti e fondi 34808000.0
4 Immobilizzazioni 17870000 Totale passivo e patrimonio netto 42222000.0
5 Totale attivo 42222000 NaN NaN

L’uguaglianza tra Totale attivo e Totale passivo e patrimonio netto e’ il controllo minimo di quadratura.

controllo EUR
0 Totale attivo 42222000
1 Totale passivo e patrimonio netto 42222000
2 Differenza 0

9.2 Conto economico riclassificato

Il conto economico riclassificato parte dai ricavi e arriva all’utile netto, evidenziando i principali margini intermedi.

Voce EUR % ricavi
0 Ricavi 35967000 1.000000
1 EBITDA -1536000 -0.042706
2 Ammortamenti -912000 -0.025357
3 EBIT -2448000 -0.068062
4 Oneri finanziari 0 0.000000
5 Risultato ante imposte -2448000 -0.068062
6 Imposte 0 0.000000
7 Utile netto -2448000 -0.068062

9.3 Indicatori sintetici del caso critico

Gli indicatori permettono di collegare bilancio e screening automatico.

indicatore valore lettura
0 EBITDA margin -0.042707 redditivita operativa
1 PFN / EBITDA NaN leva finanziaria
2 Interest coverage NaN copertura oneri finanziari
3 Current ratio 6.834911 liquidita corrente
4 Giorni magazzino 151.000000 capitale circolante
5 Giorni clienti 129.000000 incasso crediti
6 Giorni fornitori 29.000000 dilazione fornitori

Nel caso scelto, l’esito REJECT non deriva da una decisione opaca. I motivi sono riportati nella tabella iniziale e possono essere verificati nei ratios: margini, utile, leva, copertura degli oneri finanziari e liquidita’ corrente.

10 Controlli di coerenza

Il controllo minimo e’ la quadratura dello stato patrimoniale:

check_quadratura n pct
0 True 1000 1.0

Nel dataset generato, tutti i casi quadrano. Questo non significa che ogni bilancio sia civilisticamente completo, ma significa che la struttura base e’ coerente.

Un secondo controllo e’ la distribuzione degli archetipi:

archetipo n pct
0 crescita 156 0.156
4 crisi 138 0.138
2 indebitata 145 0.145
6 margini_bassi 136 0.136
1 sana_stabile 148 0.148
3 tensione_liquidita 140 0.140
5 turnaround 137 0.137

11 Uso per testare un motore automatico

Una volta creati i bilanci sintetici, possiamo usarli per verificare un motore di screening.

Il motore e’ contenuto in screening_engine.py ed e’ volutamente trasparente: ogni regola e’ leggibile e il risultato finale dipende dai fail registrati.

python3 screening_engine.py --input OUT/bilanci_sintetici.csv

Gli esiti sono:

  • PASS: supera tutti i filtri;
  • WATCH: non ha fail bloccanti, ma presenta segnali da approfondire;
  • REJECT: fallisce almeno una regola bloccante.
esito n pct
0 PASS 539 0.539
1 WATCH 370 0.370
2 REJECT 91 0.091

12 Quanto screma il motore

La tabella seguente mostra la scrematura per archetipo.

screening_esito archetipo PASS WATCH REJECT
0 crescita 129 27 0
1 crisi 0 47 91
2 indebitata 46 99 0
3 margini_bassi 73 63 0
4 sana_stabile 135 13 0
5 tensione_liquidita 64 76 0
6 turnaround 92 45 0

Questo tipo di tabella e’ utile per capire se il motore si comporta come atteso. Per esempio, e’ ragionevole che l’archetipo crisi generi molti REJECT, mentre sana_stabile dovrebbe produrre molti PASS.

13 Quali regole pesano di piu’

Ogni riga del dataset mantiene anche l’esito delle singole regole. Possiamo quindi contare quali filtri intervengono piu’ spesso.

regola fail_n fail_pct
6 pfp_ebitda_massimo 298 0.298
5 ebitda_margin_minimo 220 0.220
7 interest_coverage_minimo 166 0.166
8 current_ratio_minimo 103 0.103
4 ebitda_positivo 91 0.091
9 crescita_non_crollo 59 0.059
3 utile_non_gravemente_negativo 58 0.058
0 quadratura 0 0.000
1 ricavi_minimi 0 0.000
2 patrimonio_netto_positivo 0 0.000

Questa analisi permette di rispondere a una domanda concreta: il motore sta scartando perche’ le imprese sono davvero deboli, oppure perche’ una soglia e’ troppo rigida?

14 Come usare il dataset

Il dataset sintetico puo’ essere usato in diversi modi.

14.1 Formazione

Si possono mostrare casi PASS, WATCH e REJECT e chiedere al lettore di capire quali variabili guidano l’esito.

14.2 Taratura dei filtri

Si possono cambiare le soglie dello screening e misurare subito l’effetto:

  • quanti casi passano;
  • quanti finiscono in watchlist;
  • quanti vengono respinti;
  • quali archetipi vengono penalizzati.

14.3 Stress test

Si possono aumentare i casi di crisi, alzare la leva, ridurre i margini o peggiorare i giorni clienti per vedere se il motore intercetta il deterioramento.

14.4 Documentazione metodologica

Le tabelle archetipi e parametri_algoritmo permettono di spiegare da dove vengono i numeri. Questo evita che il dataset sembri una scatola nera.

15 Limiti

Questo progetto non genera un bilancio civilistico completo. Genera una rappresentazione sintetica utile per analisi, screening e didattica.

I limiti principali sono:

  • alcune voci sono aggregate;
  • non esiste una nota integrativa completa;
  • non c’e’ ancora un rendiconto finanziario dettagliato;
  • le relazioni contabili sono semplificate;
  • non e’ ancora generato un XBRL sintetico completo;
  • le soglie del motore di screening sono convenzioni di prassi (PFN/EBITDA, interest coverage, current ratio, marginalita’ minima), non stime derivate da un campione di imprese con esito noto (fallite vs sane).

Questi limiti sono accettabili per testare un motore di screening. Per un simulatore contabile piu’ rigoroso, il passo successivo sarebbe costruire un modello con piu’ vincoli, piu’ voci e una generazione coerente dei flussi di cassa.

Sull’ultimo punto vale una precisazione. La letteratura classica sulla previsione del fallimento aziendale mostra che le soglie sui ratios andrebbero calibrate confrontando campioni reali di imprese fallite e non fallite, non fissate per convenzione (Beaver 1966; Altman 1968; Ohlson 1980). Le fonti aggregate disponibili per la taratura di questo progetto (medie di sistema regionali, medie di campioni di imprese sopravvissute) descrivono popolazioni gia’ filtrate verso l’alto: utili per posizionare un archetipo rispetto alla media osservata, non per stimare una soglia minima di viabilita’, che richiederebbe la dispersione o i percentili di un campione non selezionato, comprensivo di casi di default. In assenza di questo dato, le soglie restano convenzionali per scelta esplicita, non per omissione.

16 Prossimi sviluppi

Evoluzioni naturali:

  1. generare anche un rendiconto finanziario sintetico;
  2. aggiungere un rating atteso per ogni archetipo;
  3. distinguere settore industriale, commercio, servizi e costruzioni;
  4. produrre note narrative sintetiche;
  5. esportare i casi in JSON;
  6. generare XBRL sintetici;
  7. confrontare piu’ motori di screening sugli stessi 1000 casi.

Il valore del dataset aumenta quando ogni scelta rimane tracciabile: archetipo, parametri, formule, esiti e motivi di scarto.

La prospettiva di fondo e’ comunitaria: rendere disponibili esempi, regole e dataset controllati permette a professionisti diversi di parlare la stessa lingua. Il redattore del bilancio vede come il dato viene interpretato; l’analista vede da quali ipotesi nascono i ratios; il docente puo’ spiegare casi complessi senza usare informazioni sensibili; lo sviluppatore puo’ testare strumenti in modo riproducibile.

Anche quando il dataset e’ sintetico, se e’ ben documentato puo’ diventare uno spazio comune di apprendimento.

17 Estensione: settore e territorio

Il modello puo’ essere ulteriormente caratterizzato introducendo due assi aggiuntivi:

  • settore merceologico;
  • area territoriale.

In questo modo ogni impresa sintetica non sarebbe piu’ definita solo da un archetipo finanziario, per esempio sana_stabile o crisi, ma da una combinazione:

archetipo finanziario x settore x territorio

Esempio:

crescita x meccanico x Nord Est
tensione_liquidita x metallurgico x Nord Ovest
sana_stabile x alimentare x Sud e Isole

Questa estensione e’ utile perche’ molte variabili di bilancio non dipendono solo dalla salute finanziaria dell’impresa, ma anche dal tipo di attivita’ e dal contesto territoriale.

17.1 Fonti interne gia’ disponibili

Nei progetti gia’ presenti sono stati individuati materiali utili:

  • 20260630_MediobancaMedieImprese;
  • 20260212_Mediobanca;
  • 20260507_AiBilanci/IN/mediobanca;
  • progetti Bankitalia/Unimpresa con dimensioni ATECO e territorio.

Il progetto piu’ pertinente e’ 20260630_MediobancaMedieImprese, che lavora sul dataset Mediobanca/Unioncamere/Tagliacarne “Le medie imprese industriali italiane (2015-2024)” (Area Studi Mediobanca and Centro Studi delle Camere di Commercio Guglielmo Tagliacarne 2026).

Da quel lavoro emergono due informazioni operative importanti:

  1. le aree territoriali sono disponibili su un insieme chiuso 2015-2024;
  2. i settori usati in alcuni report sono cluster settoriali Mediobanca, non necessariamente codici ATECO ufficiali.

17.2 Aree territoriali Mediobanca

Per l’insieme chiuso 2015-2024 delle medie imprese industriali, i cluster geografici sono:

Area Codice N. societa
Italia 88001077 1.821
Nord Ovest 88001078 745
Nord Est 88001079 680
Centro 88004010 234
Sud e Isole 88004011 162

Queste aree possono diventare profili territoriali nel generatore. Per esempio, il territorio potrebbe modificare:

  • crescita ricavi;
  • export share;
  • costo del lavoro su valore aggiunto;
  • redditivita’;
  • intensita’ di circolante;
  • probabilita’ di tensione finanziaria.

17.3 Settori Mediobanca

I cluster settoriali individuati sono:

Settore Mediobanca Codice
Alimentare 88005202
Beni per la persona e la casa 88005203
Carta e stampa 88005204
Chimico e farmaceutico 88005205
Meccanico 88005206
Metallurgico 88005207
Altri Settori 88005208

Nota metodologica: questi gruppi vanno chiamati settori Mediobanca o cluster settoriali Mediobanca. Non vanno chiamati direttamente ATECO, salvo costruire e verificare un mapping granulare verso ATECO.

17.4 Esempio di logica settoriale

I settori potrebbero introdurre moltiplicatori o range specifici:

Settore Effetto atteso nel generatore
Alimentare ricavi piu resilienti, margini medi, minore volatilita
Meccanico maggiore export, dimensione media piu elevata, ciclicita industriale
Chimico e farmaceutico margini piu alti, maggiore intensita di capitale
Metallurgico margini piu bassi, maggiore volatilita, sensibilita a commodity
Carta e stampa volumi piu contenuti, crescita piu fragile
Beni persona/casa export rilevante, margini medi, sensibilita a domanda finale

Questi effetti non sostituirebbero l’archetipo finanziario. Lo modulerebbero.

17.5 Esempio di logica territoriale

Le aree potrebbero introdurre differenze di contesto:

Area Effetto atteso nel generatore
Nord Ovest maggiore export e dimensione media, buona patrimonializzazione
Nord Est forte manifattura esportatrice, capitale circolante rilevante
Centro profilo intermedio, buona redditivita in alcuni cluster
Sud e Isole minore dimensione media, possibile crescita piu vivace in specifici anni, campione piu piccolo

Anche qui serve cautela: l’effetto territoriale va tarato su dati osservati e non trasformato in stereotipo economico.

17.6 Come incorporarlo nel generatore

Una versione successiva del generatore potrebbe lavorare cosi’:

  1. scegliere un archetipo finanziario;
  2. scegliere un settore;
  3. scegliere un’area territoriale;
  4. applicare i range base dell’archetipo;
  5. applicare moltiplicatori settoriali;
  6. applicare moltiplicatori territoriali;
  7. generare il bilancio;
  8. conservare nel dataset le tre etichette: archetipo, settore, area.

Il risultato sarebbe un dataset piu’ realistico, perche’ permetterebbe di testare se il motore automatico discrimina correttamente tra:

  • rischio finanziario dell’impresa;
  • ciclicita’ del settore;
  • specificita’ territoriale;
  • dimensione e struttura del capitale circolante.

17.7 Caveat metodologico

Il progetto Mediobanca sulle medie imprese segnala un punto importante: le analisi territoriali e quelle settoriali possono riferirsi a universi campionari diversi.

In particolare:

  • le aree geografiche usano l’insieme chiuso 2015-2024;
  • alcuni cluster settoriali usano l’insieme chiuso 1996-2024;
  • il campione settoriale puo’ essere piu’ selezionato e soggetto a survivor bias;
  • il numero di societa per singolo settore non sempre e’ disponibile.

Quindi, per costruire dati sintetici robusti, settore e territorio dovrebbero essere usati come profili di simulazione, non come riproduzione meccanica di frequenze campionarie non perfettamente confrontabili.

18 Estensione: dati sintetici da esperienza di lavoro

Un altro modo per costruire dati sintetici e’ partire dall’esperienza professionale.

Questo approccio non parte prima dalle distribuzioni statistiche, ma dai casi che un analista, un gestore o un ufficio crediti incontra nella pratica. L’obiettivo e’ generare imprese sintetiche che raccontino una storia aziendale riconoscibile.

In questo senso ci sono due approcci complementari:

Approccio Punto di partenza Vantaggio Rischio
Data-driven dataset osservati, medie, varianze, correlazioni plausibilita statistica casi medi poco narrativi
Expert-driven esperienza di lavoro, casistiche ricorrenti, segnali di allarme realismo operativo e didattico rischio di soggettivita

La soluzione piu’ solida e’ ibrida: usare i dati reali per definire ordini di grandezza e range, e usare l’esperienza per costruire pattern aziendali credibili.

18.1 Pattern esperienziali

Un pattern esperienziale descrive una situazione aziendale tipica. Non e’ ancora un bilancio, ma una traccia narrativa che modifica i numeri.

Esempi:

Pattern Segnale tipico Effetto sui dati sintetici Lettura per l’analista
Crescita che assorbe cassa ricavi in aumento ma clienti e magazzino crescono di piu aumento crediti, rimanenze e PFN crescita non autofinanziata
Margini compressi EBITDA margin basso o in calo MOL debole, interest coverage fragile poco spazio per assorbire shock
Sottocapitalizzazione patrimonio netto basso rispetto all’attivo leva elevata, PFN/EBITDA piu critico struttura finanziaria fragile
Tensione fornitori fornitori meno disponibili a finanziare l’impresa giorni fornitori bassi, passivo corrente piu rigido minore elasticita di cassa
Magazzino eccessivo rimanenze alte rispetto ai ricavi current ratio apparentemente buono ma liquidita lenta rischio obsolescenza o invenduto
Utile positivo ma cassa debole conto economico accettabile, circolante assorbente utile netto positivo, PFN in peggioramento redditivita non trasformata in liquidita
Debito costoso tassi elevati o debito bancario alto oneri finanziari elevati, copertura bassa rischio sostenibilita del debito
Turnaround incompleto margini in recupero ma leva ancora alta EBITDA positivo, PFN/EBITDA ancora debole miglioramento fragile
Crisi di domanda ricavi in calo e costi rigidi EBITDA negativo, utile negativo problema industriale prima che finanziario
Stagionalita sfavorevole fotografia di fine anno penalizzante magazzino o crediti elevati in una data specifica serve lettura del ciclo operativo

18.2 Come entra nel generatore

Nel generatore attuale ogni impresa nasce da un archetipo finanziario. In una versione piu’ ricca, ogni impresa potrebbe nascere da quattro dimensioni:

archetipo finanziario x settore x territorio x pattern esperienziale

Esempio:

crescita x meccanico x Nord Est x crescita che assorbe cassa
crisi x metallurgico x Nord Ovest x margini compressi
turnaround x alimentare x Sud e Isole x debito costoso

Il pattern esperienziale agirebbe come un modificatore dei parametri:

Pattern Parametri modificati
Crescita che assorbe cassa giorni clienti, giorni magazzino, PFN/EBITDA
Margini compressi EBITDA margin, utile netto, interest coverage
Sottocapitalizzazione patrimonio netto / attivo, debiti bancari
Tensione fornitori giorni fornitori, current ratio
Magazzino eccessivo giorni magazzino, rimanenze / ricavi
Debito costoso tasso interesse, oneri finanziari
Turnaround incompleto crescita ricavi, EBITDA margin, PFN/EBITDA

18.3 Perche’ e’ utile

Questo approccio e’ utile soprattutto per formazione e validazione.

Un motore automatico puo’ essere testato non solo su imprese “casuali”, ma su casi costruiti per verificare se riconosce situazioni specifiche:

  • intercetta una crisi industriale?
  • distingue una crescita sana da una crescita che brucia cassa?
  • segnala un’impresa redditizia ma sottocapitalizzata?
  • penalizza troppo un caso stagionale?
  • confonde liquidita apparente e liquidita effettiva?

In questo modo il dataset sintetico diventa un vero banco di prova. Non contiene solo numeri plausibili, ma casi intenzionali.

18.4 Caveat

L’esperienza professionale e’ preziosa, ma va disciplinata.

Per evitare che il generatore rifletta solo intuizioni soggettive, ogni pattern dovrebbe avere:

  • una descrizione chiara;
  • variabili impattate;
  • direzione dell’impatto;
  • intensita minima e massima;
  • esempi di ratios attesi;
  • criteri di validazione.

In pratica, l’esperienza deve diventare una tabella di regole esplicite. Solo cosi’ puo’ essere discussa, corretta e migliorata.

19 Riferimenti accademici utili

La costruzione di questo laboratorio puo’ appoggiarsi a quattro filoni di letteratura e dati.

19.1 Dati sintetici e disclosure control

Il primo filone riguarda la generazione di dati sintetici per rendere accessibili dataset sensibili. I riferimenti classici sono Rubin (1993) e Little (1993), poi sviluppati in lavori su microdati parzialmente sintetici e metodi pratici di sintesi (Reiter 2005; Nowok et al. 2016; Raab et al. 2017).

Questi lavori sono utili per due ragioni:

  • chiariscono che il dato sintetico non e’ un semplice dato inventato;
  • propongono criteri per valutare utilita’ statistica e rischio residuo di identificazione.

19.2 Dati tabellari sintetici e machine learning

Il secondo filone riguarda la generazione di dati tabellari con modelli statistici o generativi. Qui rientrano strumenti come Synthetic Data Vault (Patki et al. 2016) e modelli GAN per tabelle, come TGAN/CTGAN (Xu and Veeramachaneni 2018; Xu et al. 2019).

Per il nostro progetto questi riferimenti sono utili come confronto metodologico. Noi non stiamo ancora usando un modello generativo profondo: stiamo costruendo un generatore parametrico, domain-driven ed expert-driven. Pero’ i criteri di valutazione restano simili:

  • fedelta’ delle distribuzioni;
  • conservazione delle relazioni tra variabili;
  • utilita’ per task downstream;
  • controllo dei casi estremi;
  • rischio di generare dati implausibili.

19.3 Classificazione, squilibri di classe e rischio di credito

Il terzo filone riguarda l’uso dei ratios per individuare fragilita’ aziendali. I lavori classici di Beaver, Altman e Ohlson mostrano come informazioni di bilancio e indicatori finanziari possano essere usati per predire fallimento o distress (Beaver 1966; Altman 1968; Ohlson 1980).

Per la parte di screening automatico e’ utile anche il riferimento a SMOTE (Chawla et al. 2002), non perche’ il nostro generatore usi SMOTE, ma perche’ mostra una logica importante: quando i casi critici sono pochi, si possono generare osservazioni sintetiche per testare meglio classificatori e filtri.

19.4 Benchmark reale delle medie imprese italiane

Il quarto filone non e’ letteratura metodologica ma un dataset di riferimento: il rapporto Area Studi Mediobanca - Centro Studi Tagliacarne “Le medie imprese industriali italiane (2015-2024)” (Area Studi Mediobanca and Centro Studi delle Camere di Commercio Guglielmo Tagliacarne 2026), gia’ usato nel progetto collegato 20260630_MediobancaMedieImprese.

Questo rapporto e’ utile come ancoraggio empirico esterno:

  • fornisce ordini di grandezza reali (ricavi, margini, leva, capitale circolante) su un campione di 1.821 societa italiane, utili per verificare che i range degli archetipi non siano arbitrari;
  • offre cluster territoriali e settoriali gia’ pronti (si veda la sezione “Estensione: settore e territorio”) per una futura versione del generatore che moduli gli archetipi per area e settore;
  • ricorda un limite metodologico da rispettare anche qui: campioni chiusi e survivor bias possono distorcere le frequenze osservate, quindi vanno usati come riferimento di ordine di grandezza e non riprodotti meccanicamente.

19.5 Collegamento con questo progetto

Il nostro approccio e’ volutamente piu’ semplice dei modelli generativi avanzati:

  • non apprende automaticamente una distribuzione da microdati reali;
  • usa archetipi e parametri espliciti;
  • incorpora conoscenza esperienziale;
  • produce dati auditabili;
  • permette di testare regole di screening in modo trasparente.

Questa impostazione e’ adatta a un uso didattico e metodologico. Per usi predittivi o regolamentari servirebbero invece validazioni piu’ forti: confronto con dati osservati, misure formali di utilita’, privacy risk assessment e backtesting su task specifici.

20 20 References

Altman, Edward I. 1968. “Financial Ratios, Discriminant Analysis and the Prediction of Corporate Bankruptcy.” The Journal of Finance 23 (4): 589–609. https://doi.org/10.1111/j.1540-6261.1968.tb00843.x.
Area Studi Mediobanca, and Centro Studi delle Camere di Commercio Guglielmo Tagliacarne. 2026. Le Medie Imprese Industriali Italiane (2015–2024). 25th ed. Mediobanca Unioncamere.
Beaver, William H. 1966. “Financial Ratios as Predictors of Failure.” Journal of Accounting Research 4: 71–111.
Chawla, Nitesh V., Kevin W. Bowyer, Lawrence O. Hall, and W. Philip Kegelmeyer. 2002. “SMOTE: Synthetic Minority over-Sampling Technique.” Journal of Artificial Intelligence Research 16: 321–57. https://doi.org/10.1613/jair.953.
Drechsler, Jörg, and Anna-Carolina Haensch. 2023. 30 Years of Synthetic Data. https://arxiv.org/abs/2304.02107.
European Commission. 2023. Commission Implementing Regulation (EU) 2023/138 Laying down a List of Specific High-Value Datasets and the Arrangements for Their Publication and Re-Use. Official Journal of the European Union. https://data.europa.eu/eli/reg_impl/2023/138/oj.
European Parliament and Council of the European Union. 2019. Directive (EU) 2019/1024 of 20 June 2019 on Open Data and the Re-Use of Public Sector Information. Official Journal of the European Union. https://data.europa.eu/eli/dir/2019/1024/oj.
Hassan, Conor, Robert Salomone, and Kerrie Mengersen. 2023. Deep Generative Models, Synthetic Tabular Data, and Differential Privacy: An Overview and Synthesis. https://arxiv.org/abs/2307.15424.
Little, Roderick J. A. 1993. “Statistical Analysis of Masked Data.” Journal of Official Statistics 9 (2): 407–26.
Nowok, Beata, Gillian M. Raab, and Chris Dibben. 2016. “synthpop: Bespoke Creation of Synthetic Data in R.” Journal of Statistical Software 74 (11): 1–26. https://doi.org/10.18637/jss.v074.i11.
Ohlson, James A. 1980. “Financial Ratios and the Probabilistic Prediction of Bankruptcy.” Journal of Accounting Research 18 (1): 109–31. https://doi.org/10.2307/2490395.
Patki, Neha, Roy Wedge, and Kalyan Veeramachaneni. 2016. “The Synthetic Data Vault.” 2016 IEEE International Conference on Data Science and Advanced Analytics (DSAA), 399–410. https://doi.org/10.1109/DSAA.2016.49.
Raab, Gillian M., Beata Nowok, and Chris Dibben. 2017. Guidelines for Producing Useful Synthetic Data. https://arxiv.org/abs/1712.04078.
Raab, Gillian M., Beata Nowok, and Chris Dibben. 2021. Assessing, Visualizing and Improving the Utility of Synthetic Data. https://arxiv.org/abs/2109.12717.
Reiter, Jerome P. 2005. “Using CART to Generate Partially Synthetic Public Use Microdata.” Journal of Official Statistics 21 (3): 441–62.
Rubin, Donald B. 1993. “Discussion: Statistical Disclosure Limitation.” Journal of Official Statistics 9 (2): 461–68.
Stoian, Mihaela Cătălina, Eleonora Giunchiglia, and Thomas Lukasiewicz. 2025. A Survey on Tabular Data Generation: Utility, Alignment, Fidelity, Privacy, and Beyond. https://arxiv.org/abs/2503.05954.
Wahlstrøm, Ranik Raaen. 2022. Financial Statements of Companies in Norway. https://arxiv.org/abs/2203.12842.
Xu, Lei, Maria Skoularidou, Alfredo Cuesta-Infante, and Kalyan Veeramachaneni. 2019. Modeling Tabular Data Using Conditional GAN. https://arxiv.org/abs/1907.00503.
Xu, Lei, and Kalyan Veeramachaneni. 2018. Synthesizing Tabular Data Using Generative Adversarial Networks. https://arxiv.org/abs/1811.11264.
Torna in cima