# Nødvendige pakker

knitr::opts_chunk$set(echo = TRUE)
library(tidyverse)
library(lubridate)
library(navR)
library(kableExtra)
# Data og forutsetninger
regnskap <- navR::regnskap %>% filter( dato < lubridate::ymd("2021-10-01")) %>% arrange( desc(dato)) %>% dplyr::rename( pris = g)
mottakere <- navR::mottakere %>% filter( dato < lubridate::ymd("2021-10-01"))%>% arrange( desc(dato))

# Pris
g_ifjor    <- 100853
g_iar      <- 104716
g_neste_ar <- 108287
# Budsjettet
bud <- navR::Budsjett$new(     name = "Kap. 2020 Enslig mor eller far",
                               kapittelpost = "2620.70",
                               name_nytt_anslag = "Oktober 2021",
                               periode = 202108,
                               dfRegnskap = regnskap,
                               dfMottakere =  mottakere %>% mutate(kategori = "post70"),
                               pris_gjeldende = g_21,
                               PRIS_VEKST = (g_21/g_20)
                          )
regnskap_ifjor <- 
  navR::Anslag$new(
        name = str_c("Regnskap " ),
        ar = lubridate::year(bud$giPeriode())-1,
        regnskap_ifjor = bud$giRegnskapstall( ar_til_bake = 2),
        volumvekst = (1 - 0.029),
        vekst_ytelse = (1-0.014),
        prisvekst = 1.020,
        tiltak = (1 - 0.0)
    )


forrige_iar <-
    navR::Anslag$new(
        name = "Anslag fra 21.7.21",
        ar = 2021,
        regnskap_ifjor = bud$giRegnskapstallIfjor(),
        volumvekst = (1 - 0.00),
        vekst_ytelse = (1-0.015),
        prisvekst = 1.0383,
        tiltak = (1 - 0.0223)
    )

vedtatt_iar <-
    navR::Anslag$new(
        name = "Anslag fra 21.3.21",
        ar = 2021,
        regnskap_ifjor = bud$giRegnskapstallIfjor(),
        volumvekst = (1 + 0.0069),
        vekst_ytelse = (1-0.005),
        prisvekst = 1.0393,
        tiltak = (1 - 0.02187)
    )

nytt_iar <-
    navR::Anslag$new(
        name = "NAVs nye anslag",
        ar = 2021, #(bud$giAr()+1)
        regnskap_ifjor = bud$giRegnskapstallIfjor(),
        volumvekst = (1 + 0.015),
        vekst_ytelse = (1-0.026),
        prisvekst = 1.0383,
        tiltak = (1 - 0.0221)
    )

nytt_neste_ar <-
    navR::Anslag$new(
        name = "NAVs nye anslag 2022",
        ar = 2022,
        regnskap_ifjor = nytt_iar$giSumAnslag(),
        volumvekst = (1 - 0.005),
        vekst_ytelse = (1-0.00),
        prisvekst = 1.0341,
        tiltak = (1 - 0.0145)
    )

forrige_neste_ar <-
    navR::Anslag$new(
        name = "NAVs forrige anslag for 2022",
        ar = 2022,
        regnskap_ifjor = forrige_iar$giSumAnslag(),
        volumvekst = (1 - 0.0),
        vekst_ytelse = (1-0.00),
        prisvekst = 1.0341,
        tiltak = (1 - 0.0145)
    )
# 
tabell1 <- tibble( name  = c("År",
                             "Vedtatt budsjett",
                             forrige_iar$giAnslagNavn(),
                             nytt_iar$giAnslagNavn(),
                             "Endring fra vedtatt budjsett",
                             "Endring fra forrige anslag"),
                   value = c(2021*10^6,
                             vedtatt_iar$giSumAnslag() %>% navR::avrund_anslag( i_mill_kr = F),
                             forrige_iar$giSumAnslag() %>% navR::avrund_anslag( i_mill_kr = F),
                             nytt_iar$giSumAnslag()    %>% navR::avrund_anslag( i_mill_kr = F),
                             nytt_iar$giSumAnslag() %>% navR::avrund_anslag( i_mill_kr = F)  - vedtatt_iar$giSumAnslag() %>% navR::avrund_anslag( i_mill_kr = F),
                             nytt_iar$giSumAnslag() %>% navR::avrund_anslag( i_mill_kr = F) -  forrige_iar$giSumAnslag() %>% navR::avrund_anslag( i_mill_kr = F) 
                             ) 
        ) %>% 
    mutate( value = value/10^6 %>% round( digits = 0)) %>% 
    pivot_wider( names_from = name, values_from = value)
# Regnskapstabell
# Feil pris


tabell2 <- bud$lagRegnskapTabell2( anslag1 = nytt_iar ,
                                   anslag2 = nytt_neste_ar,
                                   printversjon = F)  %>% 
    mutate_at( vars( regnskap ,endring_regnskap,  regnskap_fast, endring_regnskap_f) , function(x) x/10^6) %>% 
    mutate_at( vars(regnskap,  regnskap_fast) , function(x) ifelse(.$kategori == "Anslag", round(x, -1), x))


tabell2_2 <- bud$lagRegnskapTabell2( anslag1 = nytt_iar ,
                                   anslag2 = nytt_neste_ar,
                                   printversjon = T)  %>% 
    mutate_at( vars(regnskap,  regnskap_fast) , function(x) ifelse(.$kategori == "Anslag", round(as.numeric(x), -1), x))

names( tabell2_2 ) <- c(names(tabell2)[1:3], "Endring", "Vekst\npst", "Pris", paste0("Mill. kr\n","2021-G"), "Endring\nregnskap fast", "vekst faste kr\npst") 


  # rename( 
  #   Endring = endring_regnskap,
  #   vekst   = regnskap_vekst,
  #   `Mill. kr \ni 2021-G` = regnskap_fast,
  #   `Endring regnskap\n 2021-G`  = endring_regnskap_f,
  #   `vekst faste kr` = regnskap_fast_vekst
  #   )  
tabell3 <- bud$lagTabellMndUtviklingRegnskap()


tabell3 <- tabell3 %>%
    ungroup() %>% 
    mutate_if( is.numeric, function(x) ifelse( abs(x) > 1, round(x/10^6, digits = 0) %>% format( big.mark = " "), round(x, digits = 4 )*100 )) %>% 
    select(-forrige, -naa) 

# Legg til år
names(tabell3) <- c(
    str_c("Periode\nFra og med – til og med"),
    str_c("Prosentvis vekst i \nregnskapstallene målt i fast G"),
    str_c( "Budsjettanslag for ", "2021", " basert på\ntilsvarende vekst. Mill. kroner"),
    str_c( "Budsjettanslag for ", "2022", " basert på\ntilsvarende vekst. Mill. kroner")
)
tabell4_mnd_utvikling_mottakere <- bud$lagTabellMndUtviklingMottakere() %>% ungroup()

tabell4_mnd_utvikling_mottakere_2 <-tabell4_mnd_utvikling_mottakere %>%
    mutate_if( is.numeric, function(x) ifelse( abs(x) > 1, round(x/1, digits = 0) %>% format( big.mark = " "), round(x, digits = 4 )*100 )) %>% 
    select(-forrige, -naa)


names(tabell4_mnd_utvikling_mottakere_2) <- c(
    str_c("Periode\nFra og med – til og med"),
    "Prosentvis vekst i \nantall motakere året før",
    "Antall år 2021\nbasert på vekst mnd.",
    str_c( "Budsjettanslag for\n", "2022", " basert på vekst mnd.")
)


gj_ytelse <-
    navR::AvgMottakereYtelse$new(
        name = "test",
        dfMottakere = mottakere,
        dfRegnskap = regnskap ,
        gj_pris = g_21,
        ANSLAG_AR = bud$giPeriode() %>% lubridate::year(),
        ANSLAG_MND_PERIODE = bud$giPeriode() %>% lubridate::month()
    )

tabell5_gj_ytelse <- gj_ytelse$lagTabell2( nested_liste_anslag = list( anslag =  c(nytt_iar, nytt_neste_ar), Forrige = c(forrige_iar, forrige_neste_ar))) %>% 
  mutate_if( is.numeric, function(x) ifelse( abs(x) > 1, round(x/1, digits = 0) %>% format( big.mark = " "), round(x, digits = 4 )*100 )) %>% 
  rename(
    `År` = ar, 
    Antall = antall, 
    Endring = antall_endring,
    `Gj.ytelse` = ytelse,
    `Endring ytelse` = ytelse_endring
  )
forrige_iar$setPris( pris = g_21)
nytt_iar$setPris( pris = g_21)

forrige_neste_ar$setPris( pris =  108182)
nytt_neste_ar$setPris( pris = 108182)

endring_anslag_iar_fra_sist <- navR::Dekomponer$new( anslag1 = forrige_iar, anslag2 = nytt_iar,  antall_1 = 10223 , antall_2 = 10327  )$giDekomponert()

endring_anslag_neste_ar_fra_sist <- navR::Dekomponer$new( anslag1 = forrige_neste_ar,
                                                     anslag2 = nytt_neste_ar,
                                                     antall_1 = 10066 ,
                                                     antall_2 = 10119  )$giDekomponert()

Arbeids- og velferdsdirektoratets tilrådning

list_anslag <- list(regnskap_ifjor, vedtatt_iar, forrige_iar, nytt_iar)

# Hvordan får jeg gjort om 2021 til automatiser?
tabell_hoved1 <- tibble(   `2021`            = c( str_c("Post ", str_sub(bud$giKapittelpost(), start = 6, end = 7) )),
                            navn             = map_chr( list_anslag, function(x) x$giAnslagNavn() )) %>% 
  mutate(anslag = map2_dbl( list_anslag, navn, function(x,y){ if(y != regnskap_ifjor$giAnslagNavn() ){
                           (x$giSumAnslag()/10^6) %>% navR::anslag_avrund( i_mill_kr = T)} else { (x$giSumAnslag()/10^6)} }  ) 
                         ) %>%
  pivot_wider( names_from =  navn, values_from = anslag) %>% 
  mutate( `Endring fra vedtatt` =  ( nytt_iar$giSumAnslag() %>% navR::anslag_avrund( ) - vedtatt_iar$giSumAnslag() %>% navR::anslag_avrund() )/10^6, 
          `Endring fra forrige` =  ( nytt_iar$giSumAnslag() %>% navR::anslag_avrund( ) - forrige_iar$giSumAnslag() %>% navR::anslag_avrund() )/10^6 
          ) # %>% 
### Her kommer summert pluss under


knitr::kable(format = "latex",booktabs = T, escape = F,tabell_hoved1, digits = 0,
             col.names = linebreak( names(tabell_hoved1) ),
             align = rep("r", times = 4)
             ) %>% 
  kableExtra::kable_styling( latex_options = c("HOLD_position","striped"), stripe_index =  c(1), font_size = 8, position = "left" ) 

\hspace{4cm}

hovedtabell2 <- c( forrige_neste_ar$giAnslagNavn(), paste0(nytt_neste_ar$giAnslagNavn(), " for ", nytt_neste_ar$giAr() )  ) 

list_anslag_neste_ar <- list( forrige_neste_ar, nytt_neste_ar)

tabell_hoved2 <-  tibble( `2022` = c(str_c("Post ", str_sub(bud$giKapittelpost(), start = 6, end = 7) )),
        navn   =  map_chr( list_anslag_neste_ar, function(x) x$giAnslagNavn() )
        ) %>%
   mutate(anslag = map2_dbl( list_anslag_neste_ar, navn, function(x,y){ if(y != regnskap_ifjor$giAnslagNavn() ){
                           (x$giSumAnslag()/10^6) %>% navR::anslag_avrund( i_mill_kr = T)} else { (x$giSumAnslag()/10^6)} }  ) 
                         ) %>% 
  pivot_wider( names_from = navn, values_from = anslag) %>% 
  mutate( `Endring fra sist anslag` = ( nytt_neste_ar$giSumAnslag() %>% navR::anslag_avrund( ) - forrige_neste_ar$giSumAnslag() %>% navR::anslag_avrund() )/10^6 )



knitr::kable(tabell_hoved2, 
             format = "latex",booktabs = T, escape = F, digits = 0,
             col.names = linebreak( names(tabell_hoved2) ),
             align = rep("r", times = 4)
             ) %>% 
  kableExtra::kable_styling( latex_options = c("HOLD_position","striped"), stripe_index =  c(1), font_size = 8, position = "left" ) 

\hspace{4cm}

Post 70 - beskrivelse av anslagene

knitr::kable(format = "latex",booktabs = T, escape = F, 
             tabell1, 
             digits = 0 )%>% 
    kable_styling( latex_options = c("HOLD_position","striped", "scale_down"), stripe_index =  c(1), font_size = 8 ) 

  # mutate_all(linebreak) %>%
  #  kable(format = "latex", booktabs = T, escape = F,
  #     col.names = linebreak( names(tabell_forutsetning) ), align = c("l", rep("r", times = 4)) ) %>% 
  #   kable_styling( latex_options = c("HOLD_position", "striped", "scale_down"), stripe_index =  c(1,3,5,7), font_size = 6 )  
endring_fra_forrige <- ((nytt_iar$giSumAnslag()- forrige_iar$giSumAnslag() )/10^6)
endring_tekst <- ifelse(endring_fra_forrige > 0, "høyere", "lavere")
endring_fra_forrige_round <- round( endring_fra_forrige, digits = 1) 

endring_fra_vedtatt <- ((nytt_iar$giSumAnslag()- vedtatt_iar$giSumAnslag() )/10^6)
endring_tekst_vedtatt <- ifelse(endring_fra_vedtatt > 0, "høyere", "lavere")

Arbeids- og velferdsdirektoratet tilrår et anslag for 2020 på r round( nytt_iar$giSumAnslag()/10^6 , digits = 0) %>% format( big.mark = " " ) mill. kroner. Dette er r format(abs(endring_fra_forrige_round), big.mark = " ") mill. kroner r endring_tekst enn forrige anslag og r format(abs(endring_fra_vedtatt), digits = 0) mill. kroner r endring_tekst_vedtatt enn vedtatt budsjett. For 2021 tilrås et anslag på r round( nytt_neste_ar$giSumAnslag()/10^6 , digits = 0) %>% format( big.mark = " " ) mill. kroner.

De nye anslagene er basert på r navR::gi_mnd_navn(bud$giPeriode() )-tall.

1.1 Endringer og dekomponeringer av utgiftsanslaget$\$
$\$

Endringer i r nytt_iar$giAnslagNavn() for r nytt_iar$giAr() og r nytt_neste_ar$giAr() sammenlignet med forrige anslag:

r nytt_iar$giAr():\newline - Endret volumvekst har medført en anslagsendring for r nytt_iar$giAr()r endring_anslag_iar_fra_sist$endring_mill[endring_anslag_iar_fra_sist$tekst == "endret volum"] %>% format(digits = 0) mill. kroner.
- Endret underliggende utvilling pris har medført en anslagsendring på r endring_anslag_iar_fra_sist$endring_mill[endring_anslag_iar_fra_sist$tekst == "effekt av pris"] mill. kroner.
- Endret underliggende utvilling i gjennomsnittlig ytelse har medført en anslagsendring på r endring_anslag_iar_fra_sist$endring_mill[endring_anslag_iar_fra_sist$tekst == "snitt_beløp"] %>% format(digits = 0) mill. kroner.\newline - Samlet anslagendring for r nytt_iar$giAr() er r endring_anslag_iar_fra_sist$endring_mill[endring_anslag_iar_fra_sist$tekst == "totalt"] %>% format(digits = 0) mill. kroner.

r nytt_neste_ar$giAr():\newline - Endret volumvekst har medført en anslagsendring for r nytt_neste_ar$giAr()r endring_anslag_neste_ar_fra_sist$endring_mill[endring_anslag_neste_ar_fra_sist$tekst == "endret volum"] %>% format(digits = 0) mill. kroner.
- Endret underliggende utvilling pris har medført en anslagsendring på r endring_anslag_neste_ar_fra_sist$endring_mill[endring_anslag_neste_ar_fra_sist$tekst == "effekt av pris"] mill. kroner.
- Endret underliggende utvilling i gjennomsnittlig ytelse har medført en anslagsendring på r endring_anslag_neste_ar_fra_sist$endring_mill[endring_anslag_neste_ar_fra_sist$tekst == "snitt_beløp"] %>% format(digits = 0) mill. kroner.\newline - Samlet anslagendring for r nytt_neste_ar$giAr() er r endring_anslag_neste_ar_fra_sist$endring_mill[endring_anslag_neste_ar_fra_sist$tekst == "totalt"] %>% format(digits = 0) mill. kroner.

\newpage

1.2 Regnskapsutvikling

# Denne må endre navn variabler

tabell2_2 %>% 
  mutate_all(linebreak) %>%
  knitr::kable( format = "latex" , booktabs = T, escape = F, col.names = linebreak( names(tabell2_2) ), align = rep("r", times = 9) ) %>%  
  kable_styling( latex_options = c("HOLD_position","striped", "scale_down"), stripe_index =  c(1,3,5,7,9,11), font_size = 4 )  



fra_i_fjor <- (nytt_iar$giSumAnslag()/10^6- tabell2$regnskap[tabell2$ar == "2020"])

fra_i_fjor_i_tekst <- ifelse(fra_i_fjor > 0, "høyere", "lavere")

Her kan man bruke informasjon fra tabellen over. Eks. regnskapstallene for året r nytt_iar$giAr()-1 er r tabell2$regnskap[tabell2$ar == "2020"] %>% format(digits = 1), som er r abs(fra_i_fjor) %>% format(digits = 1) mill. kroner r fra_i_fjor_i_tekst enn anslag for 2021.

Tabell 3: Regnskapstall basert på månedsutvikling, samme periode i fjor.

tabell3 %>%
   mutate_all(linebreak) %>%
   kable(format = "latex", booktabs = T, escape = F,
      col.names = linebreak( names(tabell3) ), align = "lc" ) %>% 
    kable_styling( latex_options = c("HOLD_position","striped", "scale_down"), stripe_index =  c(1,3,5,7,9,11) )  


# knitr::kable("latex",booktabs = T, escape = F, tabell3,  col.names = linebreak( c("Item\n(Name)", "Value\n(Number)", "En", "To"), align = "c"),align = "c")  


# kbl( tabell3 , booktabs = T, linesep = "" , caption = "Dette er tabellen som viser regnskapsutvikling, 3 til 12 måned\nsammenliknet med fjoråret.",
#     col.names = linebreak(c("Item\n(Name)", "Value\n(Number)","Value\n(Number)","Value\n(Number)"), align = "c") ) %>% 
#     kable_styling( latex_options = c("striped"), stripe_index =  c(1,3) )    

Tabell 4: Antall mottakere basert på månedsutvikling, samme periode i fjor.

tabell4_mnd_utvikling_mottakere_2 %>%
   mutate_all(linebreak) %>%
   kable(format = "latex", booktabs = T, escape = F, col.names = linebreak( names(tabell4_mnd_utvikling_mottakere_2) ), align = rep("c", times = ncol(tabell4_mnd_utvikling_mottakere_2) ) ) %>% 
    kable_styling( latex_options = c("HOLD_position","striped", "scale_down"), stripe_index =  c(1,3,5,7,9,11) ,font_size = 6)  

1.3 Forutsetninger og anslag

Tabell 5: Forutsetning anslag for 2021.

endre_tekst <- function( df) { df %>% mutate( tekst = case_when( str_detect(tekst, "regnskap")  ~ "Regnskap",
                             str_detect(tekst, "sum")  ~ "Sum",
                             T ~ tekst
                             )) }

tabell_forutsetning <- tibble( anslag = list( regnskap_ifjor,
                                              vedtatt_iar,
                                              nytt_iar
                                              ) 
                               ) %>% 
  mutate( anslag_navn = map(anslag, ~str_c(.x$giAnslagNavn()," ",.x$giAr() ) ) ) %>% 
  mutate( anslag = map(anslag, ~endre_tekst(.x$giDfAnslag() )),
          anslag = map(anslag, ~.x %>% mutate(prosent = ifelse( tekst == "Sum", as.numeric(prosent)*100, prosent),
                                              tall = format( tall, big.mark = " ", digits = 0),
                                              prosent = format( prosent, digits = 1)))
          ) %>% 
  unnest(cols = c(anslag_navn, anslag) ) %>%
  pivot_wider( names_from = anslag_navn, values_from = c(prosent,tall) ) %>% 
  select(tekst, 2,5,3,6, 4, 7)

names(tabell_forutsetning) <- map_chr( names(tabell_forutsetning) , function(x)  str_replace(x, pattern = "_", "\n") %>% str_to_sentence( ))



tabell_forutsetning %>% 
  mutate_all(linebreak) %>%
   kable(format = "latex",
         booktabs = T,
         escape = F,
         col.names = linebreak( names(tabell_forutsetning) ), align = c("l", rep("r", times = 7) ) ) %>% 
    kable_styling( position = "left",
      latex_options = c("HOLD_position", "striped", "scale_down"), stripe_index =  c(1,3,5,7), font_size = 6 )  

Tabell 6: Forutsetning anslag for 2021.

tabell_forutsetning_neste_ar <- tibble( anslag = list( forrige_neste_ar,
                                                       nytt_neste_ar
                                                      ) 
                               ) %>% 
  mutate( anslag_navn = map(anslag, ~str_c( .x$giAnslagNavn() ) ) ) %>% 
  mutate( anslag = map(anslag, ~endre_tekst(.x$giDfAnslag() )),
          anslag = map(anslag, ~.x %>% mutate(prosent = ifelse( tekst == "Sum", as.numeric(prosent)*100, prosent),
                                              tall = format( tall, big.mark = " ", digits = 0),
                                              prosent = format( prosent, digits = 1)))
          ) %>% 
  unnest(cols = c(anslag_navn, anslag) ) %>%
  pivot_wider( names_from = anslag_navn, values_from = c(prosent,tall) ) %>% 
  select(tekst, 2,4,3,5)

names(tabell_forutsetning_neste_ar) <- map_chr( names(tabell_forutsetning_neste_ar) , function(x)  str_replace(x, pattern = "_", "\n") %>% str_to_sentence( ))



tabell_forutsetning_neste_ar %>% 
  mutate_all(linebreak) %>%
   kable(format = "latex",
         booktabs = T,
         escape = F,
         col.names = linebreak( names(tabell_forutsetning_neste_ar) ), align = c("l", rep("r", times = 5) ) ) %>% 
    kable_styling( position = "left",
      latex_options = c("HOLD_position", "striped", "scale_down"), stripe_index =  c(1,3,5,7), font_size = 6 )  

1.4 Gjennomsnittlig ytelse og antall mottakere

Tabell 6: Antall mottakere og gjennomsnittlig ytelse.

tabell5_gj_ytelse %>% 
  kable(format = "latex",
         booktabs = T,
         escape = F ) %>% 
    kable_styling( position = "left",
      latex_options = c("HOLD_position", "striped", "scale_down"), stripe_index =  c(1,3,5), font_size = 4 
      )  


eal024/navR documentation built on Jan. 29, 2024, 4:36 p.m.