QR Code

modello-taxi

Quanto guadagna un tassista?

di Umberto Bertonelli

Torna alla Home

Indice

In Italia, i tassisti guadagnano davvero poco. Secondo un'indagine di OCPI, basata sui dati del Ministero dell'Economia e delle Finanze (MEF), il reddito medio di un tassista tra il 2019 e il 2022 si aggirava attorno ai 15.000 euro annui.

Un dato senza dubbio allarmante, che evidenzia la difficile situazione economica in cui si trovano molti tassisti italiani. Di seguito riportiamo i redditi medi dichiarati dai tassisti nelle principali città italiane negli ultimi anni (fonte MEF):

Apri grafico in una nuova finestra

Ragioniamo insieme: i tassisti ci stanno davvero raccontando tutta la verità?

Le opzioni sono due: o il tassista medio è davvero fesso, oppure quei 15 mila euro di reddito annuo sono solo fumo negli occhi.

Facciamo due conti. Se hai speso 200 mila euro per una licenza e guadagni in media 15 mila euro all’anno, impiegherai 13 anni solo per rientrare dall’investimento. In questo scenario, i tassisti sembrerebbero paragonabili a dei missionari, coinvolti in qualche opera caritatevole.

Ora, questa ipotesi è chiaramente assurda. La spiegazione più logica è che quei 15 mila euro siano solo una cifra di comodo.

E poiché è sotto gli occhi di tutti che i numeri dichiarati sono errati, ho deciso di costruire un modello per verificare i dati. In statistica diremmo: testiamo l’ipotesi nulla.

Vediamo se i tassisti sono davvero fessi, o se c’è dell’altro dietro i numeri ufficiali!

Il tassista sfortunato

I modelli di simulazione sono strumenti utilissimi per analizzare e prevedere le performance. In questo articolo esploreremo un modello di simulazione sviluppato per analizzare i costi e i ricavi di un servizio taxi. Il modello considera vari elementi: dalle tariffe di base al consumo di carburante, dalle condizioni del traffico ai supplementi per bagagli e radiotaxi. Vediamo insieme come è costruito e come può essere usato per comprendere meglio l'andamento di un servizio taxi durante un anno intero.

Ma attenzione: non vogliamo individuare il fatturato di un tassista medio, bensì di uno particolarmente sfortunato!

Tutti i modelli sbagliano, qualcuno è utile

Struttura del Modello

Il modello è costruito in Python (lascio il codice in fondo all'articolo). Si suddivide in diverse sezioni principali, ciascuna con il proprio ruolo nel calcolo del fatturato e dei costi annuali del servizio taxi.

Come base di partenza si è deciso di usare il tariffario del comune di roma (.pdf), pertanto adatteremo il modello ai dati che possiamo evincere dalla capitale.

1. Parametri di Base e Tariffe

Definiamo i primi limiti del modello:

Nemmeno gli scaglioni IRPEF sono così complessi.

2. Supplementi e Sconti

Il modello include anche dei costi aggiuntivi per i servizi extra:

3. Calcolo del Costo della Benzina

Il modello calcola il consumo di carburante in base alla distanza percorsa, considerando realisticamente i costi sostenuti per ogni chilometro. Inizialmente, avremmo potuto ipotizzare un consumo più efficiente, come 20 km/litro, con un prezzo medio di 1,80 € al litro, assumendo che il tassista avesse investito in un veicolo ibrido o elettrico, ideale per circolare liberamente nelle Zone a Traffico Limitato (ZTL) delle città.

Tuttavia, per mantenere un approccio conservativo, abbiamo scelto di rappresentare un tassista meno fortunato, con un consumo effettivo di soli 7 km/litro. Questo consumo relativamente basso, associato a un costo del carburante di 2 € al litro, riflette condizioni di guida meno efficienti, come traffico intenso, frequenti accelerazioni e un uso limitato della modalità elettrica. Pur possedendo un’auto ibrida o elettrica, ipotizziamo che il nostro tassista debba affidarsi quasi esclusivamente alla benzina per coprire la maggior parte delle sue corse.

Per rendere ancora il tutto più conservativo, ipotizziamo che il consumo rimanga sempre costante a 7 km/litro, anche nel caso in cui l'autovettura possa effettivamente consumare meno.

Questa impostazione cautelativa offre una stima dei costi operativi in scenari meno ottimizzati, rendendo il modello robusto anche in condizioni economiche avverse.

Generazione delle Corse

Il cuore del modello è la funzione di generazione casuale delle corse, che simula il comportamento di un servizio taxi in vari scenari:

Apri grafico in una nuova finestra
Apri grafico in una nuova finestra

Calcolo dei Costi per Ogni Corsa

Ogni corsa viene calcolata in base ai parametri appena elencati, riassumendo:

Simulazione Giornata e Anno

Il modello simula una giornata lavorativa di 5 ore, calcolando il fatturato giornaliero e il costo del carburante. Ogni corsa è calcolata individualmente e il processo continua finché il tempo di lavoro non supera il limite giornaliero. Questo processo viene ripetuto su base settimanale e, infine, annuale:

Apri grafico in una nuova finestra
Apri grafico in una nuova finestra
Apri grafico in una nuova finestra
Apri grafico in una nuova finestra

Le altre spese

Partendo dal fatturato annuo di circa 60.000 €, dobbiamo sottrarre alcune spese operative per ottenere una stima più realistica del reddito netto di un tassista.

Dopo aver sottratto queste spese, il reddito operativo scende a circa 45.300 €

A questo importo, bisogna ancora sottrarre altre spese rilevanti, come:

Per spiegare un reddito lordo di 12.000 € a Roma dovremmo assumere che:

Fatturato per corsa e fatturato al Km

Un altro punto di riflessione viene dall'analisi del fatturato per corsa e fatturato al km. Stando a quanto emerge dal modello:

Possiamo ripere l'analisi anche sul km fatturato

Apri grafico in una nuova finestra

Assumendo che i costi siano come quelli descritti, ovvero 2€ al litro per consumi pari a 7 km/l e sul fatturato pesi anche l'ammortamento del mezzo, possiamo anche individuare la distribuzione del margine operativo:

Assumendo che i nostri conti siano errati, il nostro tassita in realtà abbia percorso 27000 km nell'anno e abbia proodotto 12.000 € di utile, significherebbe che l'utile sia di circa 0.44 €/km.

A questo punto è possibile anche stimare quanti chilometri siano necessari per rientrare del costo della licenza: 454.544 km, corrispondenti a 16 anni di attività.

Alla luce di questi dati è evidente che qualcosa non torni e che nella sciagurata ipotesi che la simulazione sia corretta vi sia ampio spazio per la concorrenza in questo settore, soprattutto alla luce delle forti ipotesi conservative qui delineate.

Conclusioni

Dall’analisi risulta evidente come il reddito medio dichiarato dai tassisti, circa 15.000 € secondo il Ministero dell’Economia e delle Finanze, possa non rappresentare la realtà economica della professione. Utilizzando un modello basato su dati realistici e ipotesi conservative, abbiamo stimato un fatturato annuo intorno ai 60.000 €. Anche sottraendo le principali spese operative (carburante, ammortamento del veicolo, assicurazione, e costi vari), il reddito netto resta significativamente superiore ai valori dichiarati.

La distribuzione asimmetrica dei redditi suggerisce che la maggior parte dei tassisti potrebbe dichiarare un reddito inferiore a quello effettivo, il che indicherebbe che i 15.000 € rappresentano un valore di comodo piuttosto che una stima realistica dei guadagni reali. La nostra simulazione, basata su assunzioni conservative, aiuta a comprendere meglio le dinamiche economiche del settore e solleva importanti domande sulla trasparenza dei redditi dichiarati. Questo modello rappresenta quindi un punto di partenza per ulteriori discussioni sul reale guadagno di una categoria fondamentale per il sistema di trasporti urbano in Italia.

Codice python

import numpy as np  
import pandas as pd  
> np.random.seed(2)  
> # Parametri fissi  
tariffe_iniziali = {  
    'feriale': 3.50,  
    'festivo': 5.00,  
    'notturna': 7.50  
}  
> tariffe_km = [1.31, 1.42, 1.70]  # €/km per T1, T2, T3  
soglie_tariffe = [7.00, 25.00]  # Soglie in €, T1->T2, T2->T3  
sconto = 0.10  # 10% di sconto  
supplementi = {  
    'bagagli': 1.00,  
    'passeggero': 5.00,  
    'radiotaxi': 5.00  
}  
costo_massimo = 70.00  
consumo_benzina = 7 
costo_benzina_per_litro = 2  
> # Genera la distanza con distribuzione esponenziale  
def genera_corsa_modificata():  
    tipo_corsa = np.random.choice(['feriale', 'festivo', 'notturna'])  
alpha = 2 
beta = 10  
distanza_min=2  
distanza_max=34  
distanza = np.clip(distanza_min + (distanza_max - distanza_min) * np.random.beta(alpha, beta), distanza_min, distanza_max)
    bagagli = np.random.randint(0, 2)  
    passeggeri = np.random.randint(1, 2)  
    radiotaxi = np.random.choice([True, False])  
    sconto_applicabile = np.random.choice([True, False])  
    return tipo_corsa, distanza, bagagli, passeggeri, radiotaxi, sconto_applicabile  
> def calcola_costo_benzina(distanza):  
    return (distanza / consumo_benzina) * costo_benzina_per_litro  
> def calcola_fatturato_e_costo(corsa):  
    tipo_corsa, distanza, bagagli, passeggeri, radiotaxi, sconto_applicabile = corsa  
    costo = tariffe_iniziali[tipo_corsa]  
    accumulato = 0  
    tempo_totale = 0  
>     for km in range(int(distanza)):  
        velocita = np.random.uniform(10, 50)  
        tempo_totale += 60 / velocita  
        tariffa_km = tariffe_km[0] if accumulato < soglie_tariffe[0] else (  
            tariffe_km[1] if accumulato < sum(soglie_tariffe) else tariffe_km[2])  
        costo += tariffa_km  
        accumulato += tariffa_km  
>     costo += max(0, bagagli - 1) * supplementi['bagagli']  
    costo += max(0, passeggeri - 4) * supplementi['passeggero']  
    if radiotaxi:  
        costo += supplementi['radiotaxi']  
    if sconto_applicabile:  
        costo *= (1 - sconto)  
    costo = min(costo, costo_massimo) 
    return costo, calcola_costo_benzina(distanza), tempo_totale  
> dati_corse = []  
dati_giornate = []  
> # Simulazione della giornata  
def simula_giornata():  
    fatturato_giornaliero = 0  
    tempo_totale = 0  
    numero_corse = 0  
    while tempo_totale < 5 * 60:  
        corsa = genera_corsa_modificata()  
        fatturato, costo_benzina, tempo = calcola_fatturato_e_costo(corsa)  
        if tempo_totale + tempo > 5 * 60:  
            break  
>         dati_corse.append({  
            'Tipo Corsa': corsa[0],  
            'Distanza (km)': corsa[1],  
            'Bagagli': corsa[2],  
            'Passeggeri': corsa[3],  
            'Radiotaxi': corsa[4],  
            'Sconto Applicabile': corsa[5],  
            'Fatturato': fatturato,  
            'Costo Benzina': costo_benzina,  
            'Tempo Totale (min)': tempo  
        })  
>         fatturato_giornaliero += fatturato  
        tempo_totale += tempo  
        numero_corse += 1  
>     dati_giornate.append({'Numero Corse': numero_corse, 'Fatturato Giornaliero': fatturato_giornaliero})  
> # Esecuzione simulazione  
num_settimane = 42  
for _ in range(num_settimane * 5):  # Simulazione per ogni giorno dell'anno  
    simula_giornata()
Torna alla Home