Il Metodo Brutale dello sconto: la simulazione che ti dice se il Natale ti sta uccidendo
This post has already been read 6 times!
C’è un momento, durante la pianificazione delle campagne natalizie, in cui qualcuno propone uno sconto del 20%, qualcun altro suggerisce di arrivare al 30% per contrastare la concorrenza e il responsabile marketing comincia a preparare banner, newsletter, campagne Meta e Google Ads.
Tutti sembrano avere un’opinione sulla percentuale di sconto. Quasi nessuno, però, pone la domanda economicamente più importante: quanti prodotti in più dobbiamo vendere per compensare il margine che stiamo regalando ai clienti?
È qui che comincia il Metodo Brutale dello sconto.
Non è un metodo per decidere se fare o meno una promozione, perché gli sconti possono essere strumenti commerciali perfettamente razionali, ma un modello quantitativo per stabilire quando una campagna promozionale smette di essere un investimento e diventa un modo particolarmente efficiente per ridurre la marginalità.
Il Natale è un ottimo momento per applicarlo, perché concentra in poche settimane una quantità significativa di decisioni commerciali, aspettative di fatturato e pressioni competitive. In questo periodo, la tentazione di aumentare gli sconti per inseguire i concorrenti può diventare particolarmente forte, soprattutto quando le vendite sembrano dipendere dalla capacità di proporre prezzi sempre più aggressivi.
Il problema è che una promozione può funzionare molto bene dal punto di vista commerciale e rivelarsi un insuccesso dal punto di vista economico.
Il mercato cresce, ma questo non significa che crescano i tuoi margini
Partiamo da alcuni dati.
Secondo le stime dell’Osservatorio eCommerce B2c Netcomm – School of Management del Politecnico di Milano, diffuse il 4 novembre 2026, durante la settimana del Black Friday gli italiani spenderanno online circa 4,3 miliardi di euro, con una crescita del 6% rispetto al 2025. La stima comprende 44,3 milioni di pacchi in circolazione nei 13 giorni di offerte.
Un altro dato merita particolare attenzione: la percentuale media di sconto applicata dai merchant nel 2026 è stimata intorno al 25%.
Sono numeri che descrivono un mercato promozionale estremamente competitivo, nel quale una parte consistente della domanda viene concentrata in finestre commerciali caratterizzate da forti riduzioni di prezzo.
Fonte: Osservatorio eCommerce B2c, Politecnico di Milano, novembre 2026.
La crescita del mercato, tuttavia, non coincide necessariamente con la crescita della redditività della singola azienda.
Un negozio online può aumentare gli ordini, raggiungere un nuovo record di fatturato e contemporaneamente ottenere un risultato economico peggiore rispetto a un periodo senza promozioni, soprattutto quando la riduzione del prezzo non viene compensata da un incremento sufficientemente elevato delle quantità vendute.
È una distinzione fondamentale per chi lavora nel marketing: il fatturato misura il valore delle vendite, mentre il margine di contribuzione misura quanto quelle vendite contribuiscono effettivamente a coprire i costi fissi e a generare risultato operativo.
Confondere le due grandezze significa rischiare di festeggiare una campagna che, dal punto di vista economico, è stata un insuccesso.
Il primo numero da conoscere: il margine di contribuzione unitario
Immaginiamo un e-commerce che vende un prodotto al prezzo ordinario di 100 euro.
Per semplicità, consideriamo i seguenti costi variabili medi per unità venduta:
| Voce | Importo |
|---|---|
| Prezzo di vendita | 100 € |
| Costo di acquisto del prodotto | 45 € |
| Preparazione e gestione ordine | 6 € |
| Costo medio atteso dei resi | 4 € |
| Commissioni di pagamento | 2% del prezzo |
I costi variabili, esclusa la commissione percentuale sul prezzo, ammontano quindi a 55 euro.
La commissione di pagamento è pari a 2 euro.
Il margine di contribuzione unitario è:
[math]\displaystyle \begin{aligned} MC=P-CV-fP \end{aligned}[/math]
dove [math]P[/math] rappresenta il prezzo, [math]CV[/math] i costi variabili non proporzionali al prezzo e [math]f[/math] la commissione percentuale.
Nel nostro caso:
[math]\displaystyle \begin{aligned} MC=100-55-2=43\ euro \end{aligned}[/math]
Ogni prodotto venduto a prezzo pieno contribuisce quindi con 43 euro alla copertura dei costi fissi e alla generazione del risultato operativo.
Supponiamo che l’azienda venda normalmente 1.000 unità.
Il margine di contribuzione complessivo è:
[math]\displaystyle \begin{aligned} MC_0=1.000\times43=43.000\ euro \end{aligned}[/math]
Questi 43.000 euro rappresentano il nostro riferimento economico.
Una precisazione è necessaria per utilizzare correttamente il modello: il prezzo di vendita e i costi devono essere espressi su una base fiscale coerente. In particolare, per un’impresa che recupera l’IVA sugli acquisti, il calcolo della marginalità dovrebbe normalmente essere effettuato utilizzando prezzi e costi al netto dell’IVA recuperabile. I 100 euro dell’esempio rappresentano quindi un prezzo netto, non necessariamente il prezzo esposto al consumatore.
Anche il costo medio dei resi deve riflettere il costo economico effettivamente sostenuto, considerando trasporti, gestione, svalutazioni e quota di prodotti che non possono essere rimessi in vendita.
La domanda diventa: se introduciamo uno sconto, quante unità dobbiamo vendere per mantenere almeno lo stesso margine di contribuzione?
La formula che il marketing manager dovrebbe avere sempre davanti
Indichiamo con:
- [math]P[/math] = prezzo originale;
- [math]d[/math] = percentuale di sconto;
- [math]CV[/math] = costi variabili unitari non proporzionali al prezzo;
- [math]f[/math] = commissione percentuale sul prezzo;
- [math]Q_0[/math] = quantità venduta prima della promozione;
- [math]Q_1[/math] = quantità necessaria dopo la promozione.
Il nuovo prezzo sarà:
[math]\displaystyle \begin{aligned} P_1=P(1-d) \end{aligned}[/math]
Il margine unitario iniziale è:
[math]\displaystyle \begin{aligned} MC_{u,0}=P(1-f)-CV \end{aligned}[/math]
Dopo lo sconto, il margine unitario diventa:
[math]\displaystyle \begin{aligned} MC_{u,1}=P(1-d)(1-f)-CV \end{aligned}[/math]
Il margine complessivo prima della promozione è:
[math]\displaystyle \begin{aligned} MC_0=Q_0\cdot MC_{u,0} \end{aligned}[/math]
Per mantenere lo stesso margine complessivo, la quantità necessaria dopo lo sconto deve soddisfare:
[math]\displaystyle \begin{aligned} Q_1\cdot MC_{u,1}=MC_0 \end{aligned}[/math]
Da cui ricaviamo:
[math]\displaystyle \begin{aligned} \boxed{Q_1=\frac{Q_0\cdot MC_{u,0}}{MC_{u,1}}} \end{aligned}[/math]
Questa è la formula del break-even promozionale sui volumi.
Per calcolare l’incremento percentuale necessario rispetto alle vendite iniziali dobbiamo invece utilizzare:
[math]\displaystyle \begin{aligned} \boxed{ Incremento\%= \left(\frac{Q_1}{Q_0}-1\right)\cdot100 } \end{aligned}[/math]
La distinzione è importante: il primo risultato indica quante unità dobbiamo vendere, mentre il secondo misura quanto devono crescere le quantità rispetto alla situazione iniziale.
Questa non è la formula del classico break-even aziendale, cioè il volume necessario per coprire i costi fissi, ma una soglia di pareggio promozionale che ci permette di mantenere lo stesso margine di contribuzione complessivo ottenuto prima dello sconto.
Il modello non ci dice quanto venderemo realmente, perché per quello servirebbe una stima della domanda, ma stabilisce quanto dobbiamo vendere affinché la promozione non peggiori il risultato economico di partenza.
Ed è una differenza enorme.
La simulazione: quanto deve crescere il volume delle vendite?
Torniamo al nostro e-commerce, con prezzo ordinario di 100 euro, costi variabili di 55 euro e commissione di pagamento del 2%.
Il margine unitario iniziale è 43 euro e il volume di riferimento è 1.000 unità.
Calcoliamo ora il risultato per diversi livelli di sconto.
| Sconto | Nuovo prezzo | Margine unitario | Volumi necessari | Incremento richiesto |
|---|---|---|---|---|
| 0% | 100 € | 43,00 € | 1.000 | 0% |
| 10% | 90 € | 33,20 € | 1.295 | +29,5% |
| 20% | 80 € | 23,40 € | 1.838 | +83,8% |
| 25% | 75 € | 18,50 € | 2.324 | +132,4% |
| 30% | 70 € | 13,60 € | 3.162 | +216,2% |
| 40% | 60 € | 3,80 € | 11.316 | +1.031,6% |
I numeri raccontano una storia piuttosto scomoda.
Con uno sconto del 10%, l’azienda deve vendere quasi il 30% in più per mantenere lo stesso margine complessivo.
Con uno sconto del 20%, deve aumentare le quantità vendute di quasi l’84%.
Con uno sconto del 25%, deve più che raddoppiare i volumi.
E con uno sconto del 40%, il margine unitario si riduce a soli 3,80 euro: servono oltre undicimila unità per replicare il risultato economico ottenuto vendendone mille a prezzo pieno.
Il fatturato potrebbe perfino aumentare considerevolmente, ma la sostenibilità economica dell’operazione diventerebbe molto fragile.
Questi sono risultati di un caso simulato, non benchmark universali. I valori dei costi sono ipotesi illustrative, da sostituire con quelli effettivi dell’impresa.
Proprio per questo il modello è utile: permette di inserire dati aziendali reali e ottenere una soglia decisionale specifica.
Il punto di non ritorno: quando lo sconto rende ogni vendita meno conveniente
Esiste un altro calcolo interessante, che permette di determinare lo sconto massimo oltre il quale il margine unitario diventa negativo.
La condizione da rispettare è:
[math]\displaystyle \begin{aligned} P(1-d)(1-f)-CV>0 \end{aligned}[/math]
Risolvendo rispetto a [math]d[/math]:
[math]\displaystyle \begin{aligned} \boxed{d<1-\frac{CV}{P(1-f)}} \end{aligned}[/math]
Inserendo i nostri dati:
[math]\displaystyle \begin{aligned} d<1-\frac{55}{100(1-0,02)} \end{aligned}[/math]
[math]\displaystyle \begin{aligned} d<1-\frac{55}{98} \end{aligned}[/math]
Il risultato è circa:
[math]\displaystyle \begin{aligned} \boxed{d<43,88\%} \end{aligned}[/math]
Significa che, con questa struttura di costo, oltre uno sconto del 43,88% ogni unità venduta genera un margine di contribuzione negativo.
Non importa quanto sia accattivante il banner, quanto sia elevato il traffico o quanti ordini arrivino durante la notte: ogni vendita aggiunge una perdita di contribuzione rispetto ai costi variabili considerati.
Naturalmente, possono esistere ragioni strategiche per vendere temporaneamente sotto il costo economico ordinario, ad esempio liquidare scorte obsolete, recuperare liquidità o evitare ulteriori costi di magazzino.
In questi casi, tuttavia, l’operazione deve essere valutata considerando il valore recuperato rispetto all’alternativa di non vendere, includendo eventuali costi evitati e il valore residuo delle scorte.
Non è più una normale promozione commerciale: è una decisione di gestione delle scorte.
La parte che manca: i clienti compreranno davvero abbastanza?
Finora abbiamo calcolato quanti prodotti dobbiamo vendere, ma non abbiamo ancora risposto alla domanda più interessante: quanti prodotti venderemo effettivamente?
Qui entra in gioco l’elasticità della domanda rispetto al prezzo.
In economia, l’elasticità-prezzo della domanda misura la variazione percentuale della quantità domandata in risposta a una variazione percentuale del prezzo.
La sua espressione è:
[math]\displaystyle \begin{aligned} \varepsilon= \frac{\%\ variazione\ quantità} {\%\ variazione\ prezzo} \end{aligned}[/math]
Per la domanda ordinaria, l’elasticità è generalmente negativa: quando il prezzo diminuisce, la quantità richiesta tende ad aumentare.
Per costruire una simulazione semplificata possiamo utilizzare una funzione di domanda a elasticità costante:
[math]\displaystyle \begin{aligned} \boxed{ Q_1=Q_0\left(\frac{P_1}{P_0}\right)^\varepsilon } \end{aligned}[/math]
Dove [math]\varepsilon[/math] rappresenta l’elasticità-prezzo, con valore negativo.
Immaginiamo di utilizzare un’elasticità pari a -2.
Con uno sconto del 20%, il nuovo prezzo è 80 euro e la domanda prevista diventa:
[math]\displaystyle \begin{aligned} Q_1=1.000\times0,8^{-2} \end{aligned}[/math]
[math]\displaystyle \begin{aligned} Q_1=1.562,5\ unità \end{aligned}[/math]
La campagna genererebbe quindi un incremento teorico delle quantità pari al 56,25%.
Ma ricordiamo che il break-even richiedeva un aumento dell’83,8%.
La promozione non sarebbe sufficiente.
Il margine complessivo previsto sarebbe:
[math]\displaystyle \begin{aligned} MC_1=1.562,5\times23,40 \end{aligned}[/math]
[math]\displaystyle \begin{aligned} MC_1=36.562,50\ euro \end{aligned}[/math]
Rispetto ai 43.000 euro iniziali, perderemmo 6.437,50 euro di margine di contribuzione.
Ecco il punto: la campagna potrebbe registrare un incremento importante degli ordini e risultare comunque economicamente peggiore della situazione iniziale.
L’elasticità utilizzata in questo esempio è un’ipotesi di simulazione, non una stima osservata sul mercato. In un progetto reale dovrebbe essere stimata utilizzando dati storici, possibilmente distinguendo per prodotto, segmento di clientela, canale e periodo promozionale.
Inoltre, una relazione statistica tra prezzo e quantità vendute non dimostra automaticamente un rapporto causale: durante le promozioni cambiano spesso anche visibilità pubblicitaria, disponibilità dei prodotti, stagionalità e composizione della clientela.
Per questo motivo, quando i dati lo consentono, è preferibile utilizzare test controllati o modelli che permettano di isolare l’effetto del prezzo dagli altri fattori.
L’elasticità cambia tutto: tre scenari a confronto
Un unico valore di elasticità può rendere la simulazione troppo rigida, soprattutto quando il comportamento dei clienti varia sensibilmente tra prodotti e categorie.
Consideriamo quindi tre scenari ipotetici:
| Scenario | Elasticità | Interpretazione |
|---|---|---|
| Domanda poco sensibile | -0,8 | La riduzione del prezzo genera una risposta limitata |
| Domanda moderatamente sensibile | -1,5 | Le quantità crescono in misura più significativa |
| Domanda molto sensibile | -2,5 | La riduzione del prezzo produce un aumento più marcato della domanda |
Con uno sconto del 20%, i risultati sarebbero:
| Elasticità | Volumi previsti | Incremento quantità | Margine previsto |
|---|---|---|---|
| -0,8 | 1.195 | +19,5% | 27.963 € |
| -1,5 | 1.398 | +39,8% | 32.713 € |
| -2,0 | 1.563 | +56,3% | 36.563 € |
| -2,5 | 1.747 | +74,7% | 40.880 € |
Anche nello scenario più favorevole, con elasticità pari a -2,5, il margine rimane inferiore ai 43.000 euro iniziali.
Per raggiungere il pareggio con uno sconto del 20%, l’elasticità dovrebbe essere sufficientemente elevata da generare almeno 1.838 unità vendute.
Risolvendo la funzione di domanda:
[math]\displaystyle \begin{aligned} 1.838=1.000\times0,8^\varepsilon \end{aligned}[/math]
otteniamo un’elasticità di circa:
[math]\displaystyle \begin{aligned} \varepsilon=-2,75 \end{aligned}[/math]
Questa è un’informazione molto più utile della semplice previsione di un aumento degli ordini: ci dice quale risposta della domanda sarebbe necessaria per rendere economicamente sostenibile la promozione.
Il magazzino potrebbe impedirti di raggiungere il pareggio
C’è un altro elemento che il modello economico di base non considera: la capacità effettiva dell’impresa di soddisfare la domanda.
Se con uno sconto del 25% servono 2.324 unità per mantenere il margine iniziale, ma il magazzino contiene soltanto 1.800 prodotti disponibili, il pareggio teorico diventa irraggiungibile.
In questo caso, anche una domanda sufficientemente elastica non sarebbe sufficiente a rendere conveniente la promozione.
Il vincolo può riguardare le scorte, ma anche la capacità di preparare gli ordini, la disponibilità dei corrieri, i tempi di consegna o il budget pubblicitario necessario per generare il traffico aggiuntivo.
Una simulazione manageriale completa dovrebbe quindi considerare almeno tre condizioni:
- il margine unitario dopo lo sconto deve rimanere positivo, salvo specifiche strategie di liquidazione;
- i volumi previsti devono essere sufficienti a raggiungere il break-even promozionale;
- la capacità produttiva, logistica e commerciale deve consentire di soddisfare quei volumi.
Un modello può dirci che una campagna è conveniente dal punto di vista teorico, ma non può trasformare un magazzino vuoto in duemila ordini disponibili.
Simulazione Python: calcolare il break-even e verificare la convenienza
Passiamo dal foglio di calcolo al codice.
Il seguente script permette di modificare prezzo, costi variabili, commissioni, volumi iniziali, sconti ed elasticità, ottenendo automaticamente il volume necessario per il pareggio economico e quello previsto dalla funzione di domanda.
Il codice distingue inoltre il margine unitario, il margine complessivo e la differenza rispetto alla situazione iniziale.
# ============================================================
# IL METODO BRUTALE DELLO SCONTO
# Simulazione del margine, del break-even e dei volumi
# ============================================================
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# ------------------------------------------------------------
# 1. PARAMETRI DELLA SIMULAZIONE
# ------------------------------------------------------------
prezzo_iniziale = 100.00
costo_variabile = 55.00
commissioni_percentuali = 0.02
volumi_iniziali = 1000
elasticita = -2.0
capacita_massima = 2500
# Livelli di sconto da simulare
sconti = np.arange(0, 0.45, 0.05)
# Eventuale investimento pubblicitario incrementale.
# Impostare un valore maggiore di zero per includere
# il costo aggiuntivo della campagna promozionale.
investimento_extra = 0.00
# ------------------------------------------------------------
# 2. MARGINE DI CONTRIBUZIONE INIZIALE
# ------------------------------------------------------------
# Margine unitario prima dello sconto:
# prezzo al netto delle commissioni - costo variabile
margine_unitario_iniziale = (
prezzo_iniziale * (1 - commissioni_percentuali)
- costo_variabile
)
# Margine complessivo della situazione di partenza
margine_baseline = (
volumi_iniziali * margine_unitario_iniziale
)
print("SITUAZIONE INIZIALE")
print("-" * 55)
print(f"Prezzo iniziale: {prezzo_iniziale:.2f} €")
print(f"Costo variabile unitario: {costo_variabile:.2f} €")
print(f"Commissioni: {commissioni_percentuali:.1%}")
print(
f"Margine unitario iniziale: "
f"{margine_unitario_iniziale:.2f} €"
)
print(f"Volumi iniziali: {volumi_iniziali}")
print(f"Margine complessivo iniziale: {margine_baseline:,.2f} €")
# ------------------------------------------------------------
# 3. SIMULAZIONE DEI DIVERSI LIVELLI DI SCONTO
# ------------------------------------------------------------
risultati = []
for sconto in sconti:
# Prezzo dopo lo sconto
nuovo_prezzo = prezzo_iniziale * (1 - sconto)
# Margine unitario dopo lo sconto
nuovo_margine_unitario = (
nuovo_prezzo * (1 - commissioni_percentuali)
- costo_variabile
)
# Domanda prevista secondo l'elasticità costante:
# Q1 = Q0 * (P1/P0)^elasticità
#
# La formula utilizza il rapporto tra nuovo prezzo
# e prezzo iniziale.
volumi_previsti = (
volumi_iniziali
* (nuovo_prezzo / prezzo_iniziale) ** elasticita
)
# Volumi effettivamente realizzabili.
# La capacità massima rappresenta il numero totale
# di unità vendibili nel periodo considerato.
volumi_realizzabili = min(
volumi_previsti,
capacita_massima
)
# Volumi necessari per raggiungere il margine iniziale.
# Si considera anche l'eventuale investimento extra.
if nuovo_margine_unitario > 0:
volumi_break_even = (
margine_baseline + investimento_extra
) / nuovo_margine_unitario
# Incremento percentuale necessario rispetto
# ai volumi iniziali
incremento_necessario = (
(volumi_break_even / volumi_iniziali) - 1
) * 100
# Margine ottenibile con i volumi realizzabili,
# al netto dell'eventuale investimento extra
margine_previsto = (
volumi_realizzabili * nuovo_margine_unitario
- investimento_extra
)
# Incremento effettivo dei volumi previsto
incremento_effettivo = (
(volumi_realizzabili / volumi_iniziali) - 1
) * 100
else:
# Se il margine unitario è nullo o negativo,
# il break-even non è raggiungibile aumentando i volumi.
volumi_break_even = np.nan
incremento_necessario = np.nan
margine_previsto = (
volumi_realizzabili * nuovo_margine_unitario
- investimento_extra
)
incremento_effettivo = (
(volumi_realizzabili / volumi_iniziali) - 1
) * 100
# Differenza rispetto alla situazione iniziale
differenza_baseline = margine_previsto - margine_baseline
# Valutazione economica della promozione
if margine_previsto >= margine_baseline:
esito = "Conveniente"
else:
esito = "Non conveniente"
# Salvataggio dei risultati
risultati.append({
"Sconto (%)": sconto * 100,
"Prezzo": nuovo_prezzo,
"Margine unitario": nuovo_margine_unitario,
"Volumi break-even": volumi_break_even,
"Incremento necessario (%)": incremento_necessario,
"Volumi previsti": volumi_previsti,
"Volumi realizzabili": volumi_realizzabili,
"Incremento effettivo (%)": incremento_effettivo,
"Margine previsto": margine_previsto,
"Differenza vs baseline": differenza_baseline,
"Esito": esito
})
# ------------------------------------------------------------
# 4. CREAZIONE DEL DATAFRAME
# ------------------------------------------------------------
df = pd.DataFrame(risultati)
# ------------------------------------------------------------
# 5. STAMPA DEI RISULTATI
# ------------------------------------------------------------
print("\n\nRISULTATI DELLA SIMULAZIONE")
print("-" * 110)
# Formattazione per una lettura più agevole
pd.options.display.float_format = "{:,.2f}".format
print(df.to_string(index=False))
# ------------------------------------------------------------
# 6. GRAFICO: MARGINE PREVISTO E MARGINE BASELINE
# ------------------------------------------------------------
plt.figure(figsize=(10, 6))
plt.plot(
df["Sconto (%)"],
df["Margine previsto"],
marker="o",
linewidth=2,
label="Margine previsto"
)
plt.axhline(
y=margine_baseline,
linestyle="--",
linewidth=2,
label="Margine iniziale"
)
plt.xlabel("Sconto (%)")
plt.ylabel("Margine complessivo (€)")
plt.title("Effetto dello sconto sul margine complessivo")
plt.grid(True, alpha=0.3)
plt.legend()
plt.tight_layout()
plt.show()
# ------------------------------------------------------------
# 7. GRAFICO: VOLUMI PREVISTI E CAPACITÀ MASSIMA
# ------------------------------------------------------------
plt.figure(figsize=(10, 6))
plt.plot(
df["Sconto (%)"],
df["Volumi previsti"],
marker="o",
linewidth=2,
label="Volumi previsti"
)
plt.plot(
df["Sconto (%)"],
df["Volumi realizzabili"],
marker="s",
linewidth=2,
label="Volumi realizzabili"
)
plt.axhline(
y=capacita_massima,
linestyle="--",
linewidth=2,
label="Capacità massima"
)
plt.axhline(
y=volumi_iniziali,
linestyle=":",
linewidth=1.5,
label="Volumi iniziali"
)
plt.xlabel("Sconto (%)")
plt.ylabel("Unità vendute")
plt.title("Domanda prevista e capacità operativa")
plt.grid(True, alpha=0.3)
plt.legend()
plt.tight_layout()
plt.show()
# ------------------------------------------------------------
# 8. GRAFICO: INCREMENTO NECESSARIO E INCREMENTO EFFETTIVO
# ------------------------------------------------------------
plt.figure(figsize=(10, 6))
plt.plot(
df["Sconto (%)"],
df["Incremento necessario (%)"],
marker="o",
linewidth=2,
label="Incremento necessario per il break-even"
)
plt.plot(
df["Sconto (%)"],
df["Incremento effettivo (%)"],
marker="s",
linewidth=2,
label="Incremento effettivo previsto"
)
plt.xlabel("Sconto (%)")
plt.ylabel("Incremento dei volumi (%)")
plt.title("Volumi necessari e volumi previsti")
plt.grid(True, alpha=0.3)
plt.legend()
plt.tight_layout()
plt.show()
# ------------------------------------------------------------
# 9. GRAFICO: DIFFERENZA RISPETTO AL BASELINE
# ------------------------------------------------------------
plt.figure(figsize=(10, 6))
plt.bar(
df["Sconto (%)"].astype(str),
df["Differenza vs baseline"]
)
plt.axhline(
y=0,
linestyle="--",
linewidth=1.5
)
plt.xlabel("Sconto (%)")
plt.ylabel("Differenza di margine (€)")
plt.title("Quanto margine si guadagna o si perde con lo sconto")
plt.grid(axis="y", alpha=0.3)
plt.tight_layout()
plt.show()
# ------------------------------------------------------------
# 10. SINTESI AUTOMATICA DELLA SIMULAZIONE
# ------------------------------------------------------------
migliore = df.loc[
df["Margine previsto"].idxmax()
]
peggiore = df.loc[
df["Margine previsto"].idxmin()
]
print("\n\nSINTESI MANAGERIALE")
print("-" * 65)
print(
f"Miglior risultato: sconto del "
f"{migliore['Sconto (%)']:.0f}%"
)
print(
f"Margine previsto: "
f"{migliore['Margine previsto']:,.2f} €"
)
print(
f"Differenza rispetto al baseline: "
f"{migliore['Differenza vs baseline']:,.2f} €"
)
print()
print(
f"Peggior risultato: sconto del "
f"{peggiore['Sconto (%)']:.0f}%"
)
print(
f"Margine previsto: "
f"{peggiore['Margine previsto']:,.2f} €"
)
print(
f"Differenza rispetto al baseline: "
f"{peggiore['Differenza vs baseline']:,.2f} €"
)
# Verifica del primo livello di sconto
# che determina una perdita di margine rispetto al baseline.
perdite = df[
df["Differenza vs baseline"] < 0
]
if not perdite.empty:
primo_sconto_in_perdita = perdite.iloc[0]["Sconto (%)"]
print(
f"\nIl primo sconto che genera una perdita "
f"rispetto al baseline è del "
f"{primo_sconto_in_perdita:.0f}%."
)
else:
print(
"\nNessuno degli sconti simulati genera "
"una perdita rispetto al baseline."
)
Commento dei risultati della simulazione
Il risultato di partenza è:
| Indicatore | Valore |
|---|---|
| Prezzo iniziale | 100,00 € |
| Margine unitario iniziale | 43,00 € |
| Volumi iniziali | 1.000 |
| Margine complessivo | 43.000,00 € |
Il margine unitario di 43 € deriva da:
[math]\displaystyle \begin{aligned} 100-(100\times 0{,}02)-55=43 \end{aligned}[/math]
Il negozio genera quindi 43.000 € di margine di contribuzione prima di applicare qualsiasi promozione.
Cosa raccontano i risultati
Con uno sconto del 5%, il prezzo scende a 95 € e il margine unitario passa da 43 € a 38,10 €. L’elasticità ipotizzata determina un incremento dei volumi da 1.000 a circa 1.108 unità, ma per mantenere il margine iniziale ne servirebbero almeno 1.129. La promozione genera una perdita di circa 784 €.
Con uno sconto del 10%, il margine unitario scende a 33,20 €. I volumi previsti raggiungono 1.235 unità, mentre il break-even richiederebbe circa 1.295 vendite. La perdita sale a circa 2.012 €.
Con uno sconto del 20%, il prezzo scende a 80 € e il margine unitario si riduce a 23,40 €. La domanda cresce del 56,25%, ma non abbastanza da compensare la riduzione del margine unitario. Il risultato è un margine complessivo di 36.562,50 €, con una perdita di 6.437,50 € rispetto alla situazione iniziale.
Con uno sconto del 30%, i volumi previsti superano le 2.000 unità, ma il margine unitario è ormai sceso a 13,60 €. Il margine complessivo si ferma a 27.755,10 €, con una perdita di oltre 15.000 €.
Con uno sconto del 40%, la situazione diventa particolarmente critica. La domanda teorica raggiungerebbe 2.777,78 unità, ma la capacità massima consente di venderne soltanto 2.500. Il margine complessivo precipita a 9.500 €, con una perdita di 33.500 € rispetto al baseline.
La tabella che conta davvero
| Sconto | Volumi necessari | Volumi previsti | Differenza di margine |
|---|---|---|---|
| 0% | 1.000 | 1.000 | 0 € |
| 5% | 1.129 | 1.108 | −784 € |
| 10% | 1.295 | 1.235 | −2.012 € |
| 15% | 1.519 | 1.384 | −3.830 € |
| 20% | 1.838 | 1.563 | −6.438 € |
| 25% | 2.324 | 1.778 | −10.111 € |
| 30% | 3.162 | 2.041 | −15.245 € |
| 35% | 4.943 | 2.367 | −22.408 € |
| 40% | 11.316 | 2.500 | −33.500 € |
Il dato più interessante non è semplicemente che gli sconti riducono il margine, ma che la distanza tra volumi necessari e volumi previsti cresce rapidamente. A partire dal 30%, il break-even richiede quantità che superano anche la capacità massima del negozio.
Tre conclusioni manageriali
- L’aumento delle vendite non equivale a un miglioramento della redditività. Anche quando i volumi crescono sensibilmente, il margine complessivo può diminuire.
- La capacità operativa è un vincolo economico. Non serve prevedere una domanda teorica di 2.778 unità se il magazzino o la struttura commerciale possono gestirne soltanto 2.500.
- Lo sconto deve essere valutato prima della campagna. Il break-even consente di sapere quante unità aggiuntive servono, mentre l’elasticità permette di stimare se quell’incremento sia plausibile.
Il Natale nasconde un altro rischio: vendere oggi quello che avresti venduto domani
C’è un aspetto che rende le campagne natalizie particolarmente insidiose e che il semplice break-even non riesce a intercettare.
Una parte degli acquisti promozionali potrebbe non essere domanda aggiuntiva, ma domanda anticipata.
Un cliente che acquista un prodotto durante il Black Friday potrebbe semplicemente aver anticipato un acquisto che avrebbe effettuato a dicembre, magari a prezzo pieno.
Dal punto di vista del singolo evento promozionale, l’ordine viene registrato come una vendita aggiuntiva. Dal punto di vista dell’intero periodo natalizio, potrebbe non esserci stata alcuna crescita della domanda complessiva.
È il fenomeno della cannibalizzazione temporale.
Per questo motivo un marketing manager non dovrebbe limitarsi a confrontare le vendite della settimana promozionale con quelle della settimana precedente, perché una simile analisi rischia di attribuire alla campagna risultati che dipendono dalla semplice anticipazione degli acquisti.
Dovrebbe osservare almeno l’intera finestra commerciale, confrontando:
- quantità vendute nel periodo promozionale;
- quantità vendute nelle settimane successive;
- margine di contribuzione complessivo;
- percentuale di clienti realmente nuovi;
- quota di ordini anticipati rispetto agli acquisti ordinari;
- costo di acquisizione dei clienti;
- variazione delle vendite a prezzo pieno dopo la promozione.
Una campagna che produce un picco spettacolare a novembre, ma riduce le vendite a prezzo pieno di dicembre, potrebbe aver semplicemente spostato il fatturato da un periodo all’altro, peggiorando la redditività complessiva.
Per verificare questo effetto è utile confrontare il periodo promozionale e quello successivo con un gruppo di controllo, quando possibile, oppure utilizzare un modello che tenga conto della stagionalità e dell’andamento atteso delle vendite in assenza della promozione.
Il dato da osservare non è soltanto quanto abbiamo venduto durante il Black Friday, ma quanto margine aggiuntivo abbiamo generato sull’intera stagione commerciale.
Il costo della pubblicità deve entrare nel conto
C’è un’altra variabile che può modificare sensibilmente il risultato: il costo necessario per generare i volumi aggiuntivi.
Immaginiamo che, per ottenere gli ordini necessari a compensare uno sconto del 20%, l’azienda debba investire ulteriori 8.000 euro in advertising.
Non sarebbe corretto confrontare il margine promozionale con quello iniziale ignorando questo investimento, perché le vendite aggiuntive non sono state ottenute gratuitamente.
Indichiamo con [math]F[/math] il costo pubblicitario incrementale.
Il margine di contribuzione complessivo iniziale rimane:
[math]\displaystyle \begin{aligned} MC_0=Q_0\cdot MC_{u,0} \end{aligned}[/math]
Per mantenere lo stesso risultato economico, dopo la promozione dobbiamo ottenere:
[math]\displaystyle \begin{aligned} Q_1\cdot MC_{u,1}-F=MC_0 \end{aligned}[/math]
Da cui:
[math]\displaystyle \begin{aligned} \boxed{ Q_1=\frac{MC_0+F}{MC_{u,1}} } \end{aligned}[/math]
Nel nostro esempio, con uno sconto del 20%, un margine unitario di 23,40 euro e un investimento aggiuntivo di 8.000 euro, il volume necessario diventa:
[math]\displaystyle \begin{aligned} Q_1=\frac{43.000+8.000}{23,40} \end{aligned}[/math]
[math]\displaystyle \begin{aligned} Q_1=2.179,49\ unità \end{aligned}[/math]
Rispetto alle 1.838 unità necessarie senza advertising aggiuntivo, dobbiamo quindi vendere circa 342 prodotti in più.
La pubblicità può certamente generare valore, ma il suo costo deve essere inserito nel modello economico insieme alla riduzione del prezzo, altrimenti il risultato della simulazione sarà sistematicamente troppo ottimistico.
Il modello decisionale: cinque domande prima di autorizzare uno sconto
Il Metodo Brutale può diventare una piccola procedura operativa da utilizzare durante la pianificazione delle campagne.
Prima di approvare una promozione, il marketing manager dovrebbe verificare cinque condizioni.
Il margine unitario rimane positivo?
Se il nuovo prezzo non copre i costi variabili, la promozione richiede una giustificazione strategica specifica, perché ogni vendita aggiuntiva riduce il margine complessivo rispetto ai costi considerati.
Quanto devono aumentare i volumi?
Il break-even promozionale deve essere calcolato prima di decidere la percentuale di sconto, non dopo aver osservato i risultati della campagna.
L’aumento previsto è realistico?
L’elasticità della domanda deve essere stimata, possibilmente utilizzando dati storici e test controllati, anziché essere scelta per rendere conveniente la promozione.
Quanto costa generare il volume aggiuntivo?
Se per ottenere centinaia di ordini aggiuntivi dobbiamo aumentare gli investimenti pubblicitari, sostenere costi logistici supplementari o ricorrere a personale aggiuntivo, queste spese devono entrare nel calcolo.
La domanda è realmente nuova e possiamo soddisfarla?
Dobbiamo verificare se stiamo acquisendo nuovi clienti oppure anticipando acquisti futuri, controllando contemporaneamente che le scorte e la capacità operativa siano sufficienti per gestire il volume previsto.
Queste cinque domande spostano la discussione dal semplice valore dello sconto alla sostenibilità economica dell’intera operazione.
Non dobbiamo chiederci quanto sconto possiamo permetterci
Il marketing promozionale viene spesso giudicato attraverso indicatori come numero di ordini, fatturato, conversion rate e ROAS.
Sono metriche importanti, ma nessuna di queste, isolatamente, dimostra che una campagna abbia creato valore economico.
Un ROAS elevato, per esempio, non garantisce la redditività se il margine unitario è stato drasticamente ridotto. Allo stesso modo, un aumento del conversion rate può accompagnarsi a una diminuzione del contributo economico per ordine.
La metrica che dovrebbe accompagnare queste valutazioni è il margine di contribuzione incrementale, calcolato considerando tutti i costi variabili e gli investimenti aggiuntivi necessari per ottenere le vendite.
Il punto non è eliminare gli sconti, né sostenere che il prezzo pieno sia sempre la scelta migliore. Esistono prodotti con elevata elasticità, scorte da smaltire, clienti da acquisire e strategie di penetrazione che possono rendere una riduzione di prezzo economicamente sensata.
Il punto è sapere quale risultato stiamo cercando, quali condizioni devono verificarsi affinché la promozione funzioni e quanto dobbiamo investire per ottenere quel risultato.
Una campagna natalizia può essere un successo commerciale anche quando il margine unitario diminuisce, ma soltanto se l’incremento della domanda, la qualità dei nuovi clienti e il contributo economico complessivo compensano il sacrificio sul prezzo.
Perché se vendi il doppio, ma guadagni meno, non hai necessariamente fatto una grande campagna di Natale.
Potresti semplicemente aver regalato ai tuoi clienti una parte del margine che avresti potuto conservare.
E questo, per un marketing manager data-driven, è un regalo decisamente poco intelligente.
Fonti e riferimenti
Per la parte di contesto di mercato utilizzerei queste fonti, da mantenere nel post anche nelle successive edizioni natalizie:
Osservatorio eCommerce B2c – Politecnico di Milano, Black Friday 2026 – stime di spesa, pacchi e sconto medio.
PwC Italia – Black Friday Survey 2025 – comportamento dei consumatori italiani, pianificazione degli acquisti e sensibilità alle promozioni.
Oracle Retail Markdown Optimization – terminologia e metriche per la gestione dei markdown e della marginalità.
📚 Pricing, margini e redditività delle strategie di marketing
Uno sconto non può essere valutato isolatamente: occorre considerare la risposta della domanda, il margine generato, i costi di acquisizione e l’effettiva incrementalità delle vendite. Questi articoli approfondiscono gli strumenti quantitativi e le decisioni manageriali che aiutano a valutare la sostenibilità economica delle strategie commerciali.
- 👉Retail Media: Carrefour, Coop ed Esselunga diventano piattaforme pubblicitarie?
ROAS, vendite incrementali e margini: perché le vendite attribuite a una campagna non coincidono necessariamente con quelle generate dalla pubblicità.
- 👉Marketing Mix Modeling per PMI: come misurare il rendimento reale del budget pubblicitario
Come distinguere l’effetto delle campagne pubblicitarie da promozioni, variazioni di prezzo, stagionalità e altri fattori che influenzano le vendite.
- 👉Marketing Quantitativo per PMI: come misurare i risultati e aumentare i margini senza team di Data ScienceFatturato, margine di contribuzione e valore del cliente: tre grandezze da non confondere quando si valutano le performance commerciali.
- 👉Costo del capitale di marketing: quando il CAC è davvero sostenibile?Come valutare il costo di acquisizione mettendolo in relazione con il margine effettivo generato dal cliente e con i tempi di recupero dell’investimento.
- 👉Pricing Power nel SaaS: come simulare l’impatto degli aumenti di prezzo su churn, MRR e profittoIl rapporto tra variazioni di prezzo, sensibilità dei clienti, ricavi ricorrenti e redditività: un approccio quantitativo alle decisioni di pricing.
- 👉Meta One: come calcolare ROI, break-even e incrementalità di un abbonamentoUn esempio applicativo per calcolare il margine incrementale, il ritorno sull’investimento e il volume minimo necessario per raggiungere il break-even.
- 👉Microeconomia del marketing: il filo sottile tra sconti, bundling e aspettative del consumatore
Elasticità della domanda, prezzo di riserva e utilità marginale per comprendere come le decisioni di prezzo influenzano il comportamento d’acquisto.












