2  Analiza ratelor impozitării

2.1 Analiza exploratorie a datelor

În acest raport vom încerca să investigăm impactul cotei progresive asupra încasărilor din impozitul pe venit. În acest scop vom ilustra înainte mai multe trenduri ale taxării pentru a ne familiariza cu datele. Vom începe prin a ilustra o metrică ce ţine indirect de povara taxării pe venit, anume rata de taxare efectivă pentru persoana singură ce câştigă salariul mediu pe economie. Sursa datelor e indicată în subtitlul graficului.

Arată codul
library(Matrix)
library(tidyverse)
library(eurostat)
library(patchwork)
library(gt)
library(furrr)
library(CausalImpact)
plan("multisession")

theme_set(hrbrthemes::theme_ipsum_tw(strip_text_size = 14, 
                                     strip_text_family = "Frutiger Bold",
                                     strip_text_face = "italic",
                                     axis_title_size = 10,
                                     axis_text_size = 8,
                                     base_family = "Frutiger",
                                     plot_title_family = "Frutiger Bold",
                                     subtitle_family = "Frutiger",
                                     caption_family = "Frutiger", 
                                     caption_size = 8,
                                     plot_title_size = 14,
                                     subtitle_size = 10) +
  theme(legend.text = element_text(size=8), 
        legend.title = element_text(size=10),
        legend.key.size = unit(0.5, "cm")))

culori <- c("#EA5B0C", "#a44a08", "#ea960c", "#ea150c", 
            "#a40e08", "#ffe0c2", "#0865a4", "#a48408")

taxe <- read_csv(here::here("database", "taxare_efectiva_venit.csv"))
df <- read_csv(here::here("database", "income_profit_gdp_inflation.csv"))
Arată codul
#rata de taxare efectivă
taxe %>% filter(time%in%c(2010, 2020)) %>% 
  arrange(time) %>% mutate(time=as.factor(time)) %>% 
  mutate(geo = gsub("\\(.+\\)", "", geo)) %>%
  filter(!grepl("Media|Cipru|Croatia", geo)) %>%
  mutate(geo=fct_reorder(geo, ef_rate)) %>%
  ggplot(aes(x=geo, y=ef_rate, group=time)) +
  geom_col(aes(fill=time), position='dodge') + coord_flip() +
  labs(title= "Rata de taxare efectivă", 
       subtitle = "Persoană singură cu venitul mediu",
       y="Rata de taxare efectivă", x="Ţară", fill="Anul", 
       caption="Sursa: Eurostat, earn_nt_taxrate") +
  scale_y_continuous(labels = scales::percent_format(scale=1)) +
  scale_fill_manual(values=culori[c(1, 5)]) +
  theme(legend.position = 'top')

Observăm din acest grafic că Belgia, Germania şi Danemarca sunt ţările cu cea mai mare rată a taxării efective, România ocupând efectiv locul al 6-lea ! Trebuie menţionat însă că metrica această calculată de Eurostat ia în calcul şi contribuţiile plătite de angajat, nu de angajator, motiv pentru care pare că România a avut o creştere semnificativă a taxării efective în 2020 (din cauza unor artificii fiscale din 2018), deşi în realitate taxarea a coborât. Lituania, spre exemplu, cunoaşte o creştere mare a taxării efective în 2020 datorită trecerii la cota progresivă în 2019.

Acum vom vizualiza relaţia încasări din impozitul pe profit vs încasări din impozitul pe venit şi vom împărţi (prin metoda *k-means*) ţările în patru clusteri. Am ales o diferenţă de 5 ani între cele două perioade afişate astfel încăt să excludem şi impactul crizei economice din 2008-2009 dar şi al pandemiei de COVID din 2020. Aşadar, în acest grafic apar anii 2014 şi 2019.

Arată codul
segmente <- df %>% 
  select(geo, time, income_revenues, profit_revenues) %>% 
  filter(time%in%c(2014,2019)) %>% 
  pivot_wider(names_from=time, values_from = c(income_revenues, profit_revenues))

df %>% filter(time%in%c(2014, 2019)) %>% 
  mutate(time=as.factor(time)) %>% mutate(id=paste(geo, time)) %>% 
  select(-1,-2) %>% relocate(id) %>% select(1, 2, profit_revenues) %>% 
  column_to_rownames("id") %>% kmeans(centers=5) %>% .[[1]] %>% 
  enframe() %>% separate(name, into=c("geo", "time"), sep=" ") %>% 
  inner_join(df %>% filter(time%in%c(2014, 2019)) %>% 
             mutate(time=as.character(time))) %>% rename(cluster=value) %>%
  mutate(cluster=as.factor(cluster)) %>% 
  ggplot(aes(x=income_revenues, y=profit_revenues, group=time)) + 
  ggConvexHull::geom_convexhull(aes(x=income_revenues, y=profit_revenues, 
                                    group=cluster, fill=cluster), alpha=0.4) +
  geom_point(aes(colour=time, shape=time, size=geo=="Romania"), 
             show.legend = c("size"=FALSE))  +
  geom_segment(data=segmente, inherit.aes = F,
               aes(x=income_revenues_2014, xend=income_revenues_2019, 
                   y=profit_revenues_2014, yend=profit_revenues_2019), 
               linetype=2, colour="grey50") +
  labs(title="Încasările din taxa pe profit versus venit", subtitle="% din PIB", 
       x="Venit individual şi gospodării", y="Profit", colour="An", shape="An", fill="Cluster", caption="Sursa: Eurostat, gov_10a_taxag") +
  ggrepel::geom_text_repel(aes(label=geo, size=geo=="Romania"), 
                           max.overlaps = 7, show.legend = c("size"=FALSE)) +
  scale_fill_manual(values = culori) +
  scale_x_continuous(labels=scales::percent_format(scale=1)) +
  scale_y_continuous(labels=scales::percent_format(scale=1)) +
  scale_size_manual(values=c(3, 4))

În continuare vom vizualiza cea mai mare rată a taxării marginale pentru fiecare ţară şi cum a variat în timp. Vom folosi datele de la OECD întrucât Eurostat nu are informaţii de acest gen. Dar menţionez că apar nişte discrepanţe între datele acestea şi ce mai spune Google.

Arată codul
rate <- read_csv(here::here("database", "rate_praguri_venit_oecd_total.csv"))

rate %>% 
  ggplot(aes(x=Year, y=Value, group=geo)) +
  geom_line(aes(colour=geo)) + 
  labs(title="Cea mai mare rată a taxării marginale", 
       x="An", y="% din venit", caption="Sursa: OECD, Tabelul I.7", 
       colour="Ţară") + 
  gghighlight::gghighlight(geo%in%c("Ungaria", "Polonia", "Danemarca", 
                                    "Austria", "Spania", "Italia"),
                           use_direct_label = F) +
  scale_y_continuous(labels=scales::percent_format(scale=1)) +
  scale_color_manual(values=culori[-6])

2.2 Analiza statistică

Pentru început vom analiza longitudinal variaţia încasărilor din taxele pe venit folosind un model din categoria “latent growth curve” de tip bayesian. Modelul asumă intercepturi şi pante random pentru fiecare ţară în parte. Dar mai întâi o ilustraţie grafică cu datele brute.

Arată codul
df %>% #filter(!grepl("Croatia|Elvetia", geo)) %>% 
  ggplot(aes(x=time, y=income_revenues, group=geo)) + 
  geom_line(aes(colour=geo), size=0.9) + 
  scale_y_continuous(labels = scales::percent_format(scale=1)) + 
  gghighlight::gghighlight(geo%in%c("Romania", "Bulgaria", "Cehia", 
                                    "Franta", "Ungaria", "Spania")) + 
  labs(title="Încasările din impozitul pe venit", 
       x=NULL, y="Procent din PIB", 
       caption="Sursa: Eurostat, gov_10a_taxag") + 
  scale_color_manual(values=culori[-6]) 

Mai jos ilustrăm rezultatele (parametrii) modelului. Mai întâi valorile pantelor. Interpretarea este simplă, panta este valoarea medie anuală cu care cresc (sau scad) încasările din impozitul pe venit. Fiecare ţară are câte o pantă şi un intercept. Interceptul este valoarea din anul 1998, anul cu care începe analiza noastră şi pentru care avem datele. Practic este punctul de plecare al ţării respective. Modelul mai furnizează şi corelaţia dintre pante şi intercepturi. Dacă corelaţia e pozitivă, înseamnă că ţările care încasau la început mai mult au crescut în continuare şi mai repede decât media celorlalte, dacă este negativă, înseamnă că există un fenomen de convergenţă - cele care încasau puţin cresc mai mult decât cele care încasau de la început mai mult.

Arată codul
model <- read_rds(here::here("model.R"))

brms::as_draws_df(model) %>%  
  select(contains("year")) %>% 
  select(-contains("sd"), -contains("cor"), -contains("b_year")) %>% 
  mutate(id=row_number()) %>% select(id, contains("geo")) %>%
  relocate(id) %>% gather(2:28, key='param', value='value') %>% 
  mutate(param = str_extract(string = param, 
                             pattern="(?<=\\[)[a-zA-Z\\s]+(?=,year)")) %>%
  drop_na() %>% group_by(param) %>% mutate(medie=mean(value)) %>% 
  ungroup() %>% arrange(desc(medie)) %>% mutate(param=fct_reorder(param, medie)) %>%
  ggplot(aes(x=value, y=param, group=param)) + 
  ggridges::geom_density_ridges(fill='#EA5B0C', alpha=0.7, colour=NA) + 
  geom_vline(xintercept = 0, linetype=2, colour='#a40e08', linewidth=1) +
  labs(title=latex2exp::TeX("$Valoarea\\,coeficienţilor\\,β_{1}^{ţară}$"), 
       x="% per an", y="Ţară", subtitle="Viteza de creştere/descreştere a încasărilor", 
       caption ="Sursa: calcule pe baza Eurostat, gov_10a_taxag")

Şi intercepturile:

Arată codul
brms::as_draws_df(model) %>%  
  select(contains("Intercept")) %>% 
  select(-contains("sd"), -contains("cor"), -contains("b_Intercept")) %>% 
  mutate(id=row_number()) %>% select(id, contains("geo")) %>%
  relocate(id) %>% gather(2:28, key='param', value='value') %>% 
  mutate(param = str_extract(string = param, pattern="(?<=\\[)[a-zA-Z\\s]+(?=,Intercept)")) %>%
  drop_na() %>% group_by(param) %>% mutate(medie=mean(value)) %>% 
  ungroup() %>% arrange(desc(medie)) %>% mutate(param=fct_reorder(param, medie)) %>%
  ggplot(aes(x=value, y=param, group=param)) + 
  ggridges::geom_density_ridges(fill='#EA5B0C', alpha=0.7, colour=NA) + 
  geom_vline(xintercept = 0, linetype=2, colour='#a40e08', linewidth=1) +
  labs(title=latex2exp::TeX("$Valoarea\\,coeficienţilor\\,β_{0}^{ţară}$"), 
       x="% per an", y="Ţară", subtitle="Intercepturi ", 
       caption ="Sursa: calcule pe baza Eurostat, gov_10a_taxag")

Corelaţia dintre intercepturi şi pante este de -0.08, nefiind semnificativă statistic.

2.2.1 Impactul cotei progresive asupra încasărilor

Ne vom axa pe cele patru ţări care au abandonat cota unică: Lituania în 2019, Letonia în 2018, Cehia şi Slovacia în 2013.

Pentru Lituania (2019):

  • Aceasta a avut următorul parcurs: 33% cotă unică introdusă în 1995, 27% în 2006, 24% în 2008 şi 15% in 2009. În 2019 a trecut la cota progresivă cu praguri de 20 % şi 27 %.

Pentru Letonia (2018):

  • Aceasta a avut următorul parcurs: cotă unică de 25% în 1997. 23 % în 2009, 26% în 2010, 25% în 2011, 24% în 2013, şi 23% in 2015. în 2018, a trecut la impozitul progresiv cu cote de 20%, 23% şi 31.4%.

Pentru Cehia (2013):

  • Cehia a introdus în 2008 o cotă unică pe venit de 15 % care s-a aplicat şi contribuţiilor sociale (cam 20 % pe venitul din muncă per ansamblu). În 2013 a adaugat o cotă de 22 % pentru cei ce depăşeau limita contribuţiilor trecând practic la impozit progresiv. Deci impactul e mai mic în cazul aceasta spre deosebire de Lituania

Pentru Slovacia (2013):

  • Cota unică de 19 % introdusă în 2004 şi impozit progresiv introdus în 2013 cu cote de 19 % şi 25 %.

Ne-am aştepta să vedem cele mai mari efecte la Lituania şi Slovacia.

Arată codul
df %>% 
  mutate(time=paste0(time,"-01-01") %>% as.Date()) %>%
  filter(grepl("Slovacia|Cehia|Lituania|Letonia", geo)) %>% 
  mutate(index = case_when(geo=="Cehia" ~ as.Date("2013-01-01"),
                           geo=="Lituania" ~ as.Date("2019-01-01"),
                           geo=="Letonia" ~ as.Date("2018-01-01"),
                           geo=="Slovacia" ~ as.Date("2013-01-01"))) %>%
  ggplot(aes(x=time, y=income_revenues)) + geom_line(colour='#EA5B0C', size=1) + 
  geom_vline(aes(x=time, y=income_revenues, xintercept=index), 
             linetype=2, colour='grey50') +
  facet_wrap(~geo, ncol=2, scales='free') + 
  labs(title = "Încasările din impozitul pe venit în cele patru ţări", 
       x="An", y="Procent din PIB", caption="Sursa: Eurostat, gov_10a_taxag") +
  scale_y_continuous(labels=scales::percent_format(scale=1))

Aparent ar exista un impact pozitiv al cotei progresive asupra încasărilor din impozitul pe venit … însă e foarte important să ne uităm în paralel şi la încasările totale… dacă acestea cresc odată cu încasările din taxa pe venit e clar că există o altă variabilă, alta decât rata taxării pe venit, care le influenţează pe amândouă, căci logic vorbind rata taxării pe venit nu ar trebui să influenţeze colectarea taxelor pe profit, pe mediu, TVA sau oricare altă taxă în afara de cea pe venit. Vom standardiza datele ca să putem să le suprapunem şi să observăm dacă au acelaşi trend.

Arată codul
df <- read_csv(here::here("database", "income_profit_gdp_inflation.csv")) %>%
      inner_join(read_csv(here::here("database", "taxe_total.csv")) %>%
      mutate(time=lubridate::year(time))) %>%
      mutate(taxe_total = taxe_total - income_revenues)

df %>% 
  mutate(time=paste0(time,"-01-01") %>% as.Date()) %>%
  filter(grepl("Slovacia|Cehia|Lituania|Letonia", geo)) %>% 
  mutate(index = case_when(geo=="Cehia" ~ as.Date("2013-01-01"),
                           geo=="Lituania" ~ as.Date("2019-01-01"),
                           geo=="Letonia" ~ as.Date("2018-01-01"),
                           geo=="Slovacia" ~ as.Date("2013-01-01"))) %>%
  group_by(geo) %>%
  mutate(across(c(income_revenues, taxe_total), 
                ~(.-mean(.))/sd(.))) %>%
  ungroup() %>%
  select(geo, time, index, income_revenues, taxe_total) %>% 
  rename(`Impozit venit`=income_revenues, `Total taxe`=taxe_total) %>%
  gather(c(`Impozit venit`, `Total taxe`), 
         key="Indicator", value="valoare") %>%
  ggplot(aes(x=time, y=valoare, group=Indicator)) +  
  geom_line(aes(x=time, y=valoare, colour=Indicator), size=1) +
  geom_vline(aes(x=time, y=valoare, group=Indicator, xintercept=index), 
             linetype=2, colour='grey50') +
  facet_wrap(~geo, ncol=2, scales='free') + 
  labs(title = "Impozit pe venit vs total taxe în cele patru ţări", 
       x="An", y="Deviaţii standard în jurul mediei", 
       subtitle="Date standardizate", 
       caption="Sursa: calcule pe Eurostat, gov_10a_taxag") +
  scale_colour_manual(values = culori[c(1, 5)]) +
  theme(legend.position = 'top')

Aparent este cazul pentru toate tările noastre. Cel puţin parţial, acolo unde a crescut încasarea din taxa pe venit au urcat şi încasările din restul taxelor. Menţionam că ce apare în grafic ca taxe “totale” sunt taxele totale minus încasările din taxa pe venit, adică încasările din restul taxelor. Ca să calculăm impactul “cauzal” al cotei progresive asupra încasărilor din taxa pe venit, putem folosi restul încasărilor ca procent din PIB ca serie de control (ajustăm la ea). Vom folosi un model dezvoltat de Kay H. Brodersen et al (2015), din categoria modelelor structurale bayesiene de serii de timp. Vom folosi încasările din restul taxelor şi creşterea procentuală a PIB ca serii de control. Altfel spus, vom prezice ce s-ar fi întâmplat în absenţa trecerii la cota progresivă şi vom sustrage astfel efectul obţinut. Ca să pretindem că efectul obţinut este cauzal trebuie să respectăm următoarele premize:

  1. Nu au existat alte lucruri care s-au întâmplat concomitent cu taxarea progresivă, deci nu au existat alte intervenţii omise din model.
  2. Seriile de control prezic variabila-răspuns (încasările din taxa pe venit) dar nu sunt influenţate la rândul lor de intervenţie. (în cazul PIB-ului s-ar putea argumenta că lucrurile nu stau aşa)
  3. Relaţia pe care au o seriile de control cu variabila-răspuns rămâne aceeaşi înainte şi după intervenţie.

În cazul nostru putem să ne plângem doar de lipsa unor controale mai bune, îşi de numărul limitat de observaţii, nsă în rest respectăm aproximativ premizele. Să vizualizăm impactul cotei progresive asupra încasărilor în cele patru ţări. Graficele se citesc în modul următor: primul subgrafic cu negru reprezintă încasările din taxa pe venit, seria de timp originală sau variabila-răspuns. Cu roşu punctat este seria prezisă de model (şi fit-ul ei) în absenţa intervenţiei. În al doilea subgrafic avem impactul “cauzal” iar în al treilea impactul “cauzal” cumulativ. Predicţiile furnizat de model vin şi cu intervale ‘credibile’ (în limbajul statisticii bayesiene) de 95 %.

Arată codul
prag <- c("Slovacia"=11, "Lituania"=17, "Letonia"=16, "Cehia"=11)


plot.CausalImpact <- function(model){
  x <- as_tibble(model$series) %>% 
       mutate(time = 2002:2021) %>% relocate(time)
  g1 <- x %>% ggplot(aes(x=time, y=response)) + 
    geom_line(size=1) + 
    geom_line(aes(x=time, y=point.pred), colour=culori[2], linetype=2) +
    geom_vline(xintercept = x$time[model$model$pre.period[2]] + 1, linetype=2, 
               colour='grey50') +
    geom_ribbon(aes(x=time, ymin=point.pred.lower, ymax=point.pred.upper), 
                alpha=0.3, fill=culori[1]) +
    labs(caption="Seria originală împreună cu contrafactualul", x=NULL)
  
  g2 <- x %>% ggplot(aes(x=time, y=point.effect)) + 
    geom_line(linetype=2, colour=culori[1]) + 
    geom_ribbon(aes(x=time, ymin=point.effect.lower, 
                    ymax=point.effect.upper), alpha=0.3, fill=culori[1]) +
    geom_vline(xintercept=x$time[model$model$pre.period[2]] + 1, linetype=2, 
               colour='grey50') +
    geom_hline(yintercept=0, linetype=2) +
    labs(caption="Impactul renunţării la cota unică", x=NULL) +
    theme(plot.margin = margin(-1, 0.5, -2, 0.5, "cm"))
  g1 / g2
}


extrage_geo <- function(tara, df){
  x <- df %>% dplyr::select(geo, time, income_revenues, GDP, taxe_total) %>%
    filter(geo==tara) %>% arrange((time)) %>%
    select(-geo) %>% rename(y=income_revenues) %>%
    column_to_rownames("time") 
  return(x)
}

model <- list()
for(i in names(prag)){
model[[i]] <- CausalImpact(extrage_geo(names(prag[i]), df=df), 
                      pre.period = c(1, prag[i]), 
                      post.period=c(prag[i]+1, 19), 
                      model.args = list(niter=3000))
}

plot(model$Slovacia) + 
    patchwork::plot_annotation(title="Slovacia (2013)", 
    subtitle="Impactul trecerii la cota progresivă \nasupra veniturilor din taxa pe venit", caption="Sursa: calcule pe Eurostat, gov_10a_taxag")

În Slovacia avem cel mai clar o dovada a creşterii încasărilor ca urmare a cotei progresive.

Arată codul
plot(model$Lituania) + 
  patchwork::plot_annotation(title="Lituania (2019)", 
  subtitle="Impactul trecerii la cota progresivă \nasupra veniturilor din taxa pe venit", caption="Sursa: calcule pe Eurostat, gov_10a_taxag")

În Lituania deşi avem o creştere marcată a încasărilor din impozitul pe venit fix în anul trecerii la cota progresivă, avem o creştere semnificativă şi a celorlalte încasări de taxe, deci impactul “cauzal” calculat de model rămâne mai mic.

Arată codul
plot(model$Letonia) + 
  patchwork::plot_annotation(title="Letonia (2018)", 
  subtitle="Impactul trecerii la cota progresivă \nasupra veniturilor din taxa pe venit", caption="Sursa: calcule pe Eurostat, gov_10a_taxag")

În Letonia nu avem niciun impact decelabil.

Arată codul
plot(model$Cehia) +
  patchwork::plot_annotation(title="Cehia (2013)", 
  subtitle="Impactul trecerii la cota progresivă \nasupra veniturilor din taxa pe venit", caption="Sursa: calcule pe Eurostat, gov_10a_taxag")

În Cehia avem un efect întârziat cu aproximativ 3-4 ani care ar putea fi atribuit altor măsuri.

2.3 Impozitul pe profit

În această secţiune vom analiza impozitul pe profit şi impactul lui asupra încasărilor. Spre deosebire de cel pe venit, acesta se schimbă semnificativ mai frecvent şi nu avem o singură intervenţie pe care să o putem cuantifica. De asemenea avem şi număr mic de puncte pentru a putea testa ipoteze prin metoda ecuaţiilor structurale sau chiar şi pentru o banală analiză regresivă. Ne vom limita aşadar doar la analize exploratorii.

Arată codul
corporate_rate <- read_csv(here::here("database",
                                      "income_profit_gdp_inflation.csv"))

ggplot(corporate_rate,aes(x=time, y=profit_rate, group=geo)) + 
  geom_line(aes(colour=geo), size=0.9) + 
  gghighlight::gghighlight(geo%in%c("Romania", "Bulgaria", "Polonia", 
                                    "Cehia", "Slovacia", "Ungaria"), 
                           use_direct_label = F) +
  scale_y_continuous(labels=scales::percent_format(scale=1)) +
  labs(title="Rata impozării pe profitul companiilor", x="An", 
       y="Procent din profit", caption ="Sursa: TaxFoundation", colour="Ţară") +
  scale_color_manual(values=culori[-6])

Observăm că mai toate sunt în scădere. Efectul a treizeci de ani de neoliberalism.

Arată codul
culorile <- c("2010"=culori[1], "2020"=culori[5])

corporate_rate %>% filter(time%in%c(2010, 2020)) |> 
  select(geo, time, profit_rate) |>
  spread(time, profit_rate) |> mutate(medie=(`2020`+`2010`)/2, 
                                      geo=fct_reorder(geo, medie)) |> 
  ggplot(aes(x=geo, y=`2010`)) + 
  geom_segment(aes(x=geo, xend=geo, y=`2010`, yend=`2020`)) + 
  geom_point(aes(colour="2010"), size=2) + 
  geom_point(aes(x=geo, y=`2020`, colour="2020"), size=2) + 
  coord_flip() + labs(title="Impozitul pe profit", 
                      subtitle="% din PIB", 
                      caption="Sursa: TaxFoundation", 
                      y="Rata taxării", x="Ţară", colour='Ani') + 
  scale_y_continuous(labels = scales::percent_format(scale=1)) + 
  scale_color_manual(values=culorile)

Acelaşi lucru se vede şi aici. În continuare urmărim trendurile dintre încasări şi rata impozitării şi creşterea PIB-ului. Din nou, vom standardiza datele ca să le putem vizualiza în axă comună.

Arată codul
tari <- c("Polonia", "Ungaria", "Cehia", "Slovacia", 
          "Letonia", "Lituania", "Romania", "Bulgaria")

corporate_rate %>% filter(geo%in%tari) %>%
    group_by(geo) %>% 
  mutate(across(GDP:profit_rate, ~(.-mean(.))/sd(.))) %>% 
  rename(`Impozit colectat`=profit_revenues, PIB=GDP,
         `Rata impozitării`=profit_rate) %>%
  gather(PIB:`Rata impozitării`, 
         key='var', value='valoare') %>%
  ggplot(aes(x=time, y=valoare, colour=var)) + geom_line(aes(colour=var)) +
  facet_wrap(~geo, ncol=2, scales='free') + 
  labs(title="Rata impozitării profitului vs încasări", 
       x=NULL, caption="Sursa: calcule pe Eurostat, gov_10a_taxag şi TaxFoundation", 
       y="Deviaţii standard în jurul mediei", colour='Indicator') +
  scale_color_manual(values = culori[c(1, 4, 8)]) +
  theme(legend.position = 'top')

Din acestă imagine nu trebuie să se tragă concluzia, falsă, cum că rata impozitării ar influenţa negativ creşterea PIB-ului pentru că par invers corelate din grafic. Aici avem de-a face cu dependenţa PIB-ului de PIB-ul anterior… El creşte oricum independent de variabilele noastre, dar pentru a testa relaţia rată-> PIB avem nevoie de serii de timp mult mai lungi decât avem. Pentru a nu induce în eroare încălcând norme metodologice am ales să nu includ aici o asemenea analiză.

2.4 Scenarii de impozitare progresivă

În această secţiune investigăm diferite scenarii de impozitare progresivă pentru România. Singura bază de date care are datele suficient de granulare este World Inequality Database. Are date la nivel de percentile cu media venitului pre-taxe (şi post-taxe, dar nu ne interesează aici) per percentilă.

Pentru a explora diferite scenarii de impozitare progresivă am creat următoarea aplicaţie. Singura constantă este faptul că impozitarea este constrânsă la trei trepte (cred că este rezonabil pentru România), restul fiind variabile ce pot fi explorate. Jos este un grafic care explorează asemenea posibilităţi asumând pragul pentru cea de a treia cotă la nivelul câştigului salarial brut de 2200 EURO (top 8-9 % conform distribuţiei veniturilor salariale din baza de date a World Inequality Database, iar pentru prima cotă, care rămâne 10 %, la 600 EURO (salariul minim din 2023).

Arată codul
distrib_wid <- read_delim(here::here("database", "WID", "WID_data_RO.csv")) %>% 
  filter(variable=="aptincj992") %>% filter(year==2021) %>% 
  filter(country=="RO") %>% select(percentile, value) 

pe <- numeric(100)
for(i in 1:100){
  pe[i] <- paste0("p", i-1, "p", i)
}

distrib_wid <- distrib_wid %>% filter(percentile%in%pe) %>% 
  mutate(percentile = as.factor(percentile)) %>% 
  mutate(percentile = factor(percentile, levels=pe, ordered=T)) %>% 
  arrange(percentile)

distrib_wid %>% 
  filter(between(value, 2100*5*12, 2300*5*12)) %>% pull(percentile)
[1] p91p92
100 Levels: p0p1 < p1p2 < p2p3 < p3p4 < p4p5 < p5p6 < p6p7 < p7p8 < ... < p99p100

Pragul a fost împrumutat de la Slovacia: pragul la ei este de 38000 EURO brut anual. Ajustat la PIB-ul per capita, la noi ar veni 2200 EURO brut lunar. Vom folosi acest prag pentru patru mari scenarii. Puteţi explora toate scenariile, folosind fie aplicaţia (care permite şi alt prag) fie imaginea interactivă de mai jos care fixează pragul la 2200 EURO şi lasă cotele să varieze. Puteţi afla suma strânsă totala din impozit multiplicând factorul din grafic sau aplicaţie cu 28 miliarde de RON (impozitul pe venitul din salarii din 2021, conform MF). Noi vom propune patru scenarii în cele ce urmează. Toate vor avea rată de 10 % pe ultimii 30 % din distribuţie (sub 3000 RON brut anual, salariul minim practic).

Arată codul
raport_wid <- function(valori, coefs, praguri){
  x <- distrib_wid %>% mutate(categ = row_number()) %>% 
    mutate(value_2=lead(value)) %>% mutate(value_2=replace_na(value_2, 100000000))
  
  k1 <- x %>% filter(60*praguri[1] > value, 60*praguri[1] < value_2) %>% 
    pull(categ) %>% .[1] %>% as.integer()
  k2 <- x %>% filter(60*praguri[2] > value, 60*praguri[2] < value_2) %>%
    pull(categ) %>% .[1] %>% as.integer()
  
  if(valori < 60*praguri[1]){
    imp <- coefs[1]*valori
  } else if(valori > 60*praguri[1] && valori < 60*praguri[2]){
    imp <- coefs[1]*60*praguri[1] + coefs[2]*(valori-60*praguri[1])
  } else if(valori > 60*praguri[2]){
    imp <- coefs[1]*60*praguri[1] + coefs[2]*(60*praguri[2]-60*praguri[1]) +
      coefs[3]*(valori-60*praguri[2])
  }
  return(c(imp, as.integer(100-k1), as.integer(100-k2)))
}
Arată codul
insumare <- function(coefs, praguri){
imp_total <- numeric(100)
for(i in 1:100){
  imp_total[i] <- raport_wid(valori = distrib_wid$value[i], 
                  coefs=coefs, praguri=praguri)[1]
}
message("Gata")
sum(imp_total)*47000/1000000000
}
Arată codul
multiplicator <- expand_grid("cota_1"=0.1,
                             "cota_2"=seq(0.1, 0.5, by=0.02), 
                              "cota_3"=seq(0.1, 0.5, by=0.02)) %>% 
  mutate(coefs = pmap(list(cota_1, cota_2, cota_3), c)) %>% 
  mutate(ratio = future_map_dbl(coefs, 
                         ~insumare(.x, praguri=c(600, 2200))/28)) %>% 
  mutate(ratio2 = cut(ratio, breaks=c(-0.01, 1, 1.5,  2, 2.5, 3, 3.5, 4, 4.5 ,5, 10))) %>% 
  ggplot(aes(x=cota_2, y=cota_3, fill=ratio2, 
             text=paste("Raport:", round(ratio, 3)))) + 
  geom_tile(colour='white') +
  scale_fill_viridis_d(option="E") +
  scale_x_continuous(labels=scales::percent_format()) +
  scale_y_continuous(labels=scales::percent_format()) +
  labs(title = "Factorul multiplicativ al încasărilor", 
       x="Prima cotă", y="A doua cotă", fill="Factor")

plotly::ggplotly(multiplicator)

Sugestia noastră finală este un scenariu intermediar între cel slovac şi cel cu progresivitate scăzută de 10 % - 16 %: anume cotă de 16 % ( în loc de 19 %) şi 21 % (în loc de 25 %) pentru tot ce trece de prag. Rate marginale, nu efective.

2.4.1 Cele patru scenarii

Vom calcula sumele colectate ca impozit pe venit folosind distribuţiile la nivel de percentilă ale datelor furnizate de World Inequality Database. Datele WID sunt furnizate până la anul 2021, deci avem avantajul dublu al unei distribuţii mai recente şi mai fine decât permit alte baze de date (Eurostat, ILOSTAT, etc). Vom considera de asemenea că avem 4.7 milioane de salariaţi plătitori de impozit de venit (aproximativ 1 milion sunt scutiţi). Impactul scutirilor va fi calculat separat. De asemenea, costul unui credit fiscal pentru ultimii 10 % ai distribuţiei (sub 100 euro brut lunar) este de circa 2.5 miliarde. El se poate scădea din toate sumele afişate ulterior în acest document.

2.4.2 Scenariul I

Cote de 10 % şi 16 % pe orice sumă care depăşeşte 2200 EURO brut. Se strâng în total 33.73 miliarde RON, cu 5.73 miliarde mai mulţi bani decât în 2021. Îl vom rotunji la 5 miliarde RON, notând că valoarea va fi mult mai mare în 2023, aşa ne luăm o marjă de eroare semnificativă.

2.4.3 Scenariul II

Cote de 10 şi 19 % pe orice sumă depăşeşte 2200 EURO brut. Se strâng 35.59 miliarde RON. Acest lucru înseamnă încă 7.5 miliarde de RON la buget. Îl vom rotunji la 7 miliarde.

2.4.4 Scenariul III

Sugestia noastră personală cu cote de 16 şi 21 %. Se strâng 43.3 miliarde RON. Acest lucru înseamnă mai mult cu 15.3 miliarde de RON. Îl vom rotunji la 15 de miliarde RON.

2.4.5 Scenariul IV

Scenariul slovac modificat, cu trepte de 19 şi 25 %. Se strâng 58.4 miliarde RON. Acest lucru înseamnă 21 miliarde de RON. Îl vom rotunji la 20 de miliarde RON.

2.5 Concluzii

Creşterea impozitului pe venit reprezintă cea mai importantă componentă din pachetul de sugestii pe care le facem în acest raport. Vom ilustra rezultatele de până acum într-un tabel. Vom compara sumele cu cerinţele salariale ale profesorilor, cu impact calculat de autorităţi de circa 8 miliarde RON (creştere de 25 % şi aducerea salariilor debutanţilor la nivelul salariului mediu pe economie).

Arată codul
tibble("Scenariu"=c("Scenariul I: cote 10%, 16%", 
                    "Scenariul II: cote 10%, 19%", 
                    "Scenariul III: cote 10%, 16%, 21%",
                    "Scenariul IV: cote 10%, 19%, 25%"),
       "Suma"=c(5, 7, 15, 20),
       "Buget" = 100*c(5, 7, 15, 20)/379.6,
       "PIB" = 100*c(5, 7, 15, 20)/1182,
       "Cerinţele profesorilor"=c(5,7,15,20)/8) %>%
  gt::gt() %>% gtExtras::gt_theme_538() %>%
  gt::tab_spanner(label="Procentul (%) din", columns=c(Buget, PIB)) %>%
  gt::fmt_percent(columns=c(Buget, PIB), decimals = 2, scale_values = F) %>%
  gt::fmt_number(columns=5) %>%
  tab_header(title="Cele patru scenarii de impozitare", 
             subtitle="Sursa: calcule proprii pe datele World Inequality Database") %>%
  tab_footnote(footnote = "Pragurile sunt de 600, 2200 EURO brut (ultimii 30 %, top 8 %)",
               locations=cells_title()) %>%
  tab_footnote(footnote="De câte ori depăşesc sumele colectate cerinţele profesorilor de majorare salarială cu 25 %", 
               locations=cells_column_labels(columns=`Cerinţele profesorilor`)) %>% 
  tab_footnote(footnote="Miliarde RON", 
               locations = cells_column_labels(columns=2)) %>%
  gt::opt_row_striping() %>% 
  gt::tab_style(style=cell_fill(color=culori[1]), 
                locations=cells_column_labels()) %>% 
  tab_style(style=cell_fill(color=culori[1]), 
            locations=cells_column_spanners()) %>%
  tab_style(style=cell_text(color='white'), 
            locations=cells_column_labels()) %>%
  tab_style(style=cell_text(color='white'),
            locations=cells_column_spanners()) %>%
  gt::opt_vertical_padding(scale=1.2) %>%
  tab_style(style=cell_borders(sides = "bottom", color="black", 
                               weight = px(2)), 
            locations=cells_body(rows = 4)) %>%
  gt::opt_table_font(font='Frutiger') %>%
  tab_style(cell_text(font="Frutiger Bold"), cells_title(groups='title'))
Cele patru scenarii de impozitare1
Sursa: calcule proprii pe datele World Inequality Database1
Scenariu Suma2 Procentul (%) din Cerinţele profesorilor3
Buget PIB
Scenariul I: cote 10%, 16% 5 1.32% 0.42% 0.62
Scenariul II: cote 10%, 19% 7 1.84% 0.59% 0.88
Scenariul III: cote 10%, 16%, 21% 15 3.95% 1.27% 1.88
Scenariul IV: cote 10%, 19%, 25% 20 5.27% 1.69% 2.50
1 Pragurile sunt de 600, 2200 EURO brut (ultimii 30 %, top 8 %)
2 Miliarde RON
3 De câte ori depăşesc sumele colectate cerinţele profesorilor de majorare salarială cu 25 %