Ársreikningar sveitarfélaga

Hvernig eru ársreikningagögn sveitarfélaga undirbúin fyrir birtingu í mælaborði Metils um?

stjórnmál
efnahagur
ársreikningar
sveitarfélög
Author
Affiliation
Published

April 13, 2023

Code
library(tidyverse)
library(readxl)
library(janitor)
library(visitalaneysluverds)
library(hagstofa)
library(arrow)
library(googledrive)
library(googlesheets4)

Mannfjöldi

Code
url <- "https://px.hagstofa.is:443/pxis/api/v1/is/Ibuar/mannfjoldi/2_byggdir/sveitarfelog/MAN02005.px"
mannfjoldi <- hg_data(url) |> 
  filter(
    Aldur == "Alls",
    Kyn == "Alls",
    Sveitarfélag != "Alls"
  ) |> 
  collect() |> 
  clean_names() |> 
  rename(mannfjoldi = 5) |> 
  select(-aldur, -kyn) |> 
  mutate(ar = parse_number(ar))

Efnahagur

Code
efnahagur <- read_excel("net-efnahagsreikningur.xlsx", skip = 4) |> 
  clean_names() |> 
  fill(ar, sveitarfelag, hluti) |> 
  filter(
    tegund2 %in% c(
      "Veltufjármunir Total", 
      "Varanlegir rekstrarfjármunir", 
      "Áhættufjármunir og langtímakröfur",
      "Skuldbindingar", 
      "Langtímaskuldir",
      "Skammtímaskuldir", 
      "Eigið fé"
    ) | tegund %in% c(
      "Skammtímakröfur á eigin fyrirtæki",
      "Aðrir veltufjármunir"
    )
  ) |> 
  mutate(
    tegund2 = ifelse(is.na(tegund2), tegund, tegund2) |>
      str_replace(" Total", "")
  ) |> 
  select(-tegund) |> 
  mutate(
    ar = parse_number(ar),
    sveitarfelag = str_sub(sveitarfelag, start = 6)
  )

efnahagur
# A tibble: 26,514 × 6
      ar sveitarfelag    hluti        tegund3 tegund2                      total
   <dbl> <chr>           <chr>        <chr>   <chr>                        <dbl>
 1  2021 Reykjavíkurborg A_hluti      <NA>    Varanlegir rekstrarfjármun… 1.76e8
 2  2021 Reykjavíkurborg A_hluti      <NA>    Áhættufjármunir og langtím… 2.37e7
 3  2021 Reykjavíkurborg A_hluti      <NA>    Skammtímakröfur á eigin fy… 3.40e5
 4  2021 Reykjavíkurborg A_hluti      <NA>    Aðrir veltufjármunir        1.53e7
 5  2021 Reykjavíkurborg A_hluti      <NA>    Veltufjármunir              3.65e7
 6  2021 Reykjavíkurborg A_hluti      <NA>    Eigið fé                    9.19e7
 7  2021 Reykjavíkurborg A_hluti      <NA>    Skuldbindingar              3.44e7
 8  2021 Reykjavíkurborg A_hluti      <NA>    Langtímaskuldir             8.51e7
 9  2021 Reykjavíkurborg A_hluti      <NA>    Skammtímaskuldir            2.51e7
10  2021 Reykjavíkurborg A_og_B_hluti <NA>    Varanlegir rekstrarfjármun… 6.87e8
# ℹ 26,504 more rows

Rekstur

Code
rekstur <- read_excel("net-rekstrarreikningur.xlsx", skip = 4) |> 
  clean_names() |> 
  fill(ar, sveitarfelag, hluti) |> 
  filter(
    tegund2 %in% c(
      "Gjöld Total", 
      "Tekjur Total",
      "Rekstrarniðurstaða Total"
    ) | tegund %in% c(
      "Afskriftir", 
      "Breyting lífeyrisskuldbindinga",
      "Fjármagnsliðir",
      "Óreglulegir liðir",
      "Framlag Jöfnunarsjóðs", 
      "Skatttekjur án Jöfnunarsjóðs",
      "Laun og launatengd gjöld"
    )
  ) |> 
  mutate(
    tegund2 = ifelse(is.na(tegund2), tegund, tegund2) |> 
      str_replace(" Total", "")
  ) |> 
  select(-tegund) |> 
  mutate(
    ar = parse_number(ar),
    sveitarfelag = str_sub(sveitarfelag, start = 6)
  )

Sjóðsstreymi

Code
sjodsstreymi <- read_excel("net-sjodsstreymi.xlsx", skip = 4) |> 
  clean_names() |> 
  fill(ar, sveitarfelag, hluti, tegund2) |> 
  mutate(
    ar = parse_number(ar),
    sveitarfelag = str_sub(sveitarfelag, start = 6)
  ) |> 
  filter(
    tegund2 %in% c(
      "Veltufé frá rekstri Total", 
      "Fjárfestingarhreyfingar Total") | 
      tegund %in% c(
        "Afborganir langtímalána",
        "Aðrar fjármögnunarhreyfingar",
        "Tekin ný langtímalán",
        "Fjárfesting í varanlegum rekstrarfjármunum"
      )
  ) |>
  mutate(
    tegund2 = ifelse(is.na(tegund), tegund2, tegund) |>
      str_replace(" Total", "")
  ) |> 
  select(-tegund) |> 
  mutate(
    total = coalesce(total, 0)
  )

Tenging

Code
d <- efnahagur |> 
  select(-tegund3) |> 
  pivot_wider(names_from = tegund2, values_from = total) |> 
  inner_join(
    rekstur |> 
      pivot_wider(names_from = tegund2, values_from = total),
    by = c("ar", "sveitarfelag", "hluti")
  ) |> 
  inner_join(
    sjodsstreymi |> 
      pivot_wider(names_from = tegund2, values_from = total),
    by = c("ar", "sveitarfelag", "hluti")
  )
Code
d |> 
  skimr::skim()
Data summary
Name d
Number of rows 2946
Number of columns 28
_______________________
Column type frequency:
character 2
numeric 26
________________________
Group variables None

Variable type: character

skim_variable n_missing complete_rate min max empty n_unique whitespace
sveitarfelag 0 1 8 29 0 78 0
hluti 0 1 7 12 0 2 0

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist
ar 0 1 2011.36 5.74 2002 2006.00 2011.0 2016.00 2021 ▇▇▇▇▇
Varanlegir rekstrarfjármunir 0 1 6624957.10 36051950.54 5116 278415.25 799952.0 2850725.00 687356705 ▇▁▁▁▁
Áhættufjármunir og langtímakröfur 0 1 852135.07 3125057.05 0 51730.00 133711.0 429874.50 36071319 ▇▁▁▁▁
Skammtímakröfur á eigin fyrirtæki 0 1 59360.99 177121.77 -303230 0.00 0.0 41883.25 3842587 ▇▁▁▁▁
Aðrir veltufjármunir 0 1 400014.33 1785970.70 0 20509.00 65826.1 171302.75 30423739 ▇▁▁▁▁
Veltufjármunir 0 1 979396.69 4014476.97 5481 89840.25 195424.0 578573.75 83647325 ▇▁▁▁▁
Eigið fé 0 1 3407509.12 18745034.65 -1653340 242396.50 526680.0 1479685.50 383263977 ▇▁▁▁▁
Skuldbindingar 0 1 918557.10 3702651.37 0 0.00 55855.5 441199.50 56048014 ▇▁▁▁▁
Langtímaskuldir 0 1 3279985.20 17902106.72 0 62270.00 345244.5 1161922.50 293362724 ▇▁▁▁▁
Skammtímaskuldir 0 1 850437.52 3526533.76 205 43540.50 142088.0 393441.75 57891584 ▇▁▁▁▁
Skatttekjur án Jöfnunarsjóðs 0 1 2138379.79 8100306.66 7636 137077.00 362992.5 1086497.75 110501161 ▇▁▁▁▁
Framlag Jöfnunarsjóðs 0 1 348988.64 713484.53 0 64818.00 153872.0 328042.00 8761951 ▇▁▁▁▁
Tekjur 0 1 3416476.78 13131987.60 12600 262189.50 668481.0 1912667.75 202598663 ▇▁▁▁▁
Laun og launatengd gjöld 0 1 1663137.44 6233491.92 874 115040.00 327390.0 961997.75 99466329 ▇▁▁▁▁
Breyting lífeyrisskuldbindinga 0 1 106124.07 590316.00 -1531587 0.00 3643.0 39447.25 14666288 ▇▁▁▁▁
Afskriftir 0 1 215721.42 1193013.54 0 11210.58 30666.5 89919.50 21052234 ▇▁▁▁▁
Gjöld 0 1 3215724.00 12196422.03 13862 257642.00 644912.0 1830874.00 181811243 ▇▁▁▁▁
Fjármagnsliðir 0 1 -180280.93 2117285.13 -99783794 -58652.25 -9811.5 2448.50 10505376 ▁▁▁▁▇
Óreglulegir liðir 0 1 49837.20 706343.64 -6171386 0.00 0.0 0.00 20174498 ▁▇▁▁▁
Rekstrarniðurstaða 0 1 70309.06 1835932.97 -71495906 -17679.75 9537.0 62336.50 28027176 ▁▁▁▇▁
Veltufé frá rekstri 0 1 411437.66 2144372.78 -2583086 13206.50 52313.0 200575.75 39602982 ▇▁▁▁▁
Fjárfesting í varanlegum rekstrarfjármunum 0 1 -513171.39 2656269.07 -48339094 -219702.00 -57540.5 -13798.20 1599022 ▁▁▁▁▇
Fjárfestingarhreyfingar 0 1 -387395.63 2390151.84 -48811242 -185058.00 -43222.5 -4990.00 29084625 ▁▁▁▇▁
Tekin ný langtímalán 0 1 398224.62 2112577.99 -170501 0.00 13050.0 140000.00 44594536 ▇▁▁▁▁
Afborganir langtímalána 0 1 -331787.59 1579268.10 -28501261 -146012.00 -42950.0 -7370.58 94019 ▁▁▁▁▇
Aðrar fjármögnunarhreyfingar 0 1 -39852.38 429502.42 -10357497 -18051.75 0.0 3057.50 2709554 ▁▁▁▇▁

Sameining sveitarfélaga

Code
mulathing <- c(
  "Múlaþing", 
  "Fljótsdalshérað", 
  "Seyðisfjarðarkaupstaður",
  "Borgarfjarðarhreppur",
  "Djúpavogshreppur"
)

sudurnesjabaer <- c(
  "Sandgerðisbær", 
  "Sveitarfélagið Garður"
)

fjardabyggd <- c(
  "Breiðdalshreppur",
  "Fjarðabyggð"
)

gardabaer <- c(
  "Sveitarfélagið Álftanes", 
  "Garðabær"
)

d <- d |> 
  mutate(
    sveitarfelag = case_match(
      sveitarfelag,
      mulathing ~ "Múlaþing",
      sudurnesjabaer ~ "Suðurnesjabær",
      fjardabyggd ~ "Fjarðabyggð",
      gardabaer ~ "Garðabær",
      sveitarfelag ~ sveitarfelag
    )
  )

Reikna breytur

Code
d <- d |> mutate(
  heildarskuldir = `Skuldbindingar` + `Langtímaskuldir` + `Skammtímaskuldir`,
  eignir = `Varanlegir rekstrarfjármunir` + `Áhættufjármunir og langtímakröfur` + `Veltufjármunir`
)

d
# A tibble: 2,946 × 30
      ar sveitarfelag        hluti Varanlegir rekstrarf…¹ Áhættufjármunir og l…²
   <dbl> <chr>               <chr>                  <dbl>                  <dbl>
 1  2021 Reykjavíkurborg     A_hl…             176322020.              23656378.
 2  2021 Reykjavíkurborg     A_og…             687356705.              19562270.
 3  2021 Kópavogsbær         A_hl…              50426813                6645782 
 4  2021 Kópavogsbær         A_og…              72724186                3492671 
 5  2021 Seltjarnarnesbær    A_hl…               6426856                2438974 
 6  2021 Seltjarnarnesbær    A_og…               7904716                1753980 
 7  2021 Garðabær            A_hl…              32025217                2717438 
 8  2021 Garðabær            A_og…              37142377                3236263 
 9  2021 Hafnarfjarðarkaups… A_hl…              43677510                6140126 
10  2021 Hafnarfjarðarkaups… A_og…              60521291                5530969 
# ℹ 2,936 more rows
# ℹ abbreviated names: ¹​`Varanlegir rekstrarfjármunir`,
#   ²​`Áhættufjármunir og langtímakröfur`
# ℹ 25 more variables: `Skammtímakröfur á eigin fyrirtæki` <dbl>,
#   `Aðrir veltufjármunir` <dbl>, Veltufjármunir <dbl>, `Eigið fé` <dbl>,
#   Skuldbindingar <dbl>, Langtímaskuldir <dbl>, Skammtímaskuldir <dbl>,
#   `Skatttekjur án Jöfnunarsjóðs` <dbl>, `Framlag Jöfnunarsjóðs` <dbl>, …
Code
d <- d |> 
  select(
    ar, 
    sveitarfelag,
    hluti,
    heildarskuldir,
    eignir,
    tekjur = "Tekjur", 
    skatttekjur_an_jofnundarsjods = "Skatttekjur án Jöfnunarsjóðs",
    framlag_jofnunarsjods = "Framlag Jöfnunarsjóðs",
    gjold = "Gjöld", 
    afskriftir = "Afskriftir",
    fjarmagnslidir = "Fjármagnsliðir", 
    oreglulegir_lidir = "Óreglulegir liðir",
    rekstrarnidurstada = "Rekstrarniðurstaða",
    breyting_lifeyrisskuldbindinga = "Breyting lífeyrisskuldbindinga",
    afborganir_langtimalana = "Afborganir langtímalána",
    tekin_ny_langtimalan = "Tekin ný langtímalán",
    adrar_fjarmognunarhreyfingar = "Aðrar fjármögnunarhreyfingar",
    ny_fjarfesting = "Fjárfesting í varanlegum rekstrarfjármunum",
    eigid_fe = "Eigið fé", 
    veltufjarmunir = "Veltufjármunir", 
    skammtimakrofur_eigin_fyrirtaeki = "Skammtímakröfur á eigin fyrirtæki",
    handbaert_fe = "Aðrir veltufjármunir",
    skammtimaskuldir = "Skammtímaskuldir", 
    fjarfestingarhreyfingar = "Fjárfestingarhreyfingar", 
    nyjar_langtimaskuldir = "Tekin ný langtímalán",
    launagjold = "Laun og launatengd gjöld",
    veltufe = "Veltufé frá rekstri"
  )
Code
d <- d |> 
  group_by(sveitarfelag, ar, hluti) |> 
  summarise_at(
    vars(heildarskuldir:veltufe), 
    ~ 1000 * sum(.x)
  ) |> 
  ungroup()
Code
d <- d |> 
  mutate(
    hluti = fct_recode(
      hluti,
      "A-hluti" = "A_hluti",
      "A og B-hluti" = "A_og_B_hluti"
    )
  )
Code
gdrive_data <- read_sheet("https://docs.google.com/spreadsheets/d/1g4aY4ZDhB2NgvgqTwAS33NgVNbhkitcs3fJLQHWEi6E/edit#gid=0")
Code
d <- gdrive_data |> 
  mutate_at(
    vars(-ar, -sveitarfelag, -hluti),
    ~ 1000 * .x
  ) |> 
  mutate(
    gjold = gjold + afskriftir
  ) |> 
  bind_rows(
    d
  ) |> 
  arrange(
    ar, sveitarfelag, hluti
  )
Code
d <- d |> 
  inner_join(
    mannfjoldi,
    by = join_by(ar, sveitarfelag)
  )
Code
d <- d |>
  mutate(
    eiginfjarhlutfall = eigid_fe / eignir,
    framlegd = tekjur - gjold + afskriftir,
    framlegd_hlutf = framlegd / tekjur,
    handbaert_fe_per_ibui = handbaert_fe / mannfjoldi,
    heildarskuldir = heildarskuldir,
    launagjold_per_ibui = launagjold / mannfjoldi,
    launagjold_hlutf_gjold = launagjold / gjold,
    nettoskuldir = heildarskuldir - veltufjarmunir + skammtimakrofur_eigin_fyrirtaeki,
    nettoskuldir_hlutf_tekjur = nettoskuldir / tekjur,
    rekstrarnidurstada_hlutf = rekstrarnidurstada / tekjur,
    rekstur_3_ar = rekstrarnidurstada + lag(rekstrarnidurstada, 1) + lag(rekstrarnidurstada, 2),
    tekjur_3_ar = tekjur + lag(tekjur, 1) + lag(tekjur, 2),
    rekstur_3_ar_hlutf_tekjur = rekstur_3_ar / tekjur_3_ar,
    skattur_a_ibua = skatttekjur_an_jofnundarsjods / mannfjoldi,
    skuldahlutfall = 1 - eiginfjarhlutfall,
    skuldir_hlutf_tekjur = heildarskuldir / tekjur,
    skuldir_per_ibui = heildarskuldir / mannfjoldi,
    veltufe_hlutf_tekjur = veltufe / tekjur,
    veltufjarhlutfall = veltufjarmunir / skammtimaskuldir,
    veltufe_hlutf_afborganir = veltufe / afborganir_langtimalana,
    fjarf_nylan = tekin_ny_langtimalan - ny_fjarfesting,
    fjarfesting_hlutf_skuldir = fjarf_nylan / heildarskuldir,
    .by = c(sveitarfelag, hluti)
  )

names(d)
 [1] "ar"                               "sveitarfelag"                    
 [3] "hluti"                            "tekjur"                          
 [5] "gjold"                            "afskriftir"                      
 [7] "rekstrarnidurstada"               "skatttekjur_an_jofnundarsjóðs"   
 [9] "framlag_jofnunarsjods"            "launagjold"                      
[11] "eignir"                           "veltufjarmunir"                  
[13] "skammtimakrofur_eigin_fyrirtaeki" "eigid_fe"                        
[15] "skammtimaskuldir"                 "heildarskuldir"                  
[17] "veltufe"                          "handbaert_fe"                    
[19] "afborganir_langtimalana"          "tekin_ny_langtimalan"            
[21] "skatttekjur_an_jofnundarsjods"    "fjarmagnslidir"                  
[23] "oreglulegir_lidir"                "breyting_lifeyrisskuldbindinga"  
[25] "adrar_fjarmognunarhreyfingar"     "ny_fjarfesting"                  
[27] "fjarfestingarhreyfingar"          "nyjar_langtimaskuldir"           
[29] "mannfjoldi"                       "eiginfjarhlutfall"               
[31] "framlegd"                         "framlegd_hlutf"                  
[33] "handbaert_fe_per_ibui"            "launagjold_per_ibui"             
[35] "launagjold_hlutf_gjold"           "nettoskuldir"                    
[37] "nettoskuldir_hlutf_tekjur"        "rekstrarnidurstada_hlutf"        
[39] "rekstur_3_ar"                     "tekjur_3_ar"                     
[41] "rekstur_3_ar_hlutf_tekjur"        "skattur_a_ibua"                  
[43] "skuldahlutfall"                   "skuldir_hlutf_tekjur"            
[45] "skuldir_per_ibui"                 "veltufe_hlutf_tekjur"            
[47] "veltufjarhlutfall"                "veltufe_hlutf_afborganir"        
[49] "fjarf_nylan"                      "fjarfesting_hlutf_skuldir"       

Þróunargögn

Code
percent_vars <- c(
  "Eiginfjárhlutfall",
  "Framlegð sem hlutfall af tekjum",
  "Handbært fé á íbúa",
  "Launa- og launatengd gjöld sem hlutfall af útgjöldum",
  "Nettóskuldir sem hlutfall af tekjum",
  "Rekstrarniðurstaða sem hlutfall af tekjum",
  "Rekstrarniðurstaða undanfarinna 3 ára sem hlutfall af tekjum",
  "Skuldahlutfall",
  "Skuldir sem hlutfall af tekjum",
  "Veltufé frá rekstri sem hlutfall af tekjum",
  "Veltufjárhlutfall"
)

throun_data <- d |> 
  select(
    sveitarfelag,
    ar,
    hluti,
    # "Heildarskuldir" = heildarskuldir,
    # "Eignir" = eignir,
    # "Tekjur" = tekjur,
    # "Rekstrarniðurstaða" = rekstrarnidurstada,
    "Eiginfjárhlutfall" = eiginfjarhlutfall,
    "Framlegð sem hlutfall af tekjum" = framlegd_hlutf,
    "Handbært fé á íbúa" = handbaert_fe_per_ibui,
    "Launa- og launatengd gjöld" = launagjold_per_ibui,
    "Launa- og launatengd gjöld sem hlutfall af útgjöldum" = launagjold_hlutf_gjold,
    "Nettóskuldir sem hlutfall af tekjum" = nettoskuldir_hlutf_tekjur,
    "Rekstrarniðurstaða sem hlutfall af tekjum" = rekstrarnidurstada_hlutf,
    "Rekstrarniðurstaða undanfarinna 3 ára sem hlutfall af tekjum" = rekstur_3_ar_hlutf_tekjur,
    "Útsvar og fasteignaskattur á íbúa" = skattur_a_ibua,
    "Skuldahlutfall" = skuldahlutfall,
    "Skuldir sem hlutfall af tekjum" = skuldir_hlutf_tekjur,
    "Skuldir á íbúa" = skuldir_per_ibui,
    "Veltufé frá rekstri sem hlutfall af tekjum" = veltufe_hlutf_tekjur,
    "Veltufjárhlutfall" = veltufjarhlutfall
  ) |> 
  pivot_longer(
    c(-sveitarfelag, -ar, -hluti),
    names_to = "name",
    values_to = "y"
  ) |> 
  arrange(ar, hluti, sveitarfelag, name) |> 
  mutate(
    is_percent = ifelse(
      name %in% percent_vars,
      TRUE,
      FALSE
    )
  )

throun_data |> 
  write_parquet(
    "throun_data.parquet"
  )

Dreifingargögn

Code
percent_vars <- c(
  "Eiginfjárhlutfall",
  "Framlegð sem hlutfall af tekjum",
  "Handbært fé á íbúa",
  "Launa- og launatengd gjöld sem hlutfall af gjöldum",
  "Nettóskuldir sem hlutfall af tekjum",
  "Rekstrarniðurstaða sem hlutfall af tekjum",
  "Rekstrarniðurstaða undanfarinna 3 ára sem hlutfall af tekjum",
  "Skuldahlutfall",
  "Skuldir sem hlutfall af tekjum",
  "Veltufé frá rekstri sem hlutfall af tekjum",
  "Veltufjárhlutfall"
)

dreifing_data <- d |> 
  select(
    ar,
    sveitarfelag,
    hluti,
    # "Heildarskuldir" = heildarskuldir,
    # "Eignir" = eignir,
    # "Tekjur" = tekjur,
    # "Rekstrarniðurstaða" = rekstrarnidurstada,
    "Eiginfjárhlutfall" = eiginfjarhlutfall,
    "Framlegð sem hlutfall af tekjum" = framlegd_hlutf,
    "Handbært fé á íbúa" = handbaert_fe_per_ibui,
    "Launa- og launatengd gjöld á íbúa" = launagjold_per_ibui,
    "Launa- og launatengd gjöld sem hlutfall af gjöldum" = launagjold_hlutf_gjold,
    "Nettóskuldir sem hlutfall af tekjum" = nettoskuldir_hlutf_tekjur,
    "Rekstrarniðurstaða sem hlutfall af tekjum" = rekstrarnidurstada_hlutf,
    "Rekstrarniðurstaða undanfarinna 3 ára sem hlutfall af tekjum" = rekstur_3_ar_hlutf_tekjur,
    "Útsvar og fasteignaskattur á íbúa" = skattur_a_ibua,
    "Skuldahlutfall" = skuldahlutfall,
    "Skuldir sem hlutfall af tekjum" = skuldir_hlutf_tekjur,
    "Skuldir á íbúa" = skuldir_per_ibui,
    "Veltufé frá rekstri sem hlutfall af tekjum" = veltufe_hlutf_tekjur,
    "Veltufjárhlutfall" = veltufjarhlutfall
  ) |> 
  pivot_longer(
    c(-sveitarfelag, -ar, -hluti),
    names_to = "name",
    values_to = "y"
  ) |> 
  arrange(ar, hluti, sveitarfelag, name) |> 
  mutate(
    is_percent = ifelse(
      name %in% percent_vars,
      TRUE,
      FALSE
    )
  )

dreifing_data |> 
  write_parquet(
    "dreifing_data.parquet"
  )

dreifing_data
# A tibble: 34,076 × 6
      ar sveitarfelag      hluti        name                        y is_percent
   <dbl> <chr>             <chr>        <chr>                   <dbl> <lgl>     
 1  2002 Akraneskaupstaður A og B-hluti Eiginfjárhlutfall     6.03e-1 TRUE      
 2  2002 Akraneskaupstaður A og B-hluti Framlegð sem hlutfa…  7.06e-2 TRUE      
 3  2002 Akraneskaupstaður A og B-hluti Handbært fé á íbúa    1.42e+4 TRUE      
 4  2002 Akraneskaupstaður A og B-hluti Launa- og launateng…  5.53e-1 TRUE      
 5  2002 Akraneskaupstaður A og B-hluti Launa- og launateng…  1.71e+5 FALSE     
 6  2002 Akraneskaupstaður A og B-hluti Nettóskuldir sem hl…  1.09e+0 TRUE      
 7  2002 Akraneskaupstaður A og B-hluti Rekstrarniðurstaða …  3.35e-2 TRUE      
 8  2002 Akraneskaupstaður A og B-hluti Rekstrarniðurstaða … NA       TRUE      
 9  2002 Akraneskaupstaður A og B-hluti Skuldahlutfall        3.97e-1 TRUE      
10  2002 Akraneskaupstaður A og B-hluti Skuldir sem hlutfal…  1.25e+0 TRUE      
# ℹ 34,066 more rows

Viðmiðsgögn

Code
vidmid_data <- d |> 
  filter(
    ar >= 2010,
  ) |> 
  select(
    sveitarfelag, 
    ar, 
    hluti,
    nettoskuldir_obs = nettoskuldir_hlutf_tekjur, 
    rekstrarnidurstada_obs = rekstur_3_ar_hlutf_tekjur, 
    framlegd_obs = framlegd_hlutf, 
    veltufe_obs = veltufe_hlutf_tekjur,
    veltufjarhlutfall_obs = veltufjarhlutfall
  ) |> 
  mutate(
    framlegd_vidmid = nettoskuldir_obs/10,
    veltufe_vidmid = nettoskuldir_obs/20,
    rekstrarnidurstada_vidmid = 0,
    veltufjarhlutfall_vidmid = 1,
    nettoskuldir_vidmid = 1
  ) |> 
  pivot_longer(c(-sveitarfelag, -ar, -hluti), names_to = c("name", "type"), values_to = "value", names_sep = "_") |> 
  pivot_wider(names_from = type, values_from  = value) |> 
  mutate(
    diff = obs - vidmid,
    colour = diff > 0
  ) 

vidmid_data |> 
  write_parquet(
    "vidmid_data.parquet"
  )

vidmid_data
# A tibble: 7,330 × 8
   sveitarfelag         ar hluti        name           obs vidmid    diff colour
   <chr>             <dbl> <chr>        <chr>        <dbl>  <dbl>   <dbl> <lgl> 
 1 Akraneskaupstaður  2010 A og B-hluti nettoskul…  1.14   1       0.143  TRUE  
 2 Akraneskaupstaður  2010 A og B-hluti rekstrarn… -0.0693 0      -0.0693 FALSE 
 3 Akraneskaupstaður  2010 A og B-hluti framlegd    0.0971 0.114  -0.0173 FALSE 
 4 Akraneskaupstaður  2010 A og B-hluti veltufe     0.159  0.0572  0.102  TRUE  
 5 Akraneskaupstaður  2010 A og B-hluti veltufjar…  1.50   1       0.497  TRUE  
 6 Akraneskaupstaður  2010 A-hluti      nettoskul…  1.18   1       0.182  TRUE  
 7 Akraneskaupstaður  2010 A-hluti      rekstrarn… -0.0740 0      -0.0740 FALSE 
 8 Akraneskaupstaður  2010 A-hluti      framlegd    0.105  0.118  -0.0131 FALSE 
 9 Akraneskaupstaður  2010 A-hluti      veltufe     0.166  0.0591  0.106  TRUE  
10 Akraneskaupstaður  2010 A-hluti      veltufjar…  1.42   1       0.420  TRUE  
# ℹ 7,320 more rows
Code
# d <- d |>
#   mutate(
#     eiginfjarhlutfall = eigid_fe / eignir,
#     framlegd = tekjur - gjold + afskriftir,
#     framlegd_hlutf = framlegd / tekjur,
#     handbaert_fe_per_ibui = handbaert_fe / mannfjoldi,
#     heildarskuldir = heildarskuldir,
#     hlutf_jofnunarsjods_skottum = framlag_jofnunarsjods / (framlag_jofnunarsjods + skatttekjur_an_jofnundarsjods),
#     jofnunarsjodur_a_ibua = framlag_jofnunarsjods / mannfjoldi,
#     launagjold_per_ibui = launagjold / mannfjoldi,
#     launagjold_hlutf_gjold = launagjold / gjold,
#     utgjold_jofnunarsjod = (0.0077 + 0.0099) * tekjur,
#     netto_jofnunarsjod = framlag_jofnunarsjods - utgjold_jofnunarsjod,
#     netto_jofnunarsjod_per_ibui = netto_jofnunarsjod / mannfjoldi,
#     nettoskuldir = heildarskuldir - veltufjarmunir + skammtimakrofur_eigin_fyrirtaeki,
#     nettoskuldir_hlutf_tekjur = nettoskuldir / tekjur,
#     rekstrarnidurstada_hlutf = rekstrarnidurstada / tekjur,
#     rekstur_3_ar = rekstrarnidurstada + lag(rekstrarnidurstada, 1) + lag(rekstrarnidurstada, 2),
#     tekjur_3_ar = tekjur + lag(tekjur, 1) + lag(tekjur, 2),
#     rekstur_3_ar_hlutf_tekjur = rekstur_3_ar / tekjur_3_ar,
#     skattur_a_ibua = skatttekjur_an_jofnundarsjóðs / mannfjoldi,
#     skuldahlutfall = 1 - eiginfjarhlutfall,
#     skuldir_hlutf_tekjur = heildarskuldir / tekjur,
#     skuldir_per_ibui = heildarskuldir / mannfjoldi,
#     timi_borga_skuldir = nettoskuldir / veltufe,
#     timi_borga_skuldir = pmax(timi_borga_skuldir, 0),
#     timi_borga_skuldir = ifelse(veltufe <= 0, 1e5, timi_borga_skuldir),
#     veltufe_hlutf_tekjur = veltufe / tekjur,
#     veltufjarhlutfall = veltufjarmunir / skammtimaskuldir
#   ) |>
#   inner_join(
#     visitala,
#     by = "ar"
#   ) |>
#   group_by(ar) |>
#   mutate(hlutf_jofnunarsjod_utgjold = utgjold_jofnunarsjod / sum(utgjold_jofnunarsjod)) |>
#   ungroup() |>
#   arrange(ar, sveitarfelag, hluti) |>
#   group_by(sveitarfelag, hluti) |>
#   mutate(
#     skuldaaukning_2021 = ifelse(sveitarfelag != "Múlaþing" & ar >= 2018, (heildarskuldir / cpi) / (heildarskuldir[ar == 2018] / cpi[ar == 2018]) - 1, NA),
#     skuldaaukning = heildarskuldir / heildarskuldir[ar == max(ar)],
#     rekstrarnidurstada_kjortimabil = sum(rekstrarnidurstada * (ar >= 2018)),
#     tekjur_kjortimabil = sum(tekjur * (ar >= 2018)),
#     rekstrarnidurstada_hlutf_kjortimabil = rekstrarnidurstada_kjortimabil / tekjur_kjortimabil,
#     rekstrarnidurstada_per_ibui_kjortimabil = rekstrarnidurstada_kjortimabil / mean(mannfjoldi[ar %in% 2018:2021])
#   ) |>
#   ungroup()