Tangible × Vittoria Assicurazioni · DUC + CRM 2026-2027 · Fase 1 · Discovery
Findings · struttura del DB e logiche del dato per il CRM
Restituzione delle osservazioni strutturali sul DB NewAge emerse dalla fase di Discovery e dalle estrazioni di maggio 2026. Documento diagnostico, non prescrittivo: la formalizzazione delle regole golden record e delle regole di visibilità avviene nelle fasi successive con il commerciale, le agenzie e l'IT.
VERSIONEv1.1 · 25 maggio 2026
STATOBozza per discussione
AUTOREMatteo Petrani · Tangible
FONTIEstrazione Anagrafica · ChartDB · SAL 21/05
Contesto e finalità

In una frase

Questo documento mette in fila le osservazioni strutturali sul DB NewAge: come è organizzato il dato anagrafico, dove si producono ridondanze e potenziali conflitti, quali logiche CRUD governano oggi il ciclo di vita del dato, quali criticità conseguono per un sistema a valle come il CRM.

È un documento diagnostico con implicazioni per il DUC: fotografa le criticità della base dati attuale e alimenta le regole che il DUC dovrà formalizzare e far validare dal business nelle fasi successive.

Il DB NewAge non è "fatto male"

È coerente con tre logiche storiche legittime. Il problema non è la qualità intrinseca del DB: è che queste tre logiche non favoriscono una vista CRM centrata sul soggetto.

  • Logica di polizza Il business è stato costruito attorno al contratto assicurativo.
  • Logica di produttore / punto vendita La rete è il canale attraverso cui il cliente entra.
  • Vincoli legali e di business la struttura attuale risponde ad anni di evoluzione organizzativa e normativa.
Il dato anagrafico vive su due livelli sovrapposti

L'analisi dell'estrazione Estrazione_Anagrafica_trasposta.02.xlsx ha chiarito che il dato anagrafico in NewAge vive su due livelli sovrapposti, fisicamente distinti.

Livello 1 · dati unici per soggetto

Una sola copia per soggetto, visibile a tutti

Dati che, una volta inseriti, esistono in una sola copia per soggetto e sono visibili allo stesso modo a tutti i produttori che lo gestiscono.
Tabelle
  • persona_fisica
  • persona_giuridica
  • soggetto_anagrafica_* (contatti, consensi, professione, animali, mezzi, sport, convenzioni, dati economici…)
Cardinalità: 1 record per soggetto · contiene campi come cognome, nome, codice fiscale, data di nascita, professione anagrafica.
Livello 2 · dati pv_produttore

Una copia per ogni coppia (punto vendita, produttore)

Dati che ogni produttore può inserire, vedere e aggiornare per il "suo" cliente, anche quando il soggetto è già censito da altri produttori.
Tabelle
  • cliente (indirizzo, comune, provincia, telefono_portatile, e_mail, IBAN inline)
  • conto_corrente (tabella normalizzata dei rapporti bancari)
Cardinalità: N record per soggetto, uno per ogni coppia (cod_punto_vendita, cod_produttore). Lo stesso codice fiscale, se gestito da più punti vendita o produttori, compare come più "clienti" diversi nella tabella cliente.
Cinque osservazioni che richiedono un intervento del DUC Punti chiave emersi dall'analisi dello schema
F · 01 · Chiavi multiple

Convivono tre identificatori del soggetto

codice_fiscale, id_soggetto_anagrafica e codice_cliente (UUID, N per soggetto) coesistono senza che nessuno sia designato come chiave canonica. Ogni parte del sistema usa quella più comoda per il proprio scopo.

dettaglio
Cosa emerge

Tre identificatori, nessuno canonico: codice_fiscale (chiave naturale del soggetto fisico), id_soggetto_anagrafica (chiave tecnica 1:1 per soggetto, usata dalle tabelle L1), codice_cliente UUID (chiave della coppia soggetto+produttore: N per soggetto). Ogni parte del sistema usa quella più comoda: le polizze usano codice_fiscale o codice_cliente a seconda del tipo, le tabelle anagrafica usano id_soggetto_anagrafica, il CRM si appoggia a codice_cliente che però moltiplica il soggetto per produttore.

Perché conta per il DUC

Il DUC deve scegliere e formalizzare una chiave primaria del soggetto. La candidata naturale è id_soggetto_anagrafica: è già 1:1 con il soggetto reale e collega le tabelle L1. Il codice_fiscale ha eccezioni (soggetti esteri, omonimie tecniche). Il codice_cliente non va mai usato come chiave del soggetto perché moltiplica.

Rischio concreto

Senza una chiave canonica, ogni sistema a valle (CRM, app agenzia, Viki) costruisce la propria euristica di deduplicazione. Oggi accade già: si producono "attribuzioni euristiche" a monte delle estrazioni per evitare duplicati. Il DUC deve rendere quella logica esplicita e condivisa, non lasciarne una copia per ogni sistema a valle.

F · 02 · Centralità operativa di cliente

Il fulcro quotidiano del sistema, non una tabella anagrafica

La tabella cliente lega soggetto + punto vendita + produttore: una riga per coppia. Le scritture operative avvengono qui, ma non è la fonte autoritativa del dato del soggetto, ovvero quella della relazione commerciale specifica.

dettaglio
Cosa emerge

Una riga per coppia (soggetto, punto vendita, produttore). Lo stesso soggetto gestito da tre produttori ha tre righe cliente, potenzialmente con valori diversi su ogni campo. È il punto di attacco principale per le scritture operative, ma non è la fonte autoritativa del dato anagrafico del soggetto: lo è della relazione commerciale specifica.

Perché conta per il DUC

Il CRM ha bisogno di una vista per testa, ovvero una sola riga per soggetto. Ma cliente ha per design N righe per soggetto. Il DUC deve definire una regola di prevalenza esplicita: quale record cliente prevale per il CRM? Il produttore principale? Il più recente? Il produttore con la polizza attiva più rilevante? Oggi questa scelta non è documentata: viene fatta implicitamente nelle estrazioni.

Rischio concreto

Se il CRM si aggancia a cliente senza regola di prevalenza, può mostrare dati diversi per lo stesso soggetto a seconda di chi lo interroga, o aggregare valori sbagliati (es. comunicare su un'email che appartiene alla relazione con produttore X ma non è il contatto principale per quel soggetto).

F · 03 · Collegamento soggetto-polizza non omogeneo

Quattro tabelle, quattro modi di legare il cliente

polizza_persona_azienda ha una FK diretta su codice_cliente. Le altre tre passano obbligatoriamente da matrice_polizze_clienti. Senza questa tabella ponte, le polizze auto e patrimonio di un soggetto diventano invisibili.

dettaglio
Cosa emerge

polizza_persona_azienda ha FK diretta su cliente.codice_cliente. polizza_auto, polizza_patrimonio_bene e polizza_infortuni_malattia (per ruolo contraente/assicurato) non hanno FK esplicita: il collegamento passa obbligatoriamente da matrice_polizze_clienti. polizza_infortuni_malattia è ibrida: nessuna FK per contraente/assicurato, ma una FK dedicata per il beneficiario (codice_cliente_beneficiario). Da verificare con IT: polizza_persona_azienda.codice_cliente è tipizzato varchar(16) mentre cliente.codice_cliente è uuid: possibile artefatto dell'estrazione. dell'estrazione.

Perché conta per il DUC

Per ricostruire "tutte le polizze di un soggetto" servono logiche diverse a seconda del tipo. Se il DUC non astrae questa eterogeneità in una vista unificata, ogni sistema a valle deve reimplementare la stessa logica, con il rischio che qualcuno salti il passaggio da matrice_polizze_clienti e perda polizze.

Rischio concreto

Vista incompleta del portafoglio del cliente: un sistema che si aggancia solo alle FK dirette non vede le polizze auto e patrimonio di quel soggetto. È già un rischio concreto nelle estrazioni ad hoc realizzate senza conoscere a fondo lo schema.

F · 04 · Asimmetria PF / PG

Persone fisiche e persone giuridiche non sono interscambiabili

persona_fisica e persona_giuridica non sono due istanze dello stesso pattern: portano strutture, logiche e livelli di ridondanza diversi. Un golden record unico non è applicabile a entrambe.

dettaglio
Cosa emerge

persona_fisica ha molti campi inline snapshot, duplicati delle tabelle soggetto_anagrafica_* corrispondenti. persona_giuridica è più snella sui duplicati inline, ma porta logiche proprie: forma giuridica tramite ponte molti-a-molti con id distinti per varianti semanticamente simili (es. ATI e RTI); legami societari con capogruppo e percentuali di partecipazione in soggetto_anagrafica_persona_giuridica_legame, con date di effetto/uscita. Nessuna di queste strutture ha un equivalente nel mondo PF.

Perché conta per il DUC

Non si può costruire un modello unico di golden record applicabile indifferentemente a PF e PG. Il DUC dovrà avere: golden record PF (principalmente da L1: persona_fisica + tabelle soggetto_anagrafica_*, con regole di prevalenza su contatti, professione e consensi) e golden record PG (struttura societaria, forma giuridica riconciliata risolvendo le varianti ATI/RTI e simili, legami con capogruppo).

Rischio concreto

Se il CRM tratta PF e PG con lo stesso template di profilo, o perde dati rilevanti per la PG (struttura societaria, legami), o mostra campi vuoti e irrilevanti per la PF (percentuali di partecipazione). È un problema di modellazione del golden record, non di qualità del dato.

F · 05 · Storico non sistemico

Lo storico è ricomponibile a tratti e non in modo uniforme

Il DB ha quattro regimi di storico: versionato per data di validità (professione, consenso, legami PG), tracciato con timestamp ma senza versioning del valore (la maggior parte delle soggetto_anagrafica_*), frozen per legge (polizze), nessun versioning (campi inline di persona_fisica e persona_giuridica).

dettaglio
Cosa emerge

Quattro regimi non uniformi, sedimentati per ragioni diverse:

  • Versionato per data di validità: soggetto_anagrafica_professione, soggetto_anagrafica_consenso, soggetto_anagrafica_persona_giuridica_legame: si conserva il valore cambiato e il periodo di validità.
  • Timestamp senza versioning del valore: la maggior parte delle soggetto_anagrafica_*: si sa quando è cambiato qualcosa, non cosa era prima.
  • Frozen per vincolo legale: tutte le tabelle polizza: il valore alla firma è immutabile.
  • Nessun versioning: campi inline di persona_fisica e persona_giuridica: sovrascrittura diretta, il passato non è recuperabile.
Perché conta per il DUC

Il DUC non può promettere al CRM una customer journey storica se la materia prima non è versionata. Tre implicazioni pratiche: i trigger su variazioni (es. "cliente ha cambiato professione") funzionano solo sui campi versionati; le analisi temporali ("quanti clienti hanno cambiato indirizzo nell'ultimo anno?") sono impossibili dove persona_fisica sovrascrive; il DUC dovrà decidere esplicitamente per quali attributi introduce versioning da qui in avanti, perché non può versionare tutto retroattivamente.

Rischio concreto

Senza intervento, il CRM nasce già storicamente cieco su gran parte degli attributi del soggetto. Il lifecycle marketing (campagne basate su variazioni di stato) funziona solo sui pochi campi già versionati. È una limitazione che il DUC può mitigare per il futuro, ma non eliminare: il passato già scritto in sovrascrittura non è ricostruibile.

Il dato anagrafico più fresco può vivere dentro una polizza …senza mai diventare dato anagrafico ufficiale del soggetto

I dati anagrafici contenuti nelle polizze (professione, animali, mezzi, dati socio-demo del nucleo, indirizzo dell'immobile assicurato, beneficiari, ecc.) sono congelati al momento della firma, per vincolo legale e per ricostruibilità in sede di sinistro. Questo è corretto e necessario lato compagnia.

Le conseguenze rilevanti per il dato sono però significative:

CONSEGUENZA · 01
Tre codifiche di professione coesistono e non sono mappabili tra loro

Evidenza da schema, confermata in SAL 21/05/2026. La tripletta anagrafica (cod_professione_anagrafica + cod_qualifica_professione + cod_settore_professione) serve al censimento. cod_professione_per_auto è la codifica ANIA usata in polizza_auto per la tariffazione. cod_professione_re è la codifica specifica del ramo RE / persona azienda. Scopi e contesti sono diversi e non c'è una tabella di corrispondenza diretta.

CONSEGUENZA · 02
Nessun meccanismo di propagazione polizza → anagrafica

Se un cliente cambia professione e l'aggiornamento avviene solo all'interno di una nuova polizza, la tripletta in anagrafica resta quella vecchia. Lo stesso vale per indirizzo, dati socio-demo, animali, mezzi.

CONSEGUENZA · 03
Esempi concreti di disallineamento

Un animale censito in una polizza pet potrebbe non risultare in soggetto_anagrafica_animale. Un immobile assicurato in polizza_patrimonio_bene ha un indirizzo che può differire dalla residenza in cliente.

Questa asimmetria rende complesso avere una fotografia aggiornata e completa della situazione di una persona.

Ridondanze, conflitti semantici, conflitti operativi Tre tipi di ridondanza, tre trattamenti diversi nel DUC

Prima di mappare le ridondanze, conviene distinguere come sono fatte. Le tre forme che seguono richiedono trattamenti diversi nel DUC: la prima va validata o modificata, la seconda va riconciliata semanticamente, la terza va risolta con regole di prevalenza.

Tipo · 01
Ridondanza fisiologica
Stesso dato, stessa semantica, intenzionale. È il caso dell'IBAN replicato per produttore in cliente: il sistema è progettato così, ogni produttore mantiene la propria copia. Non è un errore.
Tipo · 02
Conflitto semantico
Stesso nome o ruolo apparente, ma contesti e codifiche diversi. È il caso della professione, che ha tre codifiche non mappabili a seconda del contesto.
Tipo · 03
Conflitto operativo per il CRM
Il dato corretto esiste, ma non c'è una regola esplicita su quale usare. È il caso del contatto: fino a 7 contatti per soggetto, tutti potenzialmente validi ma senza una gerarchia.
A

Interne al Livello 1 · anagrafico unico

Pattern: persona_fisica contiene un campo inline singolo ("fotografia del valore corrente"); la tabella soggetto_anagrafica_* corrispondente contiene la versione completa e/o storicizzata. Per il CRM la fonte autoritativa è quasi sempre la tabella dedicata.
fisiologica prevalente conflitto op. su contatti conflitto sem. su forma giuridica
dettaglio
Categoria Tabelle coinvolte Quante copie esistono Storico Tipo Regola di prevalenza nota
Contattipersona_fisicasoggetto_anagrafica_contattoUn solo valore nel profilo base; fino a 18 voci nella scheda contatti dedicatatimestamp creazione/variazione; no validitàconflitto op. i contatti vivono su 4 livelli (NewAge per-relazione, AR ad anagrafica unica, consensi certificati, contrattuali SDD), con cardinalità reale ben oltre i 7 valori"più recente per data" sulla dedicata (operativa, dal 2026); non è l'unica regola in gioco
Consensipersona_fisicasoggetto_anagrafica_consensocliente_dettaglio (mktg)Un flag nel profilo base; fino a 10 voci nella scheda consensi dedicatasì (date inizio/fine validità)conflitto op. + issue flag/documento"più recente per data di aggiornamento"
Professione (tripletta)persona_fisicasoggetto_anagrafica_professioneUn solo valore corrente nel profilo; più voci con storico nella scheda professionesì (date validità nella storica)fisiologica snapshot + storicoscrittura su tripletta anagrafica via VCT
Composizione familiarepersona_fisicasoggetto_anagrafica_dato_economicoUna sola copia, conservata in due posti distintiparzialefisiologicanon documentata
Dati economico-reddituali (MiFID)persona_fisicasoggetto_anagrafica_dato_economicoUna sola copia, conservata in due posti distintiparzialefisiologicanon documentata
Immobili anagrafici (numero, mutui, locazione)persona_fisicasoggetto_anagrafica_dato_economicoUna sola copia, conservata in due posti distintiparzialefisiologicanon documentata
Titolo di studiopersona_fisicasoggetto_anagrafica_dato_economicoUna sola copia, conservata in due posti distintiparzialefisiologicanon documentata
Animali domesticipersona_fisicasoggetto_anagrafica_animaleUn campo riassuntivo nel profilo; lista completa nella scheda animalino versioning, solo timestampfisiologicanon documentata
Mezzi di trasporto anagraficipersona_fisicasoggetto_anagrafica_mezzo_trasportoUn campo riassuntivo nel profilo; lista completa nella scheda mezzino versioningfisiologicanon documentata
Saldo punti / fedeltàpersona_fisicasoggetto_anagrafica_saldo_puntisoggetto_anagrafica_movimentoUn saldo aggiornato nel profilo + lista storica di tutti i movimentisì (movimenti datati)fisiologicasaldo riconciliabile con i movimenti; regola non documentata
Stato validazione contattopersona_fisicasoggetto_anagrafica_contattoUn flag nel profilo; ogni contatto ha il proprio stato di validazionenoconflitto op. a quale contatto si riferisce il dato in persona_fisica?non documentata
Coperture altre compagniepersona_fisicasoggetto_anagrafica_altra_coperturaUn campo nel profilo; lista con note per ogni copertura esternano versioningfisiologicanon documentata
Legami familiaripersona_fisicapersona_fisica_legameUn campo nel profilo; lista dei legami familiari nella scheda dedicatano versioningfisiologica tabella di legaminon documentata
Legami PGpersona_giuridicasoggetto_anagrafica_persona_giuridica_legameUn campo nel profilo; lista dei legami societari con date di entrata/uscitasì (date effetto/uscita)fisiologicanon documentata
Forma giuridica PGpersona_giuridicatipo_persona_forma_giuridicatipo_forma_giuridicaUn codice identificativo; può corrispondere a più etichette formali (es. ATI e RTI classificate separatamente)noconflitto sem. es. ATI e RTI con id distinti sotto stessa coppianon documentata
Sportsoggetto_anagrafica_sportSolo nella scheda dedicata; una voce per ogni sportno versioningvedi anche cat. Cnon documentata
Convenzionisoggetto_anagrafica_convenzioneSolo nella scheda dedicata; una voce per ogni convenzioneno versioningmulti-riga; nessun conflitto polizza dimostratonon documentata
B

Tra Livello 2 (pv_produttore) e Livello 1

Pattern: il Livello 2 mantiene una propria copia operativa di alcuni dati di contatto/identità, distinta per produttore. È ridondanza fisiologica per design.
fisiologica per produttore conflitto op. sul "produttore autoritativo"
dettaglio
Categoria Tabelle coinvolte Quante copie esistono Storico Tipo Regola di prevalenza nota
Indirizzo / residenzacliente ↔ dati di residenza nelle polizzeUna copia per ogni agente/produttore che gestisce il cliente; più copie nelle polizze (cristallizzate alla firma)no versioning in cliente; cristallizzato in polizzafisiologica per produttore + conflitto op. quale produttore è la fonte?non documentata
Contatti operativicliente.telefono_portatile, cliente.e_mailpersona_fisica inline ↔ soggetto_anagrafica_contattoUna copia per ogni agente/produttore; lista separata nella scheda contatti unica del soggettoparzialefisiologica (L2) + conflitto op. (L1)"più recente per data" sulla dedicata
IBAN / dati bancaricliente (campi inline IBAN per produttore) ↔ conto_correnteUna copia per ogni agente/produttore; lista separata di conti correnti per il soggettono versioningfisiologica un soggetto può avere IBAN diversi per produttori diversinon documentata
C

Tra anagrafica e polizze

Pattern: ogni polizza contiene campi anagrafici cristallizzati alla firma. Il dato esiste anche in anagrafica, ma può divergere senza che il sistema lo riconcili.
fisiologica per legge conflitto sem. su codifiche e granularità conflitto op. su animali e sport
dettaglio
Categoria Tabelle coinvolte Quante copie esistono Storico Tipo Regola di prevalenza nota
Identità base (nascita, sesso, età, luogo, beneficiario)persona_fisica ↔ campi nelle polizze (data_nascita_intest_pra, sesso_intestatario_pra, ecc.) ↔ polizza_infortuni_malattia (cognome/nome/CF beneficiario)Una nell'anagrafica; una copia cristallizzata alla firma in ogni polizzacristallizzato alla firmafisiologica per leggenessuna propagazione
Professionetripletta anagrafica ↔ cod_professione_per_auto (ANIA) in polizza_autocod_professione_re in polizza_patrimonio_bene e polizza_persona_aziendaUna nell'anagrafica; una copia per ogni tipo di polizza (con codifiche diverse e non confrontabili)cristallizzatoconflitto sem. 3 codifiche, scopi diversi, non mappabilinessuna propagazione
Indirizzocliente (residenza) ↔ polizza_patrimonio_bene.indirizzo (immobile) ↔ polizza_auto (CAP, comune intestatario) ↔ polizza_persona_azienda (provincia)Una per ogni agente/produttore; una per ogni polizza (es. residenza vs. immobile assicurato possono differire)cristallizzato alla firmafisiologica residenza ≠ immobile(168.634 contraenti con immobile ≠ residenza)
Animali domesticipersona_fisica / soggetto_anagrafica_animale ↔ polizze petPiù voci nell'anagrafica; una copia separata in ogni polizza pet (le due liste possono non coincidere)cristallizzatoconflitto op. animale in polizza può non essere in anagraficanessuna propagazione
Veicolipersona_fisica / soggetto_anagrafica_mezzo_trasportopolizza_auto (targa, telaio, marca, modello, cv, peso, anno…)Più voci nell'anagrafica; una copia più dettagliata in ogni polizza autocristallizzatoconflitto sem. livello di dettaglio diversonessuna propagazione
Immobilipersona_fisica / soggetto_anagrafica_dato_economico (numero, mutui) ↔ polizza_patrimonio_bene (indirizzo, anno, piani, unità abitative)Un dato riepilogativo nell'anagrafica; dettaglio completo per ogni polizza immobilecristallizzatoconflitto sem. granularità diversanessuna propagazione
Beneficiari di polizzasolo polizza_infortuni_malattia (cognome, nome, CF, codice_cliente beneficiario)Solo all'interno di ogni polizza; nessuna copia nell'anagrafica del soggettocristallizzatoconflitto sem. beneficiario è un soggetto, ma vive solo nella polizzanessuna propagazione
Attività sportive / convenzionisoggetto_anagrafica_sport, soggetto_anagrafica_convenzione ↔ campi sport in polizza_infortuni_malattiaPiù voci nell'anagrafica; una copia separata in ogni polizza infortuni (le due liste possono non coincidere)cristallizzatoconflitto op. sport in anagrafica vs sport in polizzanessuna propagazione

Osservazioni trasversali

Le duplicazioni inline di persona_fisica sono un pattern ricorrente, non eccezioni. Sono snapshot del valore corrente, sovrascritti a ogni aggiornamento. La fonte autoritativa per il CRM è quasi sempre la tabella soggetto_anagrafica_* corrispondente.
I conflitti semantici nascono dal contesto. Lo stesso concetto (professione, contatto, animale, indirizzo) ha codifiche o cardinalità diverse a seconda del dominio funzionale che lo usa.
Il Livello 2 duplica fisiologicamente per ogni produttore. Per il CRM non è errore: è un insieme di "viste locali" che vanno selezionate in base al sistema a valle e ai livelli di visibilità.
Anagrafica e polizze non hanno regole di propagazione. Ogni dato di polizza è potenzialmente "più fresco" ma non viene mai promosso. È un compromesso voluto, ma il sistema a valle deve esserne consapevole.
La riconciliazione non è una funzione del DB, è una responsabilità del sistema a valle. Oggi è in capo alla reportistica (e infatti si producono attribuzioni euristiche per evitare i duplicati). Domani dovrà essere in capo al DUC, in modo esplicito e formalizzato.
Logiche CRUD osservate Perimetro: estrazioni, ChartDB, confronti con IT
Create
Da agenzia/agente via VCT o emissione polizza

Le scritture avvengono principalmente tramite gli strumenti operativi di compagnia (VCT, schede anagrafiche, fasi di emissione polizza). In alcuni touchpoint il cliente può inserire o modificare direttamente alcuni dati (es. area riservata, OTP).

Read
Condizionata dai livelli di visibilità di rete

Lo stesso dato del Livello 2 è leggibile in modo diverso a seconda del produttore richiedente. La visibilità segue i livelli di rete (L1/L2 e oltre).

Update
Tre regimi diversi, con eccezioni note sui contatti

L2 (cliente): write locale al produttore, senza propagazione cross-produttore. È design.
L1 inline (persona_fisica): prevale la sovrascrittura del valore corrente; le tabelle soggetto_anagrafica_* conservano la storia quando hanno date di validità.
Polizze: per definizione non si aggiornano dopo la firma, salvo appendici.

Eccezioni sui contatti (da documentazione contatti e comunicazioni):
Contatti AR ad anagrafica unica: se modificati da Area Riservata vengono salvati a livello di anagrafica unica e contro-aggiornati su tutti i cliente del soggetto. È un'eccezione alla regola L2.
Contatti consensi (OTP, grafometrica): aggiornabili solo da NewAge; da AR si può cambiare solo il cellulare OTP.
Contatti contrattuali (SDD): legati al singolo contratto, l'aggiornamento non impatta altri contatti.

Delete
Nel perimetro osservato prevale la cancellazione logica

Campo data_cancellazione sulle tabelle soggetto_anagrafica_*. Non è stato verificato se esistano flussi di cancellazione fisica e in quali condizioni.

Regole di prevalenza note
  • Contatto del soggetto: "più recente per data". Regola operativa introdotta a inizio 2026 a livello di estrazione per marketing automation, dopo problemi noti di comunicazioni non consegnate.
  • Stato di certificazione del contatto: esiste un processo (validazione lineare in onboarding, validazione incrociata su modifica singola di email o cellulare) con stati VALIDATO / IN ATTESA DI VALIDAZIONE / NON VALIDATO, finestra di 20gg con reminder a 10gg. La regola "più recente per data" applicata oggi a fini marketing non considera lo stato di certificazione. Vincolo hard noto sull'OTP: 1 codice fiscale = 1 numero di telefono; 1 numero di telefono = max 2 codici fiscali.
  • Consenso: "più recente per data di aggiornamento". Stessa logica, dichiarata nei flussi di marketing automation.
  • Professione anagrafica: scrittura su tripletta del Livello 1 via VCT; le codifiche di polizza non vengono toccate.
  • Dati pv_produttore: nessuna regola di prevalenza globale. Ogni produttore mantiene la propria copia.
Storico
  • Versionato per data di validità: soggetto_anagrafica_professione, soggetto_anagrafica_consenso, soggetto_anagrafica_persona_giuridica_legame.
  • Tracciato con timestamp ma senza versioning del valore: la maggior parte delle tabelle soggetto_anagrafica_* (creazione, variazione, cancellazione).
  • Cristallizzato per vincolo legale: tutte le tabelle polizza.
  • Nessun versioning: campi inline in persona_fisica e persona_giuridica (sovrascrittura).
Criticità operative per il CRM Per ciascun problema: cosa accade oggi → impatto
Aggiornamento del dato
Il modello self-declaration (es. il cliente che dichiara un cambio di professione o di residenza) è strutturalmente debole: pochi clienti notificano in modo proattivo. Gli aggiornamenti effettuati in contesto polizza non si propagano in anagrafica.
Impatto CRMLa base anagrafica può essere strutturalmente datata, soprattutto per attributi sensibili a profilazione (professione, reddito, immobili).
Consistenza tra produttori
Lo stesso soggetto, gestito da più produttori, può avere valori diversi sui dati del Livello 2 (contatti, indirizzo, IBAN).
Impatto CRMProfilazioni e comunicazioni divergenti se il sistema a valle non sceglie esplicitamente quale visione adottare.
Freschezza del dato
I flussi noti verso marketing automation e gestione consensi operano in batch periodici; altre integrazioni non sono documentate e non sono noti flussi real-time per quel perimetro.
Impatto CRMRischio strutturale di lag tra evento (nuovo consenso, nuovo contatto, cambio stato) e disponibilità del dato per la campagna. Da approfondire come perimetro tecnico.
Storico non sistemico
Fuori dalle aree polizze / professione / consenso / legami PG, il versioning del valore non è garantito.
Impatto CRMÈ difficile costruire customer journey storiche o trigger su variazioni del dato.
Identificazione del contatto autorevole
La regola "più recente per data" è operativa ma applicata a uno storico non bonificato e su una tassonomia stratificata (NewAge per-relazione, AR ad anagrafica unica, consensi certificati, contrattuali SDD). Esiste già un processo di certificazione contatti con stati VALIDATO / IN ATTESA / NON VALIDATO che oggi il "più recente per data" non considera.
Impatto CRMRischio di comunicare su contatti formalmente non validati o di scegliere il contatto sbagliato fra livelli con regole di propagazione diverse.
Identificazione dei consensi attivi
Esiste un disallineamento noto tra flag digitale e documento cartaceo (issue di processo, non di DB).
Impatto CRMRischio di contattare clienti senza base giuridica solida; impatto di compliance.
Vista per testa
Non è nativa nel DB. Va ricostruita a valle con regole di riconciliazione (Livello 1) e di prevalenza (Livello 2 e polizze).
Ponte verso il DUCIl DUC esiste per costruire questa vista in modo esplicito, formalizzato e governato. È il punto di passaggio tra l'analisi del DB e il bisogno del CRM.
Cosa il DUC è / non è attrezzato a risolvere Distinzione esplicita tra perimetro DUC e cosa resta in NewAge o altrove

✓ Sì · in scope DUC

  • Golden record per il Livello 1: riconciliazione tra produttori.
  • Golden rules: regole di coerenza del dato da far validare dal business (commerciale e agenzie), non solo IT.
  • Vista per testa: aggregazione cross-polizza per soggetto.
  • Regole di visibilità esplicite per il Livello 2 (L1-L4), da co-progettare.
  • Versioning dove serve al CRM.

✗ No · fuori scope DUC

  • Qualità del dato a monte in NewAge.
  • Bonifica completa degli ambienti NewAge esistenti: piano pluriennale, fuori Fase 1.
  • Processo di allineamento flag/documento per i consensi: tema di compliance e processo, non di dato.
  • Dati fossilizzati nelle polizze già firmate.
  • Statistiche e dato certificato ANIA: restano in NewAge.
Fonti 02_Analisi/DUC_Criticita_Struttura_DB_v1.md · documento sorgente di questi findings (v1.1, 25 mag 2026)
01_Estrazioni/Estrazione_Anagrafica_trasposta.02.xlsx · fonte della distinzione Livello 1 / Livello 2
02_Analisi/chartdb/ChartDB20260525.dbml · schema NewAge aggiornato al 25/05/2026
02_Analisi/DUC_Principi_Clustering_v0.2.md · proposta di clustering e principi fondativi