AYXZA · SCORE Presentazione di prodotto IT · EN
Prodotto installabile Single-tenant · nessun dato condiviso Analisi marginalità e scoring

Il margine vero di ogni cliente, di ogni voce, di ogni fornitore.

AYXZA Score ricostruisce il conto economico di un rivenditore alla granularità della singola riga di contratto: ricavi, costi di acquisto puntuali, quote di costi a forfait ripartite per driver, carico di assistenza, costo finanziario del circolante, oneri da insoluto. Sopra questi numeri costruisce punteggi nominati, sempre scomponibili nei propri componenti. Installato in casa del rivenditore.

↓ Il problema · § 01
VOCE CLIENTE PERIODO UNA CELLA
La cella è l'unità del sistema · contratto × cliente × voce × periodo
01
Il problema
Fatturato ≠ margine

Il rivenditore conosce il fatturato per cliente. Quasi mai il margine.

Contratti a forfait che coprono un insieme di licenze, altre voci a sconto, assistenza compresa nel canone, installazioni in presenza e da remoto, prodotti di terzi, condizioni di incasso diverse per ogni cliente. Il costo reale di servire un cliente è disperso tra contratti fornitore, ticket, scadenzari e insoluti: esiste, ma non è in nessun posto.

Il risultato è che le decisioni che contano — rinnovo, aumento, disdetta, rinegoziazione col fornitore — si prendono sul fatturato, l'unico numero disponibile per cliente. AYXZA Score riporta tutte le componenti su un'unica base di calcolo e le tiene distinte fino all'ultima vista.

OGGI · IL COSTO DI SERVIRE UN CLIENTE È DISPERSO contratti fornitore componenti a forfait ticket e interventi scadenzario e incassi insoluti BASE DI CALCOLO una sola, per periodo granularità minima mai persa CIÒ CHE DIVENTA DECIDIBILE Quanto margino su ogni cliente e su ogni voce Quanto costa davvero il rapporto con un fornitore Quali clienti sono un problema rischio · carico · redditività
Fig. 01 · Le tre domande a cui il prodotto risponde in modo difendibileSchema
Prodotto neutro
Il caso d'origine è un rivenditore di software gestionale con contratti misti forfait e sconto. È il caso di validazione, non il perimetro: nessun concetto del caso specifico esiste nel sistema, tutto emerge dalla configurazione del catalogo.
Ciò che non fa
Nessuna fatturazione, nessuna contabilità, nessuna gestione documentale: il sistema legge, non emette. Nessuna gestione operativa dei ticket: l'assistenza entra come misura di carico già avvenuto. Nessun archivio centrale fra installazioni.
02
La cella
Contratto × cliente × voce × periodo

Un solo insieme di celle. Ogni vista è una somma su quell'insieme: due viste non possono divergere.

Ogni importo prodotto dal calcolo atterra su una cella identificata da contratto, cliente, voce e periodo: la granularità minima non si degrada mai. La tabella dei risultati è stretta — una riga per importo, con i tre assi di natura come dati della riga. Le quantità vivono in una struttura compagna, con la propria unità di misura, e non si sommano mai con gli importi.

CONTENUTO DELLA CELLA · SETTE COMPONENTI DI UN REGISTRO CHIUSO ricavo direttoPREZZO DI RIGA ricavo allocatoQUOTA DI PREZZO A CORPO costo fornitore direttoLISTINO − SCONTO costo forfait allocatoQUOTA DI POOL costo assistenza allocatoQUOTA DEL CARICO costo finanziarioESPOSIZIONE × TASSO onere da insolutoACCESSORI E PERDITE QUANTITÀ · STRUTTURA COMPAGNA, CON UNITÀ DI MISURA OGNI NUMERO DICHIARA LA PROPRIA NATURA ORIGINE diretto · attribuzione senza convenzioni allocato · quota da un totale, con driver dichiarato FONTE reale · misurata sul dato convenzionale · da regola o costo standard PROVENIENZA DEL PARAMETRO calcolato · derivato · manuale vale nei punteggi: nessun numero non scomponibile
Fig. 02 · Il registro delle componenti è chiuso: si estende per decisione, mai per convenzioneSchema
1
insieme di celle
tutte le viste sono aggregazioni: per contratto, cliente, voce, famiglia, fornitore, gruppo, periodo
3
assi di natura
componente, origine, fonte: dati della riga, non colonne separate
7
componenti
registro chiuso, esteso solo per decisione dichiarata
0
arrotondamenti persi
ogni ripartizione avviene in centesimi interi, per costruzione
03
Dal ricavo al margine
Un periodo · valori illustrativi

Il margine non è un numero: è una discesa di cui si vede ogni gradino.

La stessa scomposizione vale per il totale, per il singolo cliente, per la singola voce. Le componenti tratteggiate sono allocate: nascono da un totale ripartito con un driver dichiarato, e restano riconoscibili in ogni vista. Il costo finanziario resta una componente separata, mai fusa nel margine operativo.

25.00020.000 15.00010.000 5.0000 27.670 −14.590 −4.250 −2.740 −265 −310 5.515 RICAVODIRETTO + ALLOCATO COSTO FORNITOREDIRETTO FORFAITALLOCATO ASSISTENZAALLOCATA COSTOFINANZIARIO ONEREINSOLUTO MARGINE 19,9 % RICAVO COSTO DIRETTO COSTO ALLOCATO · CONVENZIONE DICHIARATA MARGINE
Fig. 03 · Un periodo, tre clienti. Valori illustrativi, non dati realiGrafico · euro
Diretto e allocato
La somma dei margini per cliente coincide sempre con il margine complessivo del rivenditore. Ciò che cambia fra i clienti è quanta parte del loro costo è convenzionale: è un dato leggibile, non una nota a piè di pagina.
Composizione del costo
Su questo periodo: 15.165 di costo diretto contro 6.990 di costo allocato. Il rapporto è esso stesso un indicatore: dice quanto del giudizio dipende da una convenzione.
Simulazioni
Uno scenario è un livello di modifiche ipotetiche — adeguamento prezzi, disdetta, nuovo contratto — applicato sopra i dati reali e ricalcolato dallo stesso identico motore. Non esiste un secondo motore per le ipotesi.
04
Forfait, driver, quadratura
Ripartizione fino alla voce

Il forfait è un costo senza cliente. L'allocazione gli dà un cliente senza nascondere la convenzione.

Un contratto fornitore porta due nature di costo. Le voci puntuali hanno un costo per unità (listino meno sconto) e raggiungono la cella per moltiplicazione: nessuna convenzione. Le componenti a forfait sono un importo unico riferito a un insieme di voci coperte: raggiungono la cella per ripartizione, secondo un driver dichiarato per ciascuna componente e fino al livello della singola voce, non solo del cliente.

CONTRATTO FORNITORE voci puntuali listino − sconto, per unità componenti a forfait importo unico, nessun cliente PERCORSO DIRETTO costo per unità × quantità della riga DRIVER DI RIPARTIZIONE unità coperte · unità pesate ricavi generati · quota fissa percentuali manuali PERCORSO ALLOCATO CELLA · CONTRATTO × CLIENTE × VOCE × PERIODO ricavi − costi direttiPUNTUALI − costi allocatiCONVENZIONALI = margine, sempre scomposto VINCOLO STRUTTURALE Σ quote = totale ripartito, per costruzione metodo del massimo resto, in centesimi interi
Fig. 04 · Due percorsi, una sola cella. Il confronto fra driver alternativi sugli stessi dati è una funzione del sistemaSchema
La quadratura non è un controllo: è il metodo

Ogni ripartizione su più destinazioni avviene in centesimi interi con il metodo del massimo resto: quote intere per difetto, resto distribuito alle frazioni decrescenti, pareggi risolti per ordine lessicografico della chiave di cella. La somma delle quote coincide con il totale per costruzione, non per verifica a posteriori. La stessa politica governa il riproporzionamento delle validità parziali: una riga che cambia versione a metà periodo non produce doppi conteggi né centesimi persi.

TOTALE DA RIPARTIRE · 100,00 € · DRIVER 7 / 5 / 3 QUOTA ESATTA cella A · 46,6666… cella B · 33,3333… cella C · 20,0000 NON RAPPRESENTABILE IN CENTESIMI PARTE INTERA 4666 cent · resto 0,67 3333 cent · resto 0,33 2000 cent · resto 0,00 SOMMA 9999 · MANCA UN CENTESIMO ASSEGNAZIONE 4667 centRESTO MAGGIORE 3333 cent 2000 cent SOMMA 10000 · ESATTA
Fig. 05 · Il centesimo non si perde e non si duplica: ha una regola, ed è deterministicaSchema
Assistenza
Stessa meccanica. L'evento porta cliente, periodo, tipo di intervento, conteggio obbligatorio e ore facoltative: con le ore si applica il costo orario ed è reale, senza ore si applica il costo standard del tipo ed è convenzionale. L'attribuzione alle voci usa un driver configurabile, predefinito sui ricavi, e avviene dentro il singolo cliente.
Prezzo a corpo
Il ricavo si alloca come il costo. Se il contratto è a corpo, le righe con prezzo noto sono bloccate e il residuo si ripartisce. Prezzi bloccati che eccedono il totale pattuito sono un errore segnalato, mai assorbito.
Il motore riferisce
Componente a forfait senza celle nel perimetro coperto, quota che risulterebbe negativa, riga fuori catalogo incompleta: il motore non solleva eccezioni e non corregge in silenzio. Riferisce, e la segnalazione resta accanto ai numeri del periodo.
05
La catena di calcolo
Puro · deterministico

Stesso ingresso, stesso risultato. Byte per byte, impronte comprese.

Il motore riceve i dati di partenza e un livello facoltativo di modifiche ipotetiche, e restituisce un insieme di celle. Non scrive: la persistenza è decisione di chi lo invoca, e avviene per riscrittura atomica del periodo. Nessuna dipendenza da orologio, ordine di lettura o stato esterno.

0 MODIFICHE IPOTETICHE SU COPIA Lo scenario si applica a una copia dei dati di partenza. Da qui in avanti il calcolo è identico a quello reale. 1 SELEZIONE E IMPRONTE Versioni valide nel periodo su entrambi i lati, eventi e insoluti del periodo. Da ciò che il calcolo vede si emettono le sette impronte. 2 CELLE DIRETTE Ricavi e costi puntuali, con riproporzionamento delle validità parziali secondo il criterio dichiarato sulla voce. 3 RIPARTIZIONI Residuo dei contratti a corpo, componenti a forfait, carico di assistenza: totale del driver sul perimetro, poi quota su ciascuna cella. 4 COMPONENTI AGGIUNTIVE Costo finanziario dall'esposizione teorica (periodicità di fatturazione, condizioni di pagamento, tasso) e oneri da insoluto.
Fig. 06 · Sequenza per periodo. Persistenza e lettura appartengono ad altri attori: il motore si ferma all'esitoSchema
Perché sette firme
Un'unica firma direbbe soltanto «qualcosa è cambiato». Sette dicono che cosa: la verifica indica la famiglia divergente, e la decisione di ricalcolare resta a chi legge.
Fuori dall'impronta
La politica di prevalenza governa l'ingresso dei dati, non il calcolo: non entra nell'impronta. Ciò che è entrato, invece, è già dentro le famiglie.
Impronte degli input · sette famiglie

Ogni periodo calcolato conserva, accanto alle celle, la data di calcolo e una firma per ciascuna famiglia di dati che il calcolo ha visto. Le righe selezionate sono serializzate in forma canonica e sottoposte ad hash: l'impronta descrive ciò che il calcolo ha visto, per costruzione, non una fotografia parallela che potrebbe divergere. Quando un input cambia, i periodi che ne dipendono risultano non aggiornati: restano leggibili, dichiarati come tali.

FamigliaContenuto considerato
anagraficaSoggetti e condizioni di pagamento per lato: sono l'ingresso del costo finanziario
catalogoCoperture, listini predefiniti, pesi dei driver, criteri di riproporzionamento
contrattiVersioni valide nel periodo su entrambi i lati, con prezzi, quantità e modalità di prezzo
assistenzaEventi del periodo e tipi di intervento con i relativi costi standard
insolutiPosizioni riferite al periodo, con stato e costi accessori
configurazioneDriver, tasso finanziario, costi orari, parametri di calcolo
funzioni attiveQuali componenti erano attive al momento del calcolo
Versioni, non sovrascritture Contratti e listini vivono a versioni con validità. Il ricalcolo di un periodo passato seleziona la versione valida allora e restituisce il risultato di allora. La data di creazione del record, accanto alla validità, distingue una correzione retroattiva da un difetto di calcolo.
06
Le viste
Aggregazioni dello stesso insieme

Nessuna vista calcola qualcosa di proprio. Somma, e dichiara che cosa somma.

COMPOSIZIONE DEL RICAVO PER CLIENTE · UN PERIODO Rossi S.r.l. 30,1 % Bianchi S.p.A. 3,5 % Verdi & C. 23,2 % COSTO DIRETTO COSTO ALLOCATO MARGINE LARGHEZZA = RICAVO DEL PERIODO Bianchi fattura più di Verdi e margina cinque volte meno: la differenza sta nel carico di assistenza, che è costo allocato, e in un onere da insoluto che il fatturato non mostra.
Fig. 07 · Valori illustrativiGrafico · euro
Aggregazioni ammesse
Per contratto, per cliente, per voce, per famiglia o tag, per fornitore attraverso la copertura, per gruppo di soggetti, per periodo, e ogni combinazione. Il margine per contratto — la vista utile al rinnovo — è una di queste, non una funzione a parte.
Dimensioni proprie
Le classificazioni dei soggetti le definisce l'utente: settore, zona, canale, ciò che serve. Il prodotto non impone una tassonomia, la riceve.
Il parco clienti su due assi
40 %30 % 20 %10 % 0 % 0102030 ORE DI ASSISTENZA NEL PERIODO MARGINE % CARICO ALTO · MARGINE BASSO ROSSI30,1 % · 8 ORE VERDI23,2 % · 5 ORE BIANCHI3,5 % · 24 ORE
Fig. 08 · Nessuna soglia imposta dal sistema: i quadranti li dichiara chi legge. Valori illustrativiGrafico
07
Lo scoring
Nominato · spiegabile

Un punteggio che non si scompone non è una misura: è un'opinione.

Lo scoring non è precostituito. Si costruisce: si sceglie il soggetto (cliente o fornitore), si scelgono i parametri, si dichiara per ciascuno una regola di normalizzazione su scala 0–100 — minimo e massimo, percentili sul parco, scaglioni — e un peso. I punteggi nominati convivono: redditività, rischio, carico, o qualunque altra domanda il rivenditore voglia porre in modo ripetibile.

Ogni parametro dichiara la propria provenienza: calcolato dal motore, derivato da una formula libera su altri parametri, manuale per le valutazioni soggettive. Dal punteggio complessivo si scende sempre al contributo di ogni componente, fino al valore grezzo del parametro e alla cella che lo ha prodotto.

PUNTEGGIO «REDDITIVITÀ» · SU CLIENTI · SOMMA PESATA 0–100 COMPONENTE NORMALIZZATO 0–100 PESO CONTRIBUTO margine percentuale CALCOLATO · PERCENTILI SUL PARCO 12 40 4,8 incidenza insoluti CALCOLATO · MIN-MAX INVERTITO 30 20 6,0 ore assistenza per mille euro DERIVATO · SCAGLIONI 18 25 4,5 ritardo medio di incasso CALCOLATO · MIN-MAX INVERTITO 40 15 6,0 BIANCHI S.P.A. 100 21,3 CONFRONTO · ROSSI S.R.L. 86,5 SULLA STESSA DEFINIZIONE
Fig. 09 · Il punteggio è il totale della colonna di destra. Valori illustrativiGrafico
Scala assoluta o relativa
Ogni componente dichiara la propria scala. Le assolute si invalidano solo per il soggetto toccato; le relative, basate su percentili, invalidano i punteggi del periodo per tutti: se cambia il parco, cambia la posizione di ciascuno. Il punteggio complessivo eredita la natura più debole delle sue componenti, e conserva i riferimenti di normalizzazione usati.
Parametri derivati
Una formula libera su altri parametri, definita una volta e riusabile in più punteggi: ore per mille euro di fatturato, margine per posto coperto, insoluto sul parco. Sono parametri a tutti gli effetti, con provenienza dichiarata.
Funzioni disattivabili
Non tutti i rivenditori hanno gli stessi dati. Alcune componenti si disattivano in configurazione: la disattivazione esclude dal calcolo, conserva i dati inseriti, rimuove i parametri dal costruttore ed entra nell'impronta. È impedita finché esistono punteggi che ne dipendono.
08
Ingresso dei dati
File · manuale · connettori

Qualunque gestionale può alimentare il prodotto. Nessun gestionale è dentro il prodotto.

Ogni canale d'ingresso è un'entità dichiarata, con il proprio tracciato e la propria politica. I connettori sono adattatori esterni: traducono e spingono verso lo stesso endpoint di ricezione dell'import, quindi passano dalla stessa validazione. Un adattatore fatto male non può corrompere il calcolo.

gestionale · CSV sistema ticket contabilità adattatore API inserimento diretto SORGENTI DICHIARATE TRACCIATO mappatura per colonna tipi chiusi e conversioni nessun formato imposto CORRISPONDENZE (sorgente, codice esterno) → entità interna senza aggancio la riga è respinta e attende PREVALENZA riempire non è sovrascrivere valore manuale protetto per campo ogni campo ricorda quale sorgente lo ha scritto DATI DI PARTENZA · UNA SOLA VERITÀ INTERNA RE-IMPORT DETERMINISTICO · OGNI RIGA HA UNA STORIA CONSULTABILE
Fig. 10 · L'endpoint di ricezione è unico: import e connettori attraversano la stessa validazioneSchema
Configurazione nominata L'intera configurazione — catalogo, driver, parametri di calcolo, definizioni delle sorgenti, tracciati standard — è uno snapshot con nome, versione e data. Si prepara prima dell'installazione, si carica al primo avvio, si riesporta dopo un aggiustamento. Una sola è attiva: il confronto fra configurazioni si fa con gli scenari, mai facendo convivere mondi paralleli sugli stessi periodi.
09
Verifiche
In esercizio, non in collaudo

Le quadrature non sono un collaudo che finisce. Sono una pagina del prodotto.

Alcune differenze devono essere nulle per costruzione: se non lo sono, c'è un difetto. Altre sono misure da osservare, non errori: il sistema le mostra e non impone soglie. La distinzione è dichiarata su ogni riga, perché un cruscotto che allarma su tutto non viene più letto.

VerificaNatura attesaChe cosa dice
Somma delle quotedifferenza nullaLe quote allocate coincidono con il totale ripartito. Vincolo strutturale del metodo di arrotondamento.
Ricavo a corpodifferenza nullaLa somma delle righe di un contratto a corpo coincide con il totale pattuito.
Ricalcolo indipendentedifferenza nullaUn secondo percorso, che non passa dal motore, ricostruisce gli stessi totali dai dati di partenza.
Periodi non aggiornatimisuraPeriodi la cui impronta non corrisponde più ai dati di partenza. Restano leggibili, dichiarati come tali.
Confronto delle impronteazioneRicalcolo in memoria e confronto famiglia per famiglia. Non scrive nulla: dice quale famiglia è cambiata.
Valori protettimisuraValori con protezione manuale attiva e divergenze rilevate negli ultimi caricamenti, per campo.
Sovrascritture registratemisuraQuante volte un caricamento ha sostituito un valore inserito a mano. È la misura dell'appropriatezza della politica.
Corrispondenze non risoltecodaCodici esterni senza entità: sono il motivo per cui delle righe attendono, e si risolvono senza ripetere il caricamento.
Segnalazioni del periodocodaCiò che il motore ha riferito calcolando, leggibile accanto ai numeri che ha prodotto.
10
Fondamenta
Installazione singola
1
istanza per rivenditore
i dati non escono di casa
2
database, stesso codice
PostgreSQL o SQLite, schema nel sottoinsieme comune
3
ruoli utente
amministrazione, analisi, sola lettura · audit dal primo giorno
0
dati condivisi
nessun archivio centrale, nessun confronto fra installazioni
StratoScelta
CALCOLOPacchetto puro e isolato: nessun accesso al database, nessuna dipendenza dall'ambiente. Importi in centesimi interi, tassi in decimale esatto, mai virgola mobile.
DATISQL esplicito, senza mappatore relazionale: lo schema è l'unica fonte, la scrittura del periodo è atomica.
APPLICAZIONEPython · FastAPI · pagine generate dal server, senza dipendenze di rete a runtime.
DISTRIBUZIONEContainer singolo, nessun servizio esterno. Installazione desktop «chiavi in mano» come traguardo finale.
USCITALettura del cubo e dei punteggi già calcolati, con data di calcolo e stato: il sistema espone numeri congelati, non calcola su richiesta esterna.
Nessuna componente IA
Scelta dichiarata. Un margine che dipende da un modello statistico non è difendibile davanti a un fornitore in rinegoziazione. Il riconoscimento delle intestazioni dei file resta un acceleratore, mai una strategia.
Determinismo verificabile
Il pacchetto di calcolo è verificato contro un oracolo indipendente, costruito a parte e non derivato dal codice. Se il motore e l'oracolo divergono, la divergenza è dichiarata, non assorbita.

«Un numero che non dichiara la propria natura non è un dato: è un'opinione impaginata.»

AYXZA Score · principio di progetto
Originediretto o allocato, su ricavi e su costi
Fontereale o convenzionale, dichiarata sulla cella
Provenienzacalcolato, derivato o manuale, nei punteggi
Conseguenzaogni punteggio si scompone fino alla cella che lo ha prodotto