Diversificazione nel SaaS B2B: come usare Ansoff, Monte Carlo e AI per allocare il budget di crescita
This post has already been read 19 times!
Dalla Matrice di Ansoff alla decision analytics: come l’AI riduce il costo dell’esplorazione, trasforma l’incertezza in distribuzioni di probabilità e modifica la logica di allocazione del capitale di crescita.
Immaginiamo di essere il management di un SaaS B2B che ha raggiunto una buona posizione nel proprio mercato e dispone di 1 milione di euro da destinare alla crescita.
Le alternative sono molte: investire ulteriormente nel mercato attuale, sviluppare un nuovo prodotto, entrare in un nuovo segmento oppure combinare nuovo prodotto e nuovo mercato.
A prima vista, la decisione sembra strategica: basta individuare l’opportunità con il maggiore potenziale e concentrarvi il budget.
Nella pratica, però, il problema è molto più complesso.
Non conosciamo con certezza la probabilità che un’iniziativa abbia successo.
Non sappiamo quanto sarà grande il mercato effettivamente raggiungibile, quanto tempo servirà per ottenere risultati né quale sarà il capitale necessario per passare dal prototipo allo scaling.
Inoltre, alcune iniziative possono fallire, mentre altre possono generare risultati superiori alle attese.
Il management deve quindi decidere come allocare capitale sotto incertezza, evitando due errori opposti: concentrare troppe risorse su una previsione fragile oppure distribuire il budget indiscriminatamente senza considerare il valore economico delle diverse opportunità.
La Matrice di Ansoff è un ottimo punto di partenza perché permette di classificare le quattro principali direzioni di crescita. Ma non risponde alle domande quantitative che diventano decisive quando bisogna effettivamente investire:
- quanto capitale destinare a ciascuna opportunità?
- quanto è robusta la scelta rispetto all’incertezza delle stime?
- qual è la probabilità che una strategia sia effettivamente la migliore?
- conviene scegliere un singolo progetto oppure finanziare un portafoglio di esperimenti?
- quanto capitale è opportuno impegnare subito e quanto mantenere condizionato ai risultati?
È qui che la decision analytics può trasformare un problema strategico in un problema quantitativo.
In questo articolo utilizzeremo un caso didattico di SaaS B2B, DataFlow, per costruire progressivamente un modello decisionale.
Partiremo dalla Matrice di Ansoff e confronteremo le quattro strategie attraverso il valore atteso.
Successivamente introdurremo la simulazione Monte Carlo per rappresentare l’incertezza nelle probabilità di successo e nei payoff, fino ad arrivare all’ottimizzazione del portafoglio mediante MILP.
L’obiettivo, però, non è semplicemente trovare “il progetto migliore”.
Il modello serve a rispondere a una domanda manageriale più interessante:
quanto costa esplorare un’opportunità, quanta informazione possiamo ottenere prima di impegnare capitale significativo e come possiamo concentrare gli investimenti solo dopo aver raccolto evidenza?
Questo porta a una logica di gestione del capitale diversa da quella del tradizionale business plan:
[math]\displaystyle \text{Ipotesi} \rightarrow \text{Explore} \rightarrow \text{Validate} \rightarrow \text{Scale}[/math]
L’AI entra in questo processo non perché elimini l’incertezza, ma perché può ridurre il costo e il tempo dell’esplorazione: prototipazione, ricerca, analisi del feedback e trasformazione delle ipotesi in evidenza.
La tesi che guiderà l’analisi è quindi semplice:
quando il costo dell’esplorazione è basso rispetto al potenziale payoff, può essere più razionale finanziare informazione e opzioni prima di finanziare lo scaling.
Il caso DataFlow mostrerà quantitativamente come questa logica possa modificare il modo in cui un’impresa SaaS B2B valuta la diversificazione, gestisce il rischio e alloca il capitale di crescita.
La Matrice di Ansoff
La Matrice di Ansoff indica dove un’azienda può cercare la crescita, ma non risponde a tre domande decisive per un manager:
- Quanto capitale conviene allocare a ciascuna opportunità?
- Quanto è robusta la decisione quando probabilità e valore futuro sono incerti?
- È meglio scegliere un singolo progetto oppure finanziare un portafoglio di esperimenti?
Questo articolo costruisce un modello quantitativo applicato a un ipotetico SaaS B2B, DataFlow, utilizzando tre livelli di analisi:
- Valore atteso: confronta economicamente quattro strategie di crescita, includendo l’attualizzazione temporale.
- Monte Carlo: trasforma probabilità e valore di mercato da stime puntuali a distribuzioni e misura la probabilità che ciascuna strategia sia la migliore.
- Ottimizzazione del portafoglio: determina quali esperimenti finanziare quando esiste un budget complessivo di [math]€1.000.000[/math].
Il risultato è interessante: nel caso parametrico analizzato, la diversificazione presenta il maggiore valore atteso, pur avendo la probabilità media di successo più bassa.
Ma questa non significa che la diversificazione sia sempre la strategia migliore.
Significa qualcosa di più interessante:
quando il costo dell’esplorazione è basso rispetto al potenziale payoff, può essere economicamente razionale acquistare informazione attraverso piccoli esperimenti prima di impegnare capitale significativo nello scaling.
L’AI può amplificare questo effetto perché riduce il costo e il tempo necessari per costruire, testare e analizzare nuovi concept.
Da Ansoff alla decision analytics
La Matrice di Ansoff è uno dei framework più conosciuti della strategia aziendale.
Incrocia due dimensioni:
- prodotti esistenti vs nuovi prodotti;
- mercati esistenti vs nuovi mercati.
Da questa combinazione derivano quattro strategie:
| Mercato esistente | Nuovo mercato | |
|---|---|---|
| Prodotto esistente | Penetrazione | Sviluppo mercato |
| Nuovo prodotto | Sviluppo prodotto | Diversificazione |
Il problema è che Ansoff è principalmente un framework direzionale.
Dice:
“Questa opportunità appartiene alla categoria della diversificazione.”
Non dice:
“Quanto dovremmo investire?”
E soprattutto non dice:
“Come dovremmo allocare il capitale quando non conosciamo ancora la probabilità di successo?”
Qui entra la decision analytics.
Il problema può essere riscritto come:
[math]\displaystyle \text{Strategia} \rightarrow \text{incertezza} \rightarrow \text{valore atteso} \rightarrow \text{simulazione} \rightarrow \text{allocazione del capitale}[/math]
La matrice diventa quindi il punto di partenza, non il punto di arrivo.
Il caso DataFlow
Immaginiamo un SaaS B2B chiamato DataFlow.
L’azienda dispone di quattro possibili direzioni di crescita:
- penetrare ulteriormente il mercato attuale;
- sviluppare un nuovo prodotto;
- entrare in un nuovo mercato con il prodotto esistente;
- sviluppare un nuovo prodotto per un nuovo mercato.
Quest’ultima è la diversificazione.
Per ogni strategia stimiamo:
- costo del prototipo;
- costo dello scaling;
- probabilità di successo;
- valore economico in caso di successo;
- tempo necessario per raggiungere il risultato.
Il modello iniziale è:
| Strategia | Prototipo | Scaling | Prob. successo | Valore successo | Tempo |
|---|---|---|---|---|---|
| Penetrazione | €180k | €0 | 75% | €400k | 3 mesi |
| Sviluppo prodotto | €90k | €240k | 55% | €800k | 9 mesi |
| Sviluppo mercato | €120k | €260k | 45% | €900k | 12 mesi |
| Diversificazione | €70k | €380k | 30% | €1,5M | 18 mesi |
Questi numeri sono parametri didattici, non stime empiriche del mercato SaaS.
Il loro scopo è mostrare come funziona il processo decisionale.
Livello 1 — Il valore atteso
Il primo passo consiste nel calcolare il valore atteso di ogni strategia.
Per una strategia con prototipo [math]C_p[/math], scaling [math]C_s[/math], probabilità di successo [math]p[/math] e valore [math]V[/math]:
[math]\displaystyle EV = pV – C_p – pC_s[/math]
La formula assume che lo scaling venga sostenuto soltanto nel caso in cui l’iniziativa abbia successo.
Per la diversificazione:
[math]\displaystyle EV_D = 0,30(1.500.000) – 70.000 – 0,30(380.000)[/math]
quindi:
[math]\displaystyle EV_D = 450.000 – 70.000 – 114.000[/math]
[math]\boxed{EV_D = 266.000€}[/math]
Questo è il valore atteso nominale.
Se introduciamo un tasso di attualizzazione annuo del 10%, il valore temporale del denaro deve essere considerato.
Il tasso mensile equivalente è:
[math]\displaystyle r_m = (1 + 0,10)^{1/12} – 1[/math]
e il fattore di attualizzazione per [math]t[/math] mesi è:
[math]\displaystyle DF_t = (1 + r_m)^{-t}[/math]
Per la diversificazione, che richiede 18 mesi:
[math]\displaystyle EV_{D,att} = 266.000 \cdot DF_{18}[/math]
ottenendo circa:
[math]\boxed{EV_{D,att} = 230.565€}[/math]
Il confronto tra le quattro strategie
Applicando la stessa metodologia a tutte le strategie otteniamo:
| Strategia | Investimento atteso | EV nominale | EV attualizzato | ROI atteso |
|---|---|---|---|---|
| Penetrazione | €180k | €120k | €117k | 66,7% |
| Sviluppo prodotto | €222k | €218k | €203k | 98,2% |
| Sviluppo mercato | €237k | €168k | €153k | 70,9% |
| Diversificazione | €184k | €266k | €231k | 144,6% |
Il risultato è controintuitivo.
La diversificazione ha la probabilità di successo più bassa, ma presenta il maggiore valore atteso nel caso analizzato.
Perché?
Perché il valore atteso non dipende soltanto dalla probabilità.
Dipende anche dall’asimmetria tra:
- capitale esposto;
- costo dell’esplorazione;
- costo dello scaling;
- payoff potenziale.
La vera variabile nascosta: il costo dell’esplorazione
Questo è il punto centrale del modello.
Supponiamo di concentrarci sulla diversificazione:
[math]\displaystyle EV = pV – C_p – pC_s[/math]
Raccogliendo [math]p[/math]:
[math]\displaystyle EV = p(V – C_s) – C_p[/math]
L’EV diventa positivo quando:
[math]\displaystyle p(V – C_s) > C_p[/math]
quindi:
[math]\displaystyle p > \frac{C_p}{V – C_s}[/math]
Nel nostro caso:
[math]\displaystyle p^* = \frac{70.000}{1.500.000 – 380.000}[/math]
[math]\boxed{p^* = 6,25\%}[/math]
Quindi, nel modello semplificato, una probabilità di successo superiore al 6,25% rende positivo l’EV nominale della diversificazione.
Non significa che un manager dovrebbe investire automaticamente in qualsiasi progetto con una probabilità superiore al 6,25%.
Significa che, date queste ipotesi, il costo dell’esplorazione è abbastanza basso rispetto al payoff potenziale da rendere economicamente interessante l’esperimento.
Perché l’AI può cambiare questa equazione
Qui emerge il collegamento con l’innovazione AI.
Supponiamo che l’AI permetta di ridurre:
- tempo di sviluppo del MVP;
- costo della prototipazione software;
- costo della ricerca esplorativa;
- tempo necessario per analizzare il feedback;
- costo della sperimentazione;
- tempo necessario per arrivare a una prima evidenza.
Nel modello questo significa principalmente:
[math]\displaystyle C_p \downarrow[/math]
Ma dalla formula del break-even:
[math]\displaystyle p^* = \frac{C_p}{V – C_s}[/math]
segue immediatamente:
[math]\displaystyle C_p \downarrow \quad \Rightarrow \quad p^* \downarrow[/math]
Questo è un risultato strategicamente importante.
Se l’AI riduce il costo dell’esplorazione, diminuisce la probabilità minima necessaria affinché un esperimento abbia valore economico atteso positivo.
In altre parole:
l’AI non rende automaticamente più sicura l’innovazione; può però renderla più economica da esplorare.
Ed è una differenza fondamentale.
Il prototipo non compra soltanto un prodotto: compra informazione
Considerare il prototipo esclusivamente come un costo è riduttivo.
Un esperimento produce informazione.
Prima del test:
[math]\displaystyle P(\text{successo}) = 30\%[/math]
Dopo il test potremmo scoprire che:
- il mercato non è interessato;
- il willingness to pay è insufficiente;
- il prodotto ha alta activation;
- il retention rate è promettente;
- il cost-to-serve è troppo elevato.
L’informazione modifica quindi la decisione successiva.
La logica diventa:
[math]\displaystyle \text{Investimento piccolo} \rightarrow \text{informazione} \rightarrow \text{aggiornamento delle probabilità} \rightarrow \text{decisione}[/math]
Questo è il cuore della logica delle real options.
L’impresa non sta semplicemente acquistando un prodotto.
Sta acquistando il diritto di decidere più avanti se investire ulteriormente.
Livello 2 — Monte Carlo: dall’incertezza puntuale alla distribuzione
Il 30% utilizzato nel modello deterministico è una stima puntuale.
Nella realtà, però, il management potrebbe dire:
“Stimiamo il 30%, ma non siamo molto sicuri di questa stima.”
È un’informazione diversa.
Per rappresentarla utilizziamo una distribuzione Beta.
Per la diversificazione:
[math]\displaystyle p \sim \text{Beta}(3,7)[/math]
La media è:
[math]\displaystyle E[p] = \frac{3}{3 + 7} = 0,30[/math]
La Beta permette quindi di conservare una probabilità media del 30%, ma di rappresentare anche l’incertezza attorno a quella stima.
Analogamente, il valore di mercato viene rappresentato mediante una distribuzione triangolare:
[math]\displaystyle V \sim \text{Triangolare}(800k, 1.500k, 2.200k)[/math]
In questo modo il modello non chiede più:
“Qual è il valore?”
ma:
“Quali valori sono plausibili e con quale probabilità?”
Perché la scelta dei parametri Beta conta
È importante non confondere la media della probabilità con l’incertezza della probabilità.
Per esempio:
[math]\displaystyle \text{Beta}(3,7)[/math]
ha media 30%.
Ma anche altre distribuzioni Beta possono avere media 30%.
Quindi:
[math]\displaystyle E[p] = 30\%[/math]
non determina da sola la distribuzione.
I parametri [math]\alpha[/math] e [math]\beta[/math] incorporano anche il livello di dispersione della nostra conoscenza.
Questo significa che il modello dovrebbe essere accompagnato da un processo di calibrazione delle probabilità, utilizzando quando possibile:
- dati storici;
- benchmark interni;
- tassi di successo di iniziative analoghe;
- evidenze di customer research;
- risultati di esperimenti precedenti.
Le probabilità non dovrebbero essere trattate come numeri “oggettivi” quando sono in realtà giudizi manageriali.
Monte Carlo: cosa succede alle quattro strategie?
Eseguiamo 50.000 simulazioni.
I risultati medi dell’EV attualizzato sono:
| Strategia | EV medio | Dev. standard | Mediana | P(EV ≤ 0) |
|---|---|---|---|---|
| Penetrazione | €117k | €59k | €119k | molto bassa |
| Sviluppo prodotto | €203k | €90k | €198k | molto bassa |
| Sviluppo mercato | €152k | €94k | €147k | molto bassa |
| Diversificazione | €230k | €157k | €204k | molto bassa |
Il risultato più importante non è soltanto la media.
È la dispersione.
La diversificazione ha una deviazione standard molto superiore alla penetrazione:
[math]\displaystyle \sigma_D \approx 157k[/math]
contro:
[math]\displaystyle \sigma_P \approx 59k[/math]
Quindi il maggiore valore atteso viene accompagnato da una maggiore incertezza.
Questo rende evidente un principio fondamentale:
massimizzare l’EV non equivale a massimizzare la sicurezza.
Il modello assume un decision maker neutrale al rischio.
Un’impresa fortemente avversa alla volatilità dovrebbe introdurre una funzione di utilità o un vincolo esplicito sul rischio.
La diversificazione è la strategia migliore?
Non necessariamente.
La simulazione mostra la probabilità che ciascuna strategia produca l’EV più elevato:
| Strategia | Probabilità di essere la migliore |
|---|---|
| Penetrazione | 5,20% |
| Sviluppo prodotto | 33,73% |
| Sviluppo mercato | 17,38% |
| Diversificazione | 43,68% |
Quindi la diversificazione è la strategia migliore in circa:
[math]\boxed{43,68\%}[/math]
degli scenari.
È il valore più alto, ma non è una maggioranza assoluta.
In più della metà degli scenari simulati un’altra strategia produce un EV superiore.
Questo è precisamente il motivo per cui non sarebbe corretto trasformare il risultato in:
“Puntiamo tutto sulla diversificazione.”
Il Monte Carlo suggerisce invece:
“La diversificazione ha un’elevata probabilità di essere la migliore opportunità, ma l’incertezza è abbastanza elevata da rendere interessante un approccio di portafoglio.”
Livello 3 — Dalla scelta singola al portafoglio
A questo punto introduciamo un budget complessivo:
[math]\displaystyle B = 1.000.000€[/math]
Definiamo:
[math]\displaystyle x_i = \begin{cases} 1 & \text{se finanziamo il prototipo} \\ 0 & \text{altrimenti} \end{cases}[/math]
e:
[math]\displaystyle y_i = \begin{cases} 1 & \text{se finanziamo lo scaling} \\ 0 & \text{altrimenti} \end{cases}[/math]
con:
[math]\displaystyle y_i \leq x_i[/math]
Lo scaling può quindi essere attivato soltanto se il progetto è stato precedentemente finanziato.
Il problema diventa:
[math]\displaystyle \max \sum_i \left[ p_i(V_i – C_{s,i})y_i – C_{p,i}x_i \right][/math]
soggetto al vincolo:
[math]\displaystyle \sum_i (C_{p,i}x_i + p_iC_{s,i}y_i) \leq B[/math]
Questo è un problema di Mixed Integer Linear Programming (MILP).
Perché entra in gioco il MILP?
Finora abbiamo confrontato le strategie una alla volta.
Ma un manager non deve necessariamente scegliere un solo progetto: può decidere di finanziare un portafoglio di iniziative, rispettando un budget limitato.
Qui entra in gioco il Mixed Integer Linear Programming (MILP), o programmazione lineare intera mista.
In termini semplici, il MILP permette di trasformare una decisione strategica in un problema di allocazione ottimale delle risorse:
quali progetti finanziare, quali portare allo scaling e come rispettare il budget disponibile?
Nel nostro caso le decisioni sono discrete.
Per ogni strategia possiamo infatti decidere:
- 0 → non finanziare il prototipo;
- 1 → finanziare il prototipo;
- 0 → non attivare lo scaling;
- 1 → attivare lo scaling.
Il termine integer deriva proprio da queste variabili decisionali intere, mentre linear indica che sia la funzione obiettivo sia i vincoli sono espressi attraverso combinazioni lineari delle variabili.
Il vantaggio rispetto a un semplice ranking delle strategie è importante: il modello non chiede soltanto “qual è il progetto migliore?”, ma:
“qual è la combinazione di progetti che massimizza il valore atteso rispettando il capitale disponibile?”
Nel nostro esempio imponiamo inoltre una relazione logica fondamentale:
[math]\displaystyle y_i \leq x_i[/math]
dove [math]x_i[/math] indica il finanziamento del prototipo e [math]y_i[/math] lo scaling.
In questo modo lo scaling non può essere attivato senza aver prima finanziato il progetto.
Il MILP diventa quindi il ponte tra strategia e allocazione quantitativa del capitale. Non decide però quando spendere effettivamente il capitale: nel nostro modello rappresenta una valutazione ex ante del portafoglio.
La successiva logica Explore → Validate → Scale introduce invece il meccanismo con cui il capitale può essere rilasciato progressivamente sulla base dell’evidenza raccolta.
Il risultato dell’ottimizzazione
Nel caso parametrico analizzato, il modello seleziona tutti e quattro i progetti.
| Strategia | Prototipo | Scaling |
|---|---|---|
| Penetrazione | SÌ | SÌ |
| Sviluppo prodotto | SÌ | SÌ |
| Sviluppo mercato | SÌ | SÌ |
| Diversificazione | SÌ | SÌ |
Il costo atteso complessivo è:
[math]\boxed{823.000€}[/math]
e l’EV complessivo è:
[math]\boxed{772.000€}[/math]
con:
[math]\displaystyle 1.000.000 – 823.000 = 177.000€[/math]
di budget atteso residuo.
Ma qui è fondamentale chiarire una distinzione.
€460.000 non sono €823.000
I quattro prototipi costano complessivamente:
[math]\displaystyle 180 + 90 + 120 + 70 = 460k[/math]
Quindi:
[math]\boxed{460.000€}[/math]
è il capitale necessario per la fase Explore.
Gli ulteriori:
[math]\displaystyle 823 – 460 = 363k[/math]
rappresentano invece lo scaling atteso, calcolato ex ante attraverso le probabilità di successo.
Pertanto:
Explore
[math]\boxed{460k}[/math]
Scaling atteso
[math]\boxed{363k}[/math]
Impegno atteso complessivo
[math]\boxed{823k}[/math]
Questa distinzione è cruciale per interpretare correttamente il modello.
Il MILP non dice di spendere subito €823.000
Questo è un altro punto fondamentale.
Il modello di ottimizzazione è ex ante.
Utilizza le probabilità di successo per stimare il capitale che, in media, sarà necessario allo scaling.
Non significa che il CFO debba trasferire immediatamente €823.000 ai quattro progetti.
Una strategia manageriale più coerente è:
[math]\boxed{ \text{Explore} \rightarrow \text{Validate} \rightarrow \text{Scale} }[/math]
Prima si finanziano gli esperimenti.
Poi si osservano i risultati.
Solo successivamente si sblocca il capitale di scaling.
Il vero modello: Explore → Validate → Scale
La strategia può essere rappresentata così.
Fase 1 — Explore
Investimento:
[math]\displaystyle €460.000[/math]
Obiettivo:
ottenere evidenza.
KPI:
- activation;
- engagement;
- customer interviews;
- willingness to pay;
- early retention;
- cost-to-serve;
- Idea-to-Evidence Time.
Fase 2 — Validate
Il progetto viene sottoposto a un gate.
La domanda non è:
“Ci piace il progetto?”
ma:
“I dati giustificano un ulteriore investimento?”
Possibili decisioni:
[math]\displaystyle GO[/math]
[math]\displaystyle STOP[/math]
[math]\displaystyle ITERATE[/math]
Questa terza possibilità è importante e non dovrebbe essere ignorata.
Fase 3 — Scale
Solo i progetti che superano il gate ricevono capitale significativo.
Il principio diventa:
[math]\displaystyle \text{Capital follows evidence}[/math]
Il capitale segue l’evidenza.
Il budget di scaling è un’opzione, non un obbligo
Questa è probabilmente la lettura strategica più interessante dell’intero modello.
Supponiamo di spendere €70.000 per costruire un prototipo.
Non stiamo necessariamente decidendo oggi di spendere anche €380.000.
Stiamo comprando la possibilità di prendere quella decisione dopo aver osservato i dati.
Questa struttura assomiglia a una real option:
[math]\displaystyle \text{Costo iniziale} \rightarrow \text{informazione} \rightarrow \text{diritto di investire}[/math]
Il valore del progetto non deriva quindi soltanto dal suo payoff potenziale.
Deriva anche dalla flessibilità decisionale.
Perché quattro esperimenti possono essere migliori di una grande scommessa
La logica tradizionale della pianificazione tende a chiedere:
“Quale dei quattro progetti scegliamo?”
La logica sperimentale chiede invece:
“Quanto costa ottenere informazione su tutti e quattro?”
Se i prototipi hanno costi relativamente bassi, il portafoglio permette di:
- mantenere aperte più opzioni;
- raccogliere informazione;
- eliminare rapidamente le iniziative deboli;
- aumentare l’investimento solo sui progetti promettenti;
- ridurre il rischio di una singola previsione sbagliata.
Questa è una forma di diversificazione dell’incertezza, non semplicemente di diversificazione dei prodotti.
Tutte le combinazioni possibili
Con quattro strategie esistono:
[math]\displaystyle 2^4 = 16[/math]
possibili combinazioni di portafoglio.
Nel caso analizzato, le migliori sono:
| Portafoglio | EV | Costo atteso |
|---|---|---|
| Tutte e quattro | €772k | €823k |
| Prodotto + Mercato + Diversificazione | €652k | €643k |
| Penetrazione + Prodotto + Diversificazione | €604k | €586k |
| Penetrazione + Mercato + Diversificazione | €554k | €601k |
| Penetrazione + Prodotto + Mercato | €506k | €639k |
Il risultato è chiaro:
nel modello parametrico utilizzato, il portafoglio completo massimizza l’EV ex ante.
Ma questo risultato dipende dalle ipotesi.
Non è una legge generale secondo cui “bisogna sempre finanziare tutti i progetti”.
Il vincolo che il modello non vede: la capacità organizzativa
Il MILP considera il capitale finanziario.
Ma un’azienda non dispone soltanto di denaro.
Dispone anche di:
- persone;
- tempo;
- attenzione manageriale;
- capacità tecnica;
- capacità commerciale;
- capacità di execution.
Possiamo quindi immaginare:
[math]\displaystyle \text{Portfolio Capacity} = \min(\text{Capital}, \text{People}, \text{Attention}, \text{Execution})[/math]
Se quattro esperimenti richiedono contemporaneamente il 100% del tempo del CTO, del CMO e del CEO, il portafoglio apparentemente ottimale dal punto di vista finanziario potrebbe diventare subottimale dal punto di vista organizzativo.
Questo suggerisce un’estensione naturale del modello:
[math]\displaystyle \text{MILP finanziario} + \text{vincoli di capacità}[/math]
Il valore dell’informazione
C’è un’altra componente che il modello semplificato non quantifica esplicitamente:
il valore dell’informazione prodotta dall’esperimento.
In termini concettuali:
[math]\displaystyle \text{Value of Experiment} = \text{Expected Payoff} + \text{Value of Information} – \text{Experiment Cost}[/math]
L’informazione può permettere di:
- evitare uno scaling sbagliato;
- modificare il pricing;
- cambiare il target;
- riposizionare il prodotto;
- correggere il modello di business;
- interrompere un progetto prima che assorba altro capitale.
Quindi il vero valore di un MVP non è soltanto:
“quanto fatturato può generare?”
ma anche:
“quanto ci permette di imparare prima di impegnare capitale?”
I gate di validazione
Un possibile playbook didattico può essere:
| Metrica | Soglia indicativa | Se superata | Se non superata |
|---|---|---|---|
| Activation pilota | > 40% | SCALE | STOP / ITERATE |
| Retention 30 giorni | > 70% | SCALE | STOP / ITERATE |
| Willingness to pay | > €1.000/mese | SCALE | STOP / ITERATE |
| NPS | > 30 | SUPPORTING SIGNAL | STOP / ITERATE |
| Cost-to-serve | compatibile con margine target | SCALE | STOP / ITERATE |
Queste soglie sono puramente illustrative.
Non devono essere interpretate come benchmark universali del SaaS B2B.
Devono essere calibrate in funzione di:
- segmento;
- ACV;
- ciclo di vendita;
- pricing;
- frequenza d’uso;
- retention attesa;
- margine lordo;
- modello di consumo.
In particolare, NPS dovrebbe essere considerato un segnale complementare, non un criterio universale di scaling.
Il vero KPI non è soltanto la revenue: Idea-to-Evidence Time
Un’organizzazione orientata alla sperimentazione dovrebbe misurare anche il tempo necessario per trasformare un’ipotesi in evidenza.
Definiamo:
[math]\displaystyle I2E = \text{Time}(\text{idea} \rightarrow \text{evidence})[/math]
L’obiettivo non è necessariamente:
lanciare il prodotto più velocemente.
È:
imparare più velocemente.
Questo cambia radicalmente il ruolo dell’AI.
Se l’AI riduce:
[math]\displaystyle I2E[/math]
e contemporaneamente riduce:
[math]\displaystyle C_p[/math]
l’organizzazione può esplorare più ipotesi con lo stesso capitale.
Cosa succede se la probabilità di successo cambia?
La probabilità del 30% della diversificazione non è un dato di mercato.
È un’ipotesi.
Supponiamo che, dopo una nuova analisi, il management la riduca al 15%.
L’EV diventa:
[math]\displaystyle EV = 0,15(1.500.000) – 70.000 – 0,15(380.000)[/math]
[math]\displaystyle EV = 225.000 – 70.000 – 57.000[/math]
[math]\boxed{EV = 98.000€}[/math]
Il progetto rimane positivo, ma il vantaggio rispetto alle altre strategie diminuisce sensibilmente.
Questo dimostra perché il modello non dovrebbe essere utilizzato come una calcolatrice che restituisce una risposta definitiva.
È uno strumento per fare analisi di sensibilità.
I limiti del modello
Un modello quantitativo è utile anche quando rende esplicite le proprie semplificazioni.
A. Le probabilità sono soggettive
Il 30% della diversificazione è una stima.
Dovrebbe essere calibrata, quando possibile, su:
- dati storici;
- benchmark;
- esperimenti precedenti;
- evidenza di customer discovery.
B. Le strategie non sono necessariamente indipendenti
Il modello tratta le strategie separatamente.
Nella realtà potrebbero esistere:
- risorse condivise;
- sinergie;
- cannibalizzazione;
- correlazioni tra domanda;
- dipendenze tecnologiche.
Se due progetti falliscono insieme, il rischio del portafoglio è superiore a quello stimato da un modello indipendente.
Se invece condividono infrastruttura o distribuzione, potrebbero esistere economie di scala.
C. Il gate non è veramente binario
La realtà non è:
[math]\displaystyle GO/STOP[/math]
ma spesso:
[math]\displaystyle GO/ITERATE/STOP[/math]
L’iterazione ha un costo e richiede tempo.
Un modello più avanzato dovrebbe quindi includere un budget specifico per gli esperimenti successivi.
D. Non viene modellato il costo dell’opportunità
Il capitale destinato a un esperimento non può essere utilizzato contemporaneamente per un’altra iniziativa.
Questo costo opportunità può diventare rilevante quando l’azienda dispone di poche risorse.
E. Il modello non quantifica pienamente il valore dell’informazione
Il prototipo produce conoscenza.
Il modello base la considera soltanto indirettamente.
Una versione più avanzata dovrebbe modellare esplicitamente il valore della flessibilità e dell’informazione.
F. Il modello assume neutralità al rischio
Massimizzare:
[math]\displaystyle E[EV][/math]
equivale a una logica di decisione neutrale al rischio.
Un’impresa con forti vincoli di liquidità potrebbe preferire un progetto con EV inferiore ma varianza molto più bassa.
In quel caso bisogna introdurre una funzione di utilità o vincoli sul downside risk.
Il codice Python completo
Il modello è riproducibile in Python utilizzando:
- NumPy;
- pandas;
- SciPy;
- Matplotlib.
Il codice implementa:
- calcolo dell’EV deterministico;
- attualizzazione;
- break-even;
- simulazione Monte Carlo;
- distribuzioni Beta e triangolari;
- ranking probabilistico;
- ottimizzazione MILP;
- confronto delle 16 combinazioni;
- dashboard;
- gate di validazione.
"""
===============================================================================
Ansoff 2026 — Decision Analytics per la crescita SaaS B2B
===============================================================================
Modello didattico che combina:
- valore atteso;
- attualizzazione;
- Monte Carlo;
- portfolio optimization;
- stage-gated experimentation.
Librerie:
numpy, pandas, matplotlib, scipy
===============================================================================
"""
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from scipy.optimize import milp, LinearConstraint, Bounds
from itertools import product
# =============================================================================
# PARAMETRI GLOBALI
# =============================================================================
BUDGET = 1_000_000
R_ANNUO = 0.10
R_MENSILE = (1 + R_ANNUO) ** (1 / 12) - 1
N_SIM = 50_000
SEED = 42
# =============================================================================
# 1. CASO DATAFLOW
# =============================================================================
strategie = pd.DataFrame({
"strategia": [
"Penetrazione",
"Sviluppo prodotto",
"Sviluppo mercato",
"Diversificazione"
],
"prototipo": [
180_000,
90_000,
120_000,
70_000
],
"scaling": [
0,
240_000,
260_000,
380_000
],
"prob_successo": [
0.75,
0.55,
0.45,
0.30
],
"valore_successo": [
400_000,
800_000,
900_000,
1_500_000
],
"tempo_mesi": [
3,
9,
12,
18
]
})
# =============================================================================
# 2. PARAMETRI MONTE CARLO
# =============================================================================
mc_params = {
"Penetrazione": {
"beta_a": 7.5,
"beta_b": 2.5,
"triang_low": 300_000,
"triang_mode": 400_000,
"triang_high": 500_000
},
"Sviluppo prodotto": {
"beta_a": 5.5,
"beta_b": 4.5,
"triang_low": 600_000,
"triang_mode": 800_000,
"triang_high": 1_000_000
},
"Sviluppo mercato": {
"beta_a": 4.5,
"beta_b": 5.5,
"triang_low": 700_000,
"triang_mode": 900_000,
"triang_high": 1_100_000
},
"Diversificazione": {
"beta_a": 3.0,
"beta_b": 7.0,
"triang_low": 800_000,
"triang_mode": 1_500_000,
"triang_high": 2_200_000
}
}
# =============================================================================
# 3. EV DETERMINISTICO
# =============================================================================
def calcola_ev(df, r_mensile):
df = df.copy()
# Costo atteso:
# prototipo + scaling sostenuto solo in caso di successo
df["investimento_atteso"] = (
df["prototipo"]
+ df["prob_successo"] * df["scaling"]
)
# EV nominale
df["EV_nominale"] = (
df["prob_successo"] * df["valore_successo"]
- df["investimento_atteso"]
)
# Fattore di attualizzazione
df["fattore_att"] = (
1 + r_mensile
) ** (-df["tempo_mesi"])
# EV attualizzato
df["EV_attualizzato"] = (
df["EV_nominale"]
* df["fattore_att"]
)
# ROI atteso
df["ROI_atteso"] = (
df["EV_nominale"]
/ df["investimento_atteso"]
)
return df
strategie = calcola_ev(
strategie,
R_MENSILE
)
# =============================================================================
# 4. BREAK-EVEN
# =============================================================================
def break_even(Cp, V, Cs):
return Cp / (V - Cs)
p_star = break_even(
70_000,
1_500_000,
380_000
)
print(
f"Break-even diversificazione: {p_star:.2%}"
)
# =============================================================================
# 5. MONTE CARLO
# =============================================================================
def simulazione_monte_carlo(
df,
mc_params,
n_sim,
r_mensile,
seed=42
):
rng = np.random.default_rng(seed)
ev_matrix = np.zeros(
(n_sim, len(df))
)
for i, row in df.iterrows():
nome = row["strategia"]
par = mc_params[nome]
# Probabilità incerta
p = rng.beta(
par["beta_a"],
par["beta_b"],
n_sim
)
# Valore incerto
v = rng.triangular(
par["triang_low"],
par["triang_mode"],
par["triang_high"],
n_sim
)
# EV nominale
ev_nom = (
p * v
- row["prototipo"]
- p * row["scaling"]
)
# Attualizzazione
fattore = (
1 + r_mensile
) ** (-row["tempo_mesi"])
ev_matrix[:, i] = (
ev_nom * fattore
)
return pd.DataFrame(
ev_matrix,
columns=df["strategia"]
)
mc_results = simulazione_monte_carlo(
strategie,
mc_params,
N_SIM,
R_MENSILE,
SEED
)
# =============================================================================
# 6. STATISTICHE MONTE CARLO
# =============================================================================
summary = mc_results.describe().T
summary["P(EV > 0)"] = (
mc_results > 0
).mean()
summary["P(EV <= 0)"] = (
mc_results <= 0
).mean()
# Strategia migliore in ogni simulazione
best_strategy = (
mc_results
.idxmax(axis=1)
)
prob_best = (
best_strategy
.value_counts(normalize=True)
.sort_index()
)
print("\nProbabilità di essere la strategia migliore:")
print(prob_best)
# =============================================================================
# 7. OTTIMIZZAZIONE PORTAFOGLIO
# =============================================================================
def ottimizza_portafoglio(
Cp,
Cs,
p,
V,
budget
):
n = len(Cp)
# Variabili:
# x_i = prototipo
# y_i = scaling
c = np.zeros(
2 * n
)
# Massimizziamo EV -> minimizziamo -EV
c[:n] = Cp
c[n:] = -p * (
V - Cs
)
# Vincolo di budget
A_budget = np.zeros(
(1, 2 * n)
)
A_budget[0, :n] = Cp
A_budget[0, n:] = p * Cs
# y_i <= x_i
A_gate = np.zeros(
(n, 2 * n)
)
for i in range(n):
A_gate[i, i] = -1
A_gate[i, n + i] = 1
A = np.vstack(
[A_budget, A_gate]
)
ub = np.array(
[budget] + [0] * n
)
result = milp(
c=c,
constraints=LinearConstraint(
A,
lb=-np.inf,
ub=ub
),
bounds=Bounds(
0,
1
),
integrality=np.ones(
2 * n
)
)
x = np.rint(
result.x[:n]
).astype(int)
y = np.rint(
result.x[n:]
).astype(int)
costo_atteso = (
np.dot(Cp, x)
+ np.dot(p * Cs, y)
)
EV = (
np.dot(
p * (V - Cs),
y
)
- np.dot(Cp, x)
)
return (
x,
y,
costo_atteso,
EV,
result.success
)
Cp = strategie["prototipo"].values
Cs = strategie["scaling"].values
p = strategie["prob_successo"].values
V = strategie["valore_successo"].values
x_opt, y_opt, costo_atteso, EV_portafoglio, success = (
ottimizza_portafoglio(
Cp,
Cs,
p,
V,
BUDGET
)
)
print("\nPortafoglio ottimale:")
for i, nome in enumerate(
strategie["strategia"]
):
print(
nome,
"| prototipo:",
bool(x_opt[i]),
"| scaling:",
bool(y_opt[i])
)
print(
f"\nCosto atteso: €{costo_atteso:,.0f}"
)
print(
f"EV portafoglio: €{EV_portafoglio:,.0f}"
)
# =============================================================================
# 8. TUTTE LE 16 COMBINAZIONI
# =============================================================================
results = []
for mask in product(
[0, 1],
repeat=4
):
x = np.array(mask)
y = np.zeros(4)
for i in range(4):
if (
x[i] == 1
and p[i] * (
V[i] - Cs[i]
) > 0
):
y[i] = 1
costo = (
np.dot(Cp, x)
+ np.dot(p * Cs, y)
)
if costo <= BUDGET:
EV = (
np.dot(
p * (V - Cs),
y
)
- np.dot(Cp, x)
)
nomi = [
strategie["strategia"].iloc[i]
for i in range(4)
if x[i] == 1
]
results.append(
(
EV,
costo,
tuple(x),
tuple(y),
nomi
)
)
results.sort(
reverse=True
)
# =============================================================================
# 9. GATE
# =============================================================================
gates = pd.DataFrame({
"Metrica": [
"Activation",
"Retention 30 giorni",
"Willingness to pay",
"NPS",
"Cost-to-serve"
],
"Soglia": [
"> 40%",
"> 70%",
"> €1.000/mese",
"> 30",
"Margine target"
],
"Decisione": [
"SCALE",
"SCALE",
"SCALE",
"SUPPORTING SIGNAL",
"SCALE"
]
})
# =============================================================================
# 10. EXPLORE → VALIDATE → SCALE
# =============================================================================
framework = pd.DataFrame({
"Fase": [
"Explore",
"Validate",
"Scale"
],
"Budget": [
"€460.000",
"Budget gate",
"Capitale sbloccato"
],
"Obiettivo": [
"Ottenere evidenza",
"Decidere GO / STOP / ITERATE",
"Investire sui progetti validati"
],
"KPI": [
"I2E, activation, WTP",
"Gate pass/fail",
"Revenue, margine, LTV/CAC"
]
})
print("\nFramework:")
print(
framework.to_string(
index=False
)
)Break-even diversificazione: 6.25%
Probabilità di essere la strategia migliore:
Diversificazione 0.43678
Penetrazione 0.05208
Sviluppo mercato 0.17380
Sviluppo prodotto 0.33734
Name: proportion, dtype: float64
Portafoglio ottimale:
Penetrazione | prototipo: True | scaling: True
Sviluppo prodotto | prototipo: True | scaling: True
Sviluppo mercato | prototipo: True | scaling: True
Diversificazione | prototipo: True | scaling: True
Costo atteso: €823,000
EV portafoglio: €772,000
Framework:
Fase Budget Obiettivo KPI
Explore €460.000 Ottenere evidenza I2E, activation, WTP
Validate Budget gate Decidere GO / STOP / ITERATE Gate pass/fail
Scale Capitale sbloccato Investire sui progetti validati Revenue, margine, LTV/CAC
Il codice è volutamente un modello ex ante: usa probabilità e payoff attesi per confrontare le alternative. La logica stage-gated rappresenta invece la modalità con cui il capitale dovrebbe essere effettivamente rilasciato nel tempo.
Cosa fare lunedì mattina
Se fossi il CEO di DataFlow, non porterei al board la proposta:
“Investiamo tutto nella diversificazione.”
Porterei una proposta diversa.
1. Finanziare la fase Explore
Allocare:
[math]\boxed{460.000€}[/math]
per costruire i quattro prototipi.
2. Definire i gate prima dell’esperimento
Non dopo.
Per ogni progetto bisogna sapere in anticipo:
- quali metriche verranno osservate;
- quali soglie costituiscono un segnale positivo;
- quando il progetto viene fermato;
- quando è necessaria un’iterazione.
3. Separare il capitale Explore dal capitale Scale
I €540.000 rimanenti non dovrebbero essere considerati automaticamente impegnati.
Devono rappresentare una riserva di capitale condizionata all’evidenza.
4. Definire kill criteria
Per esempio:
Se dopo 60 giorni l’iniziativa non raggiunge la soglia X di activation e la WTP rimane inferiore alla soglia Y, il progetto viene fermato o riprogettato.
Questo riduce il rischio di sunk cost fallacy.
5. Misurare Idea-to-Evidence Time
Non soltanto:
- revenue;
- clienti;
- conversion rate.
Ma anche:
[math]\boxed{I2E}[/math]
Quanto tempo serve per trasformare un’ipotesi in evidenza?
La nuova logica manageriale
La differenza tra il vecchio e il nuovo approccio può essere sintetizzata così.
Approccio tradizionale
[math]\displaystyle \text{Analisi} \rightarrow \text{Business Plan} \rightarrow \text{Grande Investimento} \rightarrow \text{Risultato}[/math]
Approccio decision analytics
[math]\displaystyle \text{Ipotesi} \rightarrow \text{Esperimento} \rightarrow \text{Evidenza} \rightarrow \text{Aggiornamento} \rightarrow \text{Decisione}[/math]
Il secondo approccio non elimina l’incertezza.
La rende progressivamente più costosa o meno costosa da affrontare.
Ed è qui che l’AI può avere un ruolo strategico.
La conclusione: non scegliere meglio, imparare prima
Il risultato del modello non dimostra che la diversificazione sia sempre la strategia migliore.
Dimostra qualcosa di più generale.
Quando:
[math]\displaystyle C_{explore} \ll \text{Potential Payoff}[/math]
diventa interessante mantenere aperte più opzioni.
L’AI può ridurre:
[math]\displaystyle C_{explore}[/math]
e:
[math]\displaystyle I2E[/math]
rendendo economicamente più conveniente esplorare un numero maggiore di ipotesi.
La conseguenza è un cambiamento nella logica di allocazione del capitale.
Non:
“Quale progetto scegliamo?”
ma:
“Quali opzioni possiamo permetterci di esplorare e quanto costa ottenere abbastanza evidenza per decidere?”
La diversificazione, in questo contesto, non è necessariamente una scommessa più audace.
Può essere una strategia di portfolio experimentation.
Il capitale viene distribuito inizialmente per acquistare informazione e viene concentrato successivamente sui progetti che dimostrano di meritare lo scaling.
La formula concettuale diventa:
[math]\boxed{ AI \rightarrow C_{explore}\downarrow \rightarrow p^*\downarrow \rightarrow \text{più opzioni esplorabili} }[/math]
Il modello quantitativo non sostituisce il giudizio manageriale.
Lo struttura.
Dice:
- quanto capitale esporre;
- quali ipotesi confrontare;
- quanto pesa l’incertezza;
- quando un’opportunità diventa economicamente interessante;
- quando fermarsi;
- quando aumentare l’investimento.
E soprattutto introduce un principio semplice ma potente:
Takeaway per il manager
€460.000
Capitale necessario per esplorare tutti e quattro i progetti del caso DataFlow.6,25%
Probabilità di break-even nominale della diversificazione nelle ipotesi del modello.€266.000
EV nominale della diversificazione.€231.000
EV attualizzato della diversificazione.43,68%
probabilità che, date le distribuzioni assunte per probabilità di successo e valore economico, la diversificazione abbia l’EV più elevato tra le quattro alternative.€772.000
EV complessivo del portafoglio ottimale nel modello ex ante.La lezione non è:
“Scegli la diversificazione.”
La lezione è:
“Quando il costo dell’esplorazione è basso, finanzia informazione prima di finanziare scala.”
📚 Strategia aziendale, business model e marketing nell’era AI
Se vuoi approfondire come strategie aziendali, business model, unit economics, effetti di rete e agenti AI si integrano nella progettazione e nella crescita di un’impresa digitale, questi articoli offrono strumenti e prospettive complementari:
👉 Matrici strategiche aziendali: quali scegliere e come applicarle – guida pratica
👉 Dal Business Plan al Marketing Plan: il ponte strategico
👉 Customer Economics nel SaaS: perché LTV, retention e NRR contano più del costo di acquisizione CAC
👉 Cos’è il Take Rate Model e come trasforma i ricavi delle piattaforme digitali
👉 Marketing per agenti AI: strategie di ottimizzazione e Decision Pipeline per sistemi autonomi



















