Attribute VB_Name = "a07_Retirement_Decision"
Option Explicit
'*************************************************************************************
'*** This module contains subroutines that simulates the retirement decision.
'*** There are two versions of all subroutines - standard version and BabyBoom version.
'*** A conditional compilation is performed that uses the BabyBoom version if the
'*** conditional compilation constant BBPens (see Projekt->Properties->Make) equals 1
'*** and otherwise the standard version. TP050222
'*************************************************************************************

#If BBPens = 1 Then


'******* a07_Retirement_Decision - Calculates endogenous retirement age *******

'******* THIS MODULE IMPLEMENT THE BABY-BOOM VERSION OF THE PENSION DECISION ********

' Endogenous pension decision is relevant for individuals in sector 2,3, and 4
' in age groups 60-65. (changed by ME 050520)
' For blue collars (sector=1) we do not allow for early retirement.
' For individuals aged 65 (or older) we force retirement.
' (ME 041008)

Sub Pension_Decision(ByVal indnr As Long)
    Dim status As Byte
    Dim y As Double
    status = 0
    ' There are a small number of individuals marked as working (status=8)
    ' who has no average income over the last 5 years. These individuals do not
    ' fit the retirement model as this is based on the ratio between SSW
    ' and average income. Here we construct a "fix-up" such that these individuals
    ' do not retire before age 65.
    If f_avg_income(indnr) = 0 Then
        y = 0
'    ElseIf i_sector(indnr) = 1 And i_age(indnr) < 65 Then 'Blue collar workers are not allowed for early retirement
'        y = 0
'    ElseIf i_sector(indnr) = 1 And i_age(indnr) > 64 Then 'Blue collar workers are forced to retire at age 65
'        y = 1
    ElseIf i_age(indnr) > 64 Then ' Force retirement at age 65
        y = 1
    Else
        y = Retirement_Prob_BB(indnr)
    End If
            
    '-- Only assign a value to i_status if the individual retires!
    Dim slump As Double
    slump = Rnd()
    If slump < y Then
        status = 2
        i_ap_pensmonth(indnr) = (i_age(indnr) - 65) * 12
    End If
    If i_age(indnr) >= 65 And status <> 2 Then
        status = 8
    End If
    i_status(indnr) = status
    
End Sub

' Babyboom retirement probabilities
Public Function Retirement_Prob_BB(ByVal indnr As Long) As Single ' Estimates are based on LINDA 1992--2000 ' We use an extended sample where sector affiliation is imputed for missing values ' Blue collars are allowed to retire eraly, but not to receive eraly retirement program offers. ' If a blue collar retires early, they must do so using the public pension system only. ' Estimates are separate for females (F) and males (M). ' // Table created at :24-11-2005 13:43:18 by Table-class (build:050822) (c) Matias Eklf 2005 ' TABLE FEMALES MALES ' -----------------+---------------+---------------+ ' XConstant | -16.815*** | -6.390*** | ' | (1.073)| (0.939)| ' | [-0.226]| [-0.157]| ' -----------------+---------------+---------------+ ' XNPV_ERP_Q | 0.785*** | 0.087 | ' | (0.078)| (0.064)| ' | [0.011]| [0.002]| ' -----------------+---------------+---------------+ ' XACC_ERP_Q | -2.834*** | -3.258*** | ' | (0.383)| (0.413)| ' | [-0.038]| [-0.080]| ' -----------------+---------------+---------------+ ' Xmid_educ | 0.966*** | 0.410*** | ' | (0.133)| (0.102)| ' | [0.013]| [0.010]| ' -----------------+---------------+---------------+ ' Xhigh_edu | 0.917*** | 0.934*** | ' | (0.153)| (0.159)| ' | [0.012]| [0.023]| ' -----------------+---------------+---------------+ ' Xspouse | -0.625*** | -0.222** | ' | (0.135)| (0.094)| ' | [-0.008]| [-0.005]| ' -----------------+---------------+---------------+ ' Xspouse_retired | 0.475*** | 0.254*** | ' | (0.112)| (0.088)| ' | [0.006]| [0.006]| ' -----------------+---------------+---------------+ ' Xborn_abr | -0.213 | -0.364** | ' | (0.288)| (0.179)| ' | [-0.003]| [-0.009]| ' -----------------+---------------+---------------+ ' X1(year=1994) | 0.757*** | 0.289** | ' | (0.154)| (0.121)| ' | [0.010]| [0.007]| ' -----------------+---------------+---------------+ ' X1(year=1995) | 0.949*** | 0.098 | ' | (0.170)| (0.130)| ' | [0.013]| [0.002]| ' -----------------+---------------+---------------+ ' X1(year=1996) | 1.118*** | 0.175 | ' | (0.173)| (0.129)| ' | [0.015]| [0.004]| ' -----------------+---------------+---------------+ ' X1(year=1997) | 1.394*** | 0.420*** | ' | (0.181)| (0.140)| ' | [0.019]| [0.010]| ' -----------------+---------------+---------------+ ' X1(year=1998) | 1.037*** | 0.215 | ' | (0.179)| (0.138)| ' | [0.014]| [0.005]| ' -----------------+---------------+---------------+ ' X1(year=1999) | 1.299*** | 0.383*** | ' | (0.175)| (0.147)| ' | [0.017]| [0.009]| ' -----------------+---------------+---------------+ ' X1(age=61) | 1.931*** | 1.207*** | ' | (0.166)| (0.163)| ' | [0.026]| [0.030]| ' -----------------+---------------+---------------+ ' X1(age=62) | 2.660*** | 1.332*** | ' | (0.221)| (0.214)| ' | [0.036]| [0.033]| ' -----------------+---------------+---------------+ ' X1(age=63) | 3.259*** | 1.290*** | ' | (0.271)| (0.243)| ' | [0.044]| [0.032]| ' -----------------+---------------+---------------+ ' X1(age=64) | 5.228*** | 1.796*** | ' | (0.315)| (0.277)| ' | [0.070]| [0.044]| ' -----------------+---------------+---------------+ ' WConstant | -1.853*** | -2.020*** | ' | (0.138)| (0.113)| ' | [0.000]| [0.000]| ' -----------------+---------------+---------------+ ' Wqualw | 0.023 | 0.019** | ' | (0.015)| (0.008)| ' | [0.000]| [0.000]| ' -----------------+---------------+---------------+ ' Wmid_educ | 0.228*** | 0.127** | ' | (0.063)| (0.064)| ' | [0.000]| [0.000]| ' -----------------+---------------+---------------+ ' Whigh_edu | 0.296*** | 0.161** | ' | (0.076)| (0.073)| ' | [0.000]| [0.000]| ' -----------------+---------------+---------------+ ' Wborn_abr | -0.044 | -0.136 | ' | (0.140)| (0.138)| ' | [0.000]| [0.000]| ' -----------------+---------------+---------------+ ' W1(isectnum=2) | 0.144* | 0.033 | ' | (0.082)| (0.062)| ' | [0.000]| [0.000]| ' -----------------+---------------+---------------+ ' W1(isectnum=3) | 0.033 | 0.185** | ' | (0.071)| (0.077)| ' | [0.000]| [0.000]| ' -----------------+---------------+---------------+ ' W1(isectnum=4) | -9000000000.000*** | -9000000000.000*** | ' | (0.000)| (0.000)| ' | [0.000]| [0.000]| ' -----------------+---------------+---------------+ ' W1(year=1994) | -0.562*** | -0.438*** | ' | (0.099)| (0.099)| ' | [0.000]| [0.000]| ' -----------------+---------------+---------------+ ' W1(year=1995) | -0.520*** | -0.302*** | ' | (0.095)| (0.097)| ' | [0.000]| [0.000]| ' -----------------+---------------+---------------+ ' W1(year=1996) | -0.637*** | -0.254*** | ' | (0.097)| (0.092)| ' | [0.000]| [0.000]| ' -----------------+---------------+---------------+ ' W1(year=1997) | -0.248*** | -0.233*** | ' | (0.084)| (0.089)| ' | [0.000]| [0.000]| ' -----------------+---------------+---------------+ ' W1(year=1998) | -0.368*** | -0.326*** | ' | (0.087)| (0.090)| ' | [0.000]| [0.000]| ' -----------------+---------------+---------------+ ' W1(year=1999) | -0.620*** | -0.323*** | ' | (0.091)| (0.087)| ' | [0.000]| [0.000]| ' -----------------+---------------+---------------+ ' W1(age=61) | 0.459*** | 0.476*** | ' | (0.083)| (0.070)| ' | [0.000]| [0.000]| ' -----------------+---------------+---------------+ ' W1(age=62) | 0.402*** | 0.491*** | ' | (0.091)| (0.079)| ' | [0.000]| [0.000]| ' -----------------+---------------+---------------+ ' W1(age=63) | 0.487*** | 0.726*** | ' | (0.096)| (0.092)| ' | [0.000]| [0.000]| ' -----------------+---------------+---------------+ ' W1(age=64) | 0.822*** | 1.107*** | ' | (0.091)| (0.093)| ' | [0.000]| [0.000]| ' -----------------+---------------+---------------+ ' SE(u_i) | 3.289*** | 1.706*** | ' | (0.193)| (0.242)| ' | | | ' -----------------+---------------+---------------+ ' Corr | 0.000 | 0.000 | ' | (0.000)| (0.000)| ' | | | ' -----------------+---------------+---------------+ ' lnL | -6656.953 | -5223.799 | ' | | | ' | | | ' -----------------+---------------+---------------+ ' Ind | 8170.000 | 8381.000 | ' | | | ' | | | ' -----------------+---------------+---------------+ ' Obs | 20425.000 | 20579.000 | ' | | | ' | | | ' -----------------+---------------+---------------+ ' #Par | 36.000 | 36.000 | ' | | | ' | | | ' -----------------+---------------+---------------+ ' DB:../data/estdataox61x_AFTER_TAX_SSW_NO_ERP_t+1 ' DEP: retired golden ' SE (Hessian) ' #Hermite:10 ' -----------------+---------------+---------------+ Dim betaXConstant As Double, _ betaXNPV_ERP_Q As Double, betaXACC_ERP_Q As Double, _ betaXmid_educ As Double, betaXhigh_educ As Double, _ betaXspouse As Double, betaXspouse_retired As Double, betaXborn_abr As Double, _ betaXyear1994 As Double, betaXyear1995 As Double, betaXyear1996 As Double, betaXyear1997 As Double, betaXyear1998 As Double, betaXyear1999 As Double, _ betaXage61 As Double, betaXage62 As Double, betaXage63 As Double, betaXage64 As Double, _ betaWConstant As Double, _ betaWqualw As Double, betaWmid_educ As Double, betaWhigh_educ As Double, betaWborn_abr As Double, _ betaWWhiteColl As Double, betaWLocalGov As Double, betaWBlueColl As Double, _ betaWyear1994 As Double, betaWyear1995 As Double, betaWyear1996 As Double, betaWyear1997 As Double, betaWyear1998 As Double, betaWyear1999 As Double, _ betaWage61 As Double, betaWage62 As Double, betaWage63 As Double, betaWage64 As Double, SEu_i As Double If i_sex(indnr) = 2 Then 'Females betaXConstant = -16.815114290948 betaXNPV_ERP_Q = 0.784860892145 betaXACC_ERP_Q = -2.834182228317 betaXmid_educ = 0.966481681888 betaXhigh_educ = 0.917301083637 betaXspouse = -0.625294571112 betaXspouse_retired = 0.475370578093 betaXborn_abr = -0.213349541168 betaXyear1994 = 0.756799603213 betaXyear1995 = 0.949101336087 betaXyear1996 = 1.117533649477 betaXyear1997 = 1.393773245174 betaXyear1998 = 1.037255903008 betaXyear1999 = 1.299081669468 betaXage61 = 1.930647569879 betaXage62 = 2.660469753264 betaXage63 = 3.258750963396 betaXage64 = 5.22804928624 betaWConstant = -1.852793988483 betaWqualw = 0.022650619398 betaWmid_educ = 0.228457457462 betaWhigh_educ = 0.295995512296 betaWborn_abr = -0.04406827935 betaWWhiteColl = 0.143628041995 betaWLocalGov = 0.033234158887 betaWBlueColl = -9000000000# betaWyear1994 = -0.561672113001 betaWyear1995 = -0.52022611836 betaWyear1996 = -0.637111709859 betaWyear1997 = -0.248041791298 betaWyear1998 = -0.368164352542 betaWyear1999 = -0.620119972765 betaWage61 = 0.459083401858 betaWage62 = 0.402310117761 betaWage63 = 0.487355799574 betaWage64 = 0.822186461154 SEu_i = 3.289151304921 Else betaXConstant = -6.390323624887 betaXNPV_ERP_Q = 0.086835361604 betaXACC_ERP_Q = -3.258435189021 betaXmid_educ = 0.409507438828 betaXhigh_educ = 0.933766479148 betaXspouse = -0.221833938933 betaXspouse_retired = 0.253831074745 betaXborn_abr = -0.36422247191 betaXyear1994 = 0.288825019144 betaXyear1995 = 0.098214656901 betaXyear1996 = 0.175342116114 betaXyear1997 = 0.419948150126 betaXyear1998 = 0.215087836764 betaXyear1999 = 0.382700136258 betaXage61 = 1.206521358646 betaXage62 = 1.332472409371 betaXage63 = 1.289821236842 betaXage64 = 1.796195334175 betaWConstant = -2.019768023276 betaWqualw = 0.018615840589 betaWmid_educ = 0.12662164542 betaWhigh_educ = 0.160578943854 betaWborn_abr = -0.13603496739 betaWWhiteColl = 0.033061101328 betaWLocalGov = 0.185204278024 betaWBlueColl = -9000000000# betaWyear1994 = -0.438264250998 betaWyear1995 = -0.301816791569 betaWyear1996 = -0.25400133161 betaWyear1997 = -0.233088774807 betaWyear1998 = -0.326193726274 betaWyear1999 = -0.323465186957 betaWage61 = 0.475646784334 betaWage62 = 0.491225487561 betaWage63 = 0.7263908426 betaWage64 = 1.107351673824 SEu_i = 1.706103570768 End If ' 1. *** EARLY RETIREMENT PROGRAM OFFERS *** ' First we simulate the ERP offers. The outcome of this will determine whether the ' individual will receive ERP offers or standard conditions in the calculations of the ssw and accruals ' The global variable i_op_erp(i) = 1 if an ERP is offered. Dim WConstant As Byte, Wqualw As Double, _ WWhiteColl As Byte, WBlueColl As Byte, WLocalGov As Byte, _ Wmid_educ As Byte, Whigh_educ As Byte, Wborn_abr As Byte, _ Wyear1994 As Byte, Wyear1995 As Byte, Wyear1996 As Byte, Wyear1997 As Byte, Wyear1998 As Byte, Wyear1999 As Byte, _ Wage61 As Byte, Wage62 As Byte, Wage63 As Byte, Wage64 As Byte ' Variable definitions in ERP equation. These are presented in the same order as in the table WConstant = 1 Wqualw = f_avg_income(indnr) / m_basbelopp 'qualifying wage in terms of basic amounts ' Sector affiliation (only white, central, local) If i_sector(indnr) = 1 Then WBlueColl = 1 Else WBlueColl = 0 If i_sector(indnr) = 2 Then WWhiteColl = 1 Else WWhiteColl = 0 If i_sector(indnr) = 4 Then WLocalGov = 1 Else WLocalGov = 0 'low_educ= 1 Frgymnasial utbildning kortare n 9 r, 2 Frgymnasial utbildning 9 (10) r; 'mid_educ= 3 Gymnasial utbildning, 4 Eftergymnasial utbildning kortare n tv r; 'high_educ= 5 Eftergymnasial utbildning tv r eller lngre, 6 Forskarutbildning; If i_edlevel(indnr) = 1 Then Wmid_educ = 1 Else Wmid_educ = 0 'mid_educ dummy If i_edlevel(indnr) = 2 Then Whigh_educ = 1 Else Whigh_educ = 0 'high_educ dummy Wborn_abr = i_born_abroad(indnr) Wyear1994 = 0 Wyear1995 = 0 Wyear1996 = 0 Wyear1997 = 0 Wyear1998 = 0 Wyear1999 = 1 If i_age(indnr) = 61 Then Wage61 = 1 Else Wage61 = 0 If i_age(indnr) = 62 Then Wage62 = 1 Else Wage62 = 0 If i_age(indnr) = 63 Then Wage63 = 1 Else Wage63 = 0 If i_age(indnr) = 64 Then Wage64 = 1 Else Wage64 = 0 Dim wb As Double wb = WConstant * betaWConstant _ + Wqualw * betaWqualw _ + WWhiteColl * betaWWhiteColl _ + WLocalGov * betaWLocalGov _ + WBlueColl * betaWBlueColl _ + Wmid_educ * betaWmid_educ _ + Whigh_educ * betaWhigh_educ _ + Wborn_abr * betaWborn_abr _ + Wyear1994 * betaWyear1994 _ + Wyear1995 * betaWyear1995 _ + Wyear1996 * betaWyear1996 _ + Wyear1997 * betaWyear1997 _ + Wyear1998 * betaWyear1998 _ + Wyear1999 * betaWyear1999 _ + Wage61 * betaWage61 _ + Wage62 * betaWage62 _ + Wage63 * betaWage63 _ + Wage64 * betaWage64 Dim ERP_PROB As Double ERP_PROB = PROBIT(wb) Dim slump As Double slump = Rnd() If slump < ERP_PROB Then i_op_erp(indnr) = 1 Else i_op_erp(indnr) = 0 ' Override ERP for blue collars as these are not allowed to have access to ERP If i_sector(indnr) = 1 Then i_op_erp(indnr) = 0 End If ' If active, the following line eliminates early retirement programs from the model! 'i_op_erp(indnr) = 0 ' 2. *** RETIREMENT DECISION *** ' Conditional on the outcome in the ERP section above, we simulate the decision to ' early retirement Dim XConstant As Byte, _ XNPV_ERP_Q As Double, XACC_ERP_Q As Double, _ Xmid_educ As Byte, Xhigh_educ As Byte, Xfemale As Byte, Xspouse As Byte, Xspouse_retired As Byte, Xborn_abr As Byte, _ Xyear1994 As Byte, Xyear1995 As Byte, Xyear1996 As Byte, Xyear1997 As Byte, Xyear1998 As Byte, Xyear1999 As Byte, _ Xage61 As Byte, Xage62 As Byte, Xage63 As Byte, Xage64 As Byte ' Variable definitions in retirement decision ' NB: some variable definitions are equivalent to Wxxx above XConstant = WConstant ' In the calculations of ssw we account for ERP when i_op_erp(i)=1 ' such that if i_op_erp(i)=1 (see above) ' a) individual receives 80% 0-7.5BA ,70% 7.5-20BA, and 40% 20-30BA of income until 65 ' b) after age 65, the standard conditions apply (sector specific) but without adjustments for early retirement ' The accrual values are calculated assuming that if there is an offer in period t there will ' NOT be an offer in period t+1. ' NB: ssw0 and ssw1 are based on net benefits (after tax) ME 2005-11-18 Dim ssw0 As Double, ssw1 As Double, accrual0 As Double ssw0 = ssw_Babyboom(indnr, 0, "ALL") 'ssw if retiring this year Dim op_erp As Double op_erp = i_op_erp(indnr) i_op_erp(indnr) = 0 ' Assuming no ERP in period t ssw1 = ssw_Babyboom(indnr, 1, "ALL") 'ssw if retiring next year, must be younger than 70 i_op_erp(indnr) = op_erp 'Resetting i_op_erp value 'calculating the accrual value, i.e., the growth in ssw if waiting another year with retirement accrual0 = ssw1 - ssw0 'the difference in ssw if retiering next year instead of this year 'Calculate the five year average annual income after tax using the simplified tax system Dim average_after_tax_income As Double average_after_tax_income = _ ( _ (i_inc_taxable1(indnr) - ssw_retirement_tax(indnr, i_inc_taxable1(indnr))) / m_basbelopp1 + _ (i_inc_taxable2(indnr) - ssw_retirement_tax(indnr, i_inc_taxable2(indnr))) / m_basbelopp2 + _ (i_inc_taxable3(indnr) - ssw_retirement_tax(indnr, i_inc_taxable3(indnr))) / m_basbelopp3 + _ (i_inc_taxable4(indnr) - ssw_retirement_tax(indnr, i_inc_taxable4(indnr))) / m_basbelopp4 + _ (i_inc_taxable5(indnr) - ssw_retirement_tax(indnr, i_inc_taxable5(indnr))) / m_basbelopp5 _ ) * m_basbelopp1 / 5 XNPV_ERP_Q = ssw0 / average_after_tax_income 'NPV/QW XACC_ERP_Q = (ssw1 - ssw0) / average_after_tax_income 'accr/QW ' Uncomment these lines and add i_ssw, i_accrual, i_ssw_q, and i_accrual_q as SESIM variables ' to extract this information. ' i_ssw(indnr) = ssw0 ' i_accrual(indnr) = accrual0 ' i_ssw_q(indnr) = XNPV_ERP_Q ' i_accrual_q(indnr) = XACC_ERP_Q Xmid_educ = Wmid_educ Xhigh_educ = Whigh_educ ' Create dummy_spouse_working=1 if spouse is working last year, i.e., i_status1(spouse)=4 ' dummy_have_spouse = 1 if there is a sV|žU=g #BrT}=6~}[Ϸ뫕|O7T"j11 NI- }o>|}s@".@P鎷TtFRN6П{]rx?gKIY+M&]NڊvExk?P#yoax$dQSUt?+7J w$ܝ*  $څO1PS/:T@lQ Z8^LMiAǯ2+GW:y]Ze_Ycg$8oM= +r!Xs~BOi&$GLL#7q&#r" }<ʼn q98P8=) E*A ,JϨJќ,ϭ+iVWF:UƦnnm} %H8԰xCϣ5qc}~S` }}ۜ ,RQ̶S24ЭYm`lE \Iw)n!C1 _: 1f$K]HbA1(:@9ƾduPժ8*=?Jޗt4 {\Oԓ{Y?m6zdf6?WKkHQkl*pC(հ DV|3|x3 [}H6oʊ-|ǫWJ#zuPIaXso\Ƥy4#BxuL&ʑ@6ҿ^yepR`<:}HV:}\IuEPGMl]% 3SӁǦ.2*ipWKV8fW)pi-OpN%}x-u0"{ իO8J04~Nֶa9 _(r.OsJԭsnY<1 b:S_ӻ;P5]5jܒ]e@1hڊ\>l3^$U{f>zMua+~ܛs.ҏ!+ǧ+À9鮧IW9* <؞=C͛N@#S鷴f'8ϡk[B DO!mּ@pKUJ` _5ϭz ,d:\5 ݈cx+xO?gF [ΦBPPt]HM!eAU'O[/ϰ훜4KzƱV\q}o2΀Ŵؒmʱ6s&nS@eIf&V:aﭣ*\ƞK>7UKwHt^I0.-ȍ: 8'\:k"T'+N<} =2*FaU?_#O 4RGϠu"18WmtJ76oʼn/GvF >tzBV=p>~ˠsl$* @76ˑ$rz2LC_?O_ˠ9 k#~ Mߖ+ix/C ib 4#g=a@ MOp2#mPOVkŎ7iO=??>6̨IV[~m 6qAfD匎㺵tLWyAIV&^Ԟ\IBZMV/k~=ӶVh.4"-jxy~uEO cCwY^E??Ib<^:ϤF hGJbZJu 4䋎<]$NxgJ(2!b@8#~qҪl$AE )_Ҷ>Yl \x}?5H⒕VtM&`o‘=0P@'ʟmhߟW78t @ُSK` %NT$ y#U]Ns7 ~-k~}С Tt+ztf32kPTÅki?=S :1_<#ף_XWpB׹tJzcrۍl &1b ݈էP#_Tr$&#':;VJN:qy ]BSYƟ ϡO.DR0?mE:Xҡҡ[ttnOб39#WFWr(z]b "bMTjo~2dP??ק :FߪrxWx} i mه?K}Fˬ4?9Ї/}[`xuÒ/SB@)Nsꂕ[^cl?[}}Z@12cP:Sǥ,6e `/a`nmz0"ȯ#0kx~ޟĠ$7H}}uZ~ 1?g=?.aKb`-e^?Ccotf#cW-mX8o^*-鶯W6M1)N#Rt~VbA7XOjrDzaɤlSʘC%u $>Xn/K&i_ALK,Tb[I$uX' ѳ֚4ƯKb8PQU[c"XZS+Kiތ wffԚ-1q.ϪIRw B0Nu[!nwOq)׷ScFȴ=.=DEShA_.U`GWjՉ-H`IW .LzH`= 6v,HB8I}E34/0nnm#EAfg?~]J$,s}\(֡ zgkhp-$ތzt̘]TjZ`S6ߣGyxSk=oU |G&rBSޫJ5s-6&zEW$zC$17a_@9!@[7-$_ǴrHʲ2^̈Ҿڇ.-čҼG\7yV7_G؃-ob(jPk^(6 kZzyc Zyd4HC{(ap8xvZ5KbP#T8XdE[S3XHKz@GHc$OGS0R@) P4'ǹHAJsnxV(%* qil,Fh,,ŵ-ϼϡqi%2fQHOqDZzriY)?g^zT\cƼG3iX%Y.Z :k6?i)Ipe1 Ӊ_tBIc[{9DF}%I_9ƞ=.(X2jN,s}JpJIίOڒH4¿?CQ,ޥu1 bH e扁Io3qni(|?˼QSM*Eܖ )^/=7[xs<_Qas#4 5=?E H[lY 1?$펌0=k^]VF<<`Ezo$HzY $HؐA?!OQ4$ܱ l/}O$*:WlPd`A.='?>M?KzmڟzE;|>^+׫JF` G%lT*,Ձ}vb "C_1ITIa ]eiH $Bt?xt%VkAۛdi#UBЌ3#T-?33}X€ڮ7{f@W] GtP45)^+OЉNBS>H codk;p'%Ŵ4>G̑¾}"Bڙh[K}Q-Dn7ӏR=jԂN|s!1i{{D+HALq~\zpݡMSA!XS(V2 llO.?g&sRkҧjaJ$76}=,Q:bdq9UKK4m@j \$[ǸhdO'HƗD"܂m!{^UjԶ}qyuEV~9ިJ32ըNMtif-'Ƴ@ 1{wSi`xӯvxΟxlu EW:{iSͬHlJljvi9|NL஫O{o@2;3SNuBI  z S]%k]mSM+־C,w'TKpX~?w Gq"3SÇF/bmGK uGr7-]5Yt sB~^yG_d⦍"ybECsMݪ 5sqF1RIbq7 ͉6~> "QJ`z MGG:_c)Łk$\T`~'w߈o>_g[DE`Odci8t"oH&7 XOlSZ4TPdS,%caAv ?mBS_Wr\H WQp+}:]P \ VP4hLM\ĠQ$>p[Ei |VB5xGJ"o/a., Յ eM2$ЏO<ӂ?׺$>{֧+޵#9>1k[GN+1DG)hY~t drۘ1*p ǯNdvЀ\77Qql|N)`Iz%ǖ"\\~b>ʷ (IE$wSzju/c>EQaNhs^\|z9E0<KA#k$Ł^mcO.tnŤ[nO6;?lʱǕ@?^cdD8f_֬^m^iKd$X\ŽH#:60YJykgfP,ůȷ$/>7x׭hE@kբ<(F2iP~qm%=S 5js_PёJy Q `Զ㟡_m#hr3IzXoL|x-a= .8oſyK|5ꪬI*q|Bv2C&!97r}T|0BP Tg|_c[XHTX V fkNp}zބR[J~ k\@7b"/.VRpHV:l4ذ @j }G}T5?oFB HkS:HZ9݋Kbp'CF*G:"]0Ui{JurEHϸ lԂ<ޤmFZ Ӫtr_#G$ʆ?7iz6tH@^O t%?%Mֱ,v{E oM"#GWϥg5oIc[G/kx^_WЪL]ZL6I[v/CP $*]i?0MOrQH /S aX f*/1.b:Io# )S玚ˬ) G'7 ,Ga)EFs83ЅҰZ7? +8-o8#LXVv|܀mk7QYu)R^5_:`}͡]IK eQ`:y'B{`5pz $l+R?ztYEd8o͛տ2j|{e2N*uY}2fMdTb_oeofs v x211GjxO\%]U_':T܃U[>yrsWϣERJU]* ! Jh7sX܃u(ܼjG& \y3Mµ'/u)#[rtƇ49=j-#[()zvm3q:Ÿ!֤c ?*|OY*Y~ޤ^xɓc+v E zFUIIn8ߝ#@^}y*n?T}Q?SZ +eB~ (=qOzgNt;RөWrǍ\m{2•mHk%W |:QAR,6qȹ HGmeer'5ҲHH,odz) }z@弈Ybr~cޤ6Sh*JX dz/nNlxI.wpX 럗Bla Tp E=ȴl~΃;4WI+@j>ˡnl8(#$v-a׏rɖY"*tXF#i\t.c()#] yԪ鰱UAm4fz;I]ZxT1~t.K0$iFi+ȵכ}}Œ]%bRiC<:d\=YZ2}:u!&xn?숌&TشDxx?t'CXc}K!l??OhغSçsՠX*qJB^> ]?@=\m?^}[9:SV,eW45qE \ob^.>G?.bYu'7` m~4AA5n#|Ǘ^UUdbh>dq< >oMq{^@}= 94M+ N#(y5(&2D:OῢLNaWgA:G~mC?KLͤtGiwtjhR4#_/F6'd5Vk ąrO7R8~=7,]$Szm U51 mIR# yn.q6B6hi:XiuGUyvҌC4DW\9u_&= .֤҃fu3}n.JSϏOϣ>BߦuB[_7wBG+MTѦ5G$@7ׁ/K[ĔS~N3r0*f= -y6Z|ڟ?yq0L˥6,n@Ǵ)!\+JS=IN|S bN/qqիI_d^k_т>vg JZNktS;t7u?u.iJQHߨ_=w:kqtX kV Sѳ؉yf=.h7tvmkGbY+,Fz+ݶȥ1(Ӎ>CϤsՉ!S^#6kcQTJ¤̃Oj(Dl܀G!n}C{ ~]kJ&TKu3iȡ0'~a-FVnk} 'r ɊSμzn|B - yqvBjs ~Da OO#x¾~îsJޅ jMa/ßjG+[.nrڨHj=~Ҟ5M0U ~=9N@cA*c.qx5 xΠ?Ǹ(e\n Gvp@+Z{M#sR^?~}BA@lX +rⰀ=iUwےΫrBCM5KrVԀEQmľ2hSꟿ(g8~ΛK!Rqh؟n'B _5<8]Zm틚7hS#NMAC-$/8Coa)ڟ0_z\7V#N zz66*}od|qSεJX_qϧ2 yM"mwEI֤!8G"G8Ar8m>GR-9=q%DTSƀQV:\pA 6ܤFW=zPU\R~c=  nO:8\h z֔ĬefS"ʑHk_$[Ъ_Q?SS`yK:+[_\dߛǶ3P>^mzq }M>()À LQn$zjk@Gtx >G6Q&S?/;@4Q܅>@e!g^j0tWI>u*cq :[J}cAz߆1f4~~}dr.OOHz>R>GGF}AAzfM5$Q, xȊIcJ轢:Nk_NǽUJ+-B?W#{A{C.*˩Qr1_:Ɵ1?luL"ׁC77?-oG- ˡ&ѵ\1zD GVoTaOrnl#5-ԛ xy{,ԣ LLM<>5wd@N[_G*'2^tH% W8R0U}|>9-B o.u)?HJ1B'KA okJd`UI{(& 'izaŭ{SzvhS CPA c},>#5E(:E)p㬮vc@j%!gPezY`@͉ bO=3E+$)3LE+)Ԇ\߄тU:C(2b(NCe<'/^un:SNUcXWgvNXid# +~yj ONO#b }&۱S|A=nIXS{py{^N:4h8d/I#.JVE~reE4k} *2,O`)Å^P#,OBN2RE7/oG2Rt$Ɣr(xKA ‹]@ ~=BΦP*ji,R< 0+?Jjh쪤]Mb}bT<˥Eav/Q=:~%@*%;yN1 F| 5K#!H+r`@m))SIT"u'8+bˠܖI%s'zҚ)B3лm;>XVx~ޫqGuI )5Ix-CNUBX/ΰ 4^ o`ֹ׸BO5?NcFƞ$cixZlXULyz^c* 7b^?ȔzpiBgH#҄gB>2Yo} }JZ5(tJa O ˥=Uy$ ةrO/Žf:4=ؤs^ӇCů}]:fGUhCdoVMϏۍNHJ.lAxuțީh8.-IZ8*tk*˦ޏǾի&ۖ{]=-,cq ;\ќp`1!rPR<* 18g0\XBCY\,i"BI |Cۿv^qE]ZTԕtHe*v5&N\FV,l Z9)>{Eomh#e@E@Z=OA/18 U|!/cm;Keᬙո0IRƺ"jPdU/oWn(voSz,,`E$)bX:n;};3)Ѽ;5PsbbNJAYHV`aRsG:U5 ZYPv}fOjK1ZKֈXn$ik_4E[3UsW[rj粙}鞁jPP鞣Witp mqu4Q "Kg$xjF EUOA]O%wfD#<) ;K-JInjVs&Oj`ev䘬J*rf,U7Itr}V܏j6康i-LdE'LPҌ2x!e{p5B4Z]|lgbhr1FdE 3Tʈ[)-foĢWuEfgI~ދR)h sSA/ALPO:;n#{7mNwE6 qǤX~ٹKI$9J*N$ƤstvY[XџʼnA9R$c$#Ȓ#ϡ/*l-g`WV7uTPH-8P''ld?[uw4LcQJ*>CᓢSb)s\6_r d%tYiW! Fc{8n.VΫVPy(FQW+jrqPjuG%:#S3 =-%$sTT@>Vk0BI$Csj\A>Z:5JtLiPcXdm.8c8?N? vdگ&X4eZ(r +ĸC%cު\]bga aMKݼDs E`0hA4&3"}E.JT굥sAJtLx̔jP>6*uE8Zgg /t P΁jObV I:קxRHf1KNE2@@1I ^7-e!pc#MGʌ}}y!PҚQ_̊*YA UPM'B;'!j;G+8͵>fZch~c7+~}~s%5JOɠkJn5Ⱥ崵 d1_~}W&.|TPFiBr Qv/|rnNvkoː{xP7VKxnynx]N^BXvm HAgϠ-C3ݘ.-۹^:Rp6?. kYFH] <J/Ur. RMM~}?_Fy}]wG#vd"0p=ߊ66OS١ۉ*xK4Mf-4F$Sʃ[4l1f\MA=]vmm8qܞ"rGM7GgPsmomጣOF?!AZGZw+PyyVz,C1e 4@3g{ϸ6gZ+pX+sj-6ߙv'^CiV~c6쫪gaRA"+u)J!:E*EqZzax\KiVB߇8ӸnRvvڐ|\%޻S9Oj끧7Vߪfmt]$7 Xv) hfEGX,e@#?gDj\SDdbFnOUtU60 +QىJT1J+() (M/qn֩"i3{#gBtWޖ#wȟ[+Rcv-]6؛2pm jmBCa6V\xe%@U*I#"mkmI4rtTAIU[&G&c0=f-wS -9d.';NqhTH ZNtS9Y4+C_N=[ttHf'Qfwdyː8M~|;`.viMQYdD`fXԧvATqZa^ҟ>ܬ1.-A]DvW:>ٹZf|7<|yqW- eZFr`YE% Ҵ$zR+ꌒ5H hx=]l%)M3SqyyVj|U,WPlѬevVTD:ϕ*kN?$EEjT8ngjp\v]EU1 YpTy ٓ+zLI 2\!O:z UVPQVc+hj:j\ΩSn@I]2DZ2F cE~ηtdTR VivW+2ĀTIIV*1ޛOS:- >衳ꢀɠQ ܠܩ$<~]E!J99cW+$s$9PYXc]u U|ǯ< B+k?yS瞌UN=q# w>Om]3[4SΔ"#>鸭߹A,m<i REBHz4vK9+KV`UP&b.;Cyl.6+S^5WI+E2xXrPSGNJ@,.$uaT`2$ IϤ^CpMN jp4)EbUFCϤ=sY* Ā})~~_J)lNZ\DMtzu@@ǫ9&LU0hqZtc l먒VjƢegs45 PKQ7C% 3=+?i?LidH( s3_:[YC.B,vFZ.%GAX8?ZԄ8VEH #QXb?>DH*MDoO--EIRR!F.T^mŢY(HyTv22u(9PhjpH>ҥ5HJ EՃ.JoPd"qksx(J?oЫcF$H2kN=:~Ij4kA"Vr'{h,N_u..(@y7QT*}6=[i(u|Mk'_Gkkk>4?Cރ~ү+ӡn ,c^IbG}gn^xԼjdX{)?}o1p5_>\,ETu**uf_O=[#_toamojZ8v=ѱٚc%;P>/ic{`e PkF>ާ]-1*i$ \ˣsWuѯ:i+p{{oZ=gZnm]]5SE$%)ʤ;kr/o7pC#9Z:ˢ{k[CdX,ED,Fծ:۽ݻ|};cmןTۢ==H]Y׸\}fޠ̷za}]M ]YOEIe$1f O"X:vwdy%ICSW`'EnYAo -NqQӅ[`wVj,h*<ݘ)96svc4#a:$gJ@"€K 9.dITqO"# *@)%MI}{K}==o=W1Cڵ[y%3m,,1Gu:9.7=i,9St{($ ~5:*ٷyc.<]o @xqM#1 z)lovhejҥ$"s-.w? W)1D Ʈԩ]5_Heſ]sK_9};NudN=eٱ\[4L=lcwb䕼\ѴݻJ y>%Qu.JN3so(n۫ 7ǹ!#|s@if4nsZ3)l`I;/[gn?mWjmLJum*ݫsyZyD(Xwrۅͼ6Hbr4]r @ FR:3i=եۗ<ֈH# ebKT7sP]?=o+%synͳcv&XmոSmlJ rGQY4z e~n{7+sW E 243GWRq(ZPtio{F|53A]4FC'S4,I&Mio}h q!նЎ\u\%.VBҒGcuOweرvhYk̨}=ܔ}$?&=(ޢڝhq|X?7r&ثk==[M`܍%,|U OOܾÖ7kdv)P2ݤ40e.2!ڀyte}̻41Yo{q {v{x5"!ȏ T6ϠG/}s3ݼ?ctW`ũCKO޸:>8^&}@J~$ggpSIų97 & IX§E*5H A'07[]Ed Ҡ#7 u1 kr#bUo붱Znjo%զ稒*&ZyS1*\ӱ_6kZf/. uPGkAAZlW <=Dg-?o5=Ff12tS=-T4W~`dǰiqi$o") 2J"iQI;lNb I583 άK)ԅbJAE[{v zr/2%>R9o (YXF*m ݬl[+X_!@Z0M'נu7??Ы+jsR$pZ}۶]'{uuDm>m|&]fRVUUMKTi1hmEKiݶ]uwyvul0Xjaۤ;FɹKeAi @"m *)iZKjZSFҭU<*BWqjiWWds5󹢩ߴGTףM-F=7+99ч-=x$ FMϽCe42k?-pfW@Ew) \ʰؠ Z T)4=F|\-Mk,d>`jֿg˫`SEE=^3CF Wcv\VUAVVGO[H#jq ?+23}쩡h r:ӝyeT&\WJaU5)hj1à3w_lQz][c*Uij[~xK]ܐQfVSILʨ%}iݡ6{t;) *:2Ʈ'Ϡzn|Ȼܛ\Mkjcy,F9 W:F= [|^acdg}yKaUacۅrUTJHF[ȍ-ݵ]m~۫$$͉`X*I  ^XcmH2Im6+ا&i H#eف@;;wF,G} ϶3!UB$3"@G=c8ܻrpӌ?ʸpf]V/"8m͐⒛i[8+yWQd5 $5hov'gzzal{Wzۋ(bbqN22_=,]\JeV] *H:tLeM ˩e|7@dk:4`RS_EB-ESdu5DzѮV9'tNGq5 eJyI u?iFUWнHU~mG@un뾹8ԨwgHu8l礚EgqXXǓe)mdft5F8EIn1Bݱ _2lΆa#{+i[f|+h|} =nTd6vEz⤉*c$be6zjm$ y[MX2SS]D`燨PZ?7>z|Mgf|ݴ~|ܝ׻ޖL=ц.6FR{mĤ&>:)X*.'Y?>MXOq|J̾ H4AǪIuǮުwgYnmYMTXV0kud)Wj)#m10*8Ic0$yY)gR qS/\tX|fPTؚW y7lfQ4J)Idy䕽Y c׎?[oj&8'՞%+z|{MG?}۽sr>,f#=j-ݔԵ6k))Q8f:h{vQpHHzt6(r$AKE 8scvǮWlw7j쌾Ž6>y-ӄڻb{o%ZJ̅40Uli%M̔;|I,‡jA+}ܲYVϦ #u$qCwrtgW.3q;,>?3?RshW'ITY**%Yo,9zx/+NO ֜+6Iwm]}fc4bx05f/޻unz_guZ(;+[λ^vMKO[tKJ̽lJt4I !-uJE;QU OxǠ6nK=/%mWEJԏ}OVۯ>[tl$ljf}섘]Ù[Ws'lǘTObA>tݣܭG@#),A_l\lksNiv6\wRZ4;~5v.ۘw{2rOUqv8DHq0j#y%[nvǺE oᒞ:+y*/j>Ÿ#42O"I*=:._}Ըm`vb ˏbYp -" Q$jJn{>ѷlĻ~ ,,PQRh $Q̛|goSx[tT .NwXnL.6-;]X-V*rL;5Jl]v.لK q+F^C}ܷ^x=r$?rR \wI$_gv!pm7[+1$Y5>-9LRK*mA_um;~evd$t8 B Lb)ѽ߻=4{o^m߾NjS=>gao 4J5v"o-1 @sWLYEBG]:@Ѩ5=HxÝaA͆FF Pi4#ϥ㺖N\b; tR OGrQ65W˶00]I1x${Kg3);\"8zT^Had]6q"0sWŘ$V*RUWu.ݽl EEU8*nʙhd%jZ'r/bx=oK="ܰzGoul ..ʛ%%FE`5*[w5g(IF {3֝U&Ngq`0Զxl}dJf@%Hfɳ&$Gj2*uSiL[/2\msRďHI*kGϪ+TKe_XLjSۆZրWֽL<+2pP ߋ[/v@BiDK,}7?Zm1֙ї)O:9:ԡ͝IL6 -up>^$OQդut-_H_OXc*xQRRTWҲEٔߛz[IڽRaE<#i8T9L yӐKd HgkK/Z8j~R?m:>Y$kYRէ_coCݎj%Q?AoݖH!Y4R4}|>[[;pIv]G]ɵ#MQ-u%MMN9< פqVmp{mpV9 : Tq= vej~>9?oF{wsuvoo,9 |ffZHڬFN1OqQ"^6 9+f_Nck{gn8wn"]n <CZ}]WYȘ&8b7>.x @)s;wq\y /f@fa[m{ ȕt*93ìqg.$dB"-2Q_u3rC#\G?X!c!ji+VGqYZLsŊܵQL{ϵߔeQ^7®+)ӚH-ڙazǓljlj⢣qؼMEca& ,&XϵnϷmoan[1hIfcřv<*Ět[nׯ%(T8 GϦ.銼W[[: Ljb7T嚑3cqPe6ws @d1۶ŵ)v6`Y B+l9ã*::7ՑI N>LEObc[ m;Wha{k-EqSePApHn.Y#f~]$ei$%H`K*t4N\sW0IEP]LJ8e!EPvΞ&y~ݵ muVn>׶ $#QEAOVq3L2K H7h$pIhJ ƽ>}{]JF ĐE:7__{jd6v|3/jr})$rb=QySIJgMV .gqr Z$[_ln[%ZH Z6V+NmIs>p9U5Pxt7o~ٻ/a|6qhRazzp;v<*y D;]!vEڟf]?mPI%XUzQyyNd}Od((P@%tѤޱv>v=tI/s>ϴ] :iǐ%Ibjix%ؠf% wJvӧe .q8Xkj"+ƪBCdllo]a{)8jAvuN/K9g5iLodt (ŷ_}>>J(F*$x>Øl !Am"3(@8SngWY:ajR]]Q.7!EOO],AR$4 ^bnT=AHvt@ۦ[m~.$`fIBg{C{(wFL'hLCbܛnS#9W'E#yL!Pd;^õÚ6"YB= QAiPt2˹Gsx;Ii( !Ҡ1@&:;bpW'p}oro$~(`e1KO PG#>0uXvdK@?KPH %Z֬M W<8tMշW* AQF=9-DZq!ڻ ohr Iꦁ)IDW'{uw g_} ;ͦswJ4ԂASz?e8ͫزU !e+:: {R*:ňi+H2F> @T_?&*3UO5f@zTjRӾZ[m_SvX$ZnɈ $  :*yO޵0sg7҈25 C2`,JߋXX&ac%@YF;ܻR!k}"F~]5R}T]HU:4iB(=8Tסsfwdl@mL>7 e^FI6dq5D岘̞2*ݠ S}˻Fr )U~B>m~Zvۉb6n/3>eXp@gfvaeeFrnew!y* g G5 TWK%z9]|,IV 1@vj:HG./&HTJ,FNsCSO&7}v]onJl~ߚbJ TQo+*f+¾x;SmĚpQCœ:}t+;o1xjQؼ;poU7[Wȏmloxv$۟mlhQl{Kh[/W{ghc?ʫ!/)_Oc7Wzyj UkƊ 3J#EExUg׏J謎so5U:wrr۫FffE{eT; ԭ&'+Yu~֍G-i$Lf][ٍ|'Ui)QFA||/`vfS45]6K:+[_Kոp{!yqSC3Y K{qrb_  @ϏTܝHP@P< xj2ٰw[vnxauLQ.㧥v3:-,K3c_#7S-R8'J4jTޔO_\F!Z6A*œ5ǎz 7~O=휞?{|p꺎,`.LTJ| 9Zvn_q_U]T*ܫE"CƚTas3ƽYoocmd4kp;VcΕ5cj[}6};~havs xjI'ydv1pwoqqk%hA>`yt{9%6F>:qߙ_*;ֳ2=ݻtezWpOPbc3;/Wɲ_QPv=TX: 役dJS zytSM=3FISBhj2<ϼ?S,ߒYQQ>#qas.ꝫ>[;1ЗlllKnb}8k(ڥh);ϟ3QCZ 5Q7&m2]`Z*)Jӈ:88BQ,H$Qcv>5\PTytIE˧LeCC(p+{\Io$4?.ڛX=Ǽ8ώE۝-M.3 l\2wc$6U?r^Qѫ4{-wX+%V/hqצ'xUP#ή>yuC7Ozu-pn\* Af1jE6-6F35vz&" _ݥ_,]'V*I JS{ŮvÈqQ:?7>QFbdY^ܙmLi;J'dp[[dm]Yfj%($ȻiqE0Kj(ZЀZq:OCq?;)(+@M8l>30I[-=STS;MxTœoGEڍџXϸKC E;Vf[l2C+pZ({8t,g .Ck4IZ1xf~Q>ힷ2kfwFOydaFX͝ˀWtc2gscg2*$(nP\5o0]>ذ*C1`X`+8>ەݼwp>ŰjЂ!kL^u};{yfG1:[ճVm޸}`^a6Neajx(#_0ݯ.kFJP ⺒cFAE H3TtCFSӈbxH+M$'MoYFyR tMAɯNkGqon6Ud I*aT`Wzs?"xTa*뤩nfQm}ˆ,NRCHOMh,,l C|Jmpg{IWTsTPx*P  ػ xdd3?kBɺb?!u%Ѭ`B ٭M:VA2 qAעp}FfJ9)mSl屙Y0t⧜SaAW[}MvΤ0K\XAy aс9q{}o\~?t 嚯w }PUlNh΃KTH&@  e$v؏59$(AѮ[0xb""GulcS6cf{m]mzm|TN)+5XW$Iy iM+qUimwy J/'+0[H yӏ6{yY헷NVf)'4 UFP XϑqxYMڂ\1X)sSK|dɰqICS RNV.e]KHIq/V~ k95pn(VQr(\Hj5,۫<,}ǚz%JNsXhR$p,fe\v"#T<bUx/谹b߼\V /R.O*̅ZsO#C'gSd!!EHD )U\1@> ~'Ej_޼]z[㮏/<Wա]Ofr frtidpens och sjukbidrag ' Dim m_ap_fp_kvot As Double ' Dim m_ap_fp_kvot1 As Double ' Dim z_ap_ip, ap_anke As Double '' Dim ap_fiktiv As Double ' Fiktiv pensionsinkosmt vid berkn garantipension etc ' Dim ap_berund As Double 'Berkningsunderlag fr garantipension ' Dim ap_ATP_1994, ap_fp30_1994 As Double ' '**** SYNKA DETTA MED SKATTEBERKNING I a05_rules ' ' Grundavdrag, grundniv, i basbelopp ' Dim m_bas_deduct_min As Double ' Basic deduction, min level in basic amounts ' ' m_bas_deduct_min = 0.27 '*** Provisoriskt SKALL VARA EN TIDSSERIE ' Dim year As Integer ' year = model_time + base_year ' i_ap_pensmonth(indnr) = 0 '*** Provisoriskt. Alltid pensions vid 65 tv. ' ' ' ' -- Diverse kvoter ' 'deltid= 1 '-- Parameter fr uttagsandel **** Skall implementeras senare. Tv. endast heltidspension ' bokvot = mini(1, maxi(i_botid(indnr) / 40, pp_hist(indnr).n_years / f_krav_atp_ar(indnr))) ' ' -- Ersttningsniv fr folkpen etc beroende p civilstnd ' '*** EV SOM EN FUNKTION?? ' If i_civ_stat1(indnr) = 0 Then ' ap_fp_kvot1 = m_ap_fp_kvot_ogifta ' Else ' ap_fp_kvot1 = m_ap_fp_kvot_gifta ' End If ' If i_civ_stat(indnr) = 0 Then ' ap_fp_kvot = m_ap_fp_kvot_ogifta ' Else ' ap_fp_kvot = m_ap_fp_kvot_gifta ' End If ' 'Dim i_ap_atp As Single 'Dim i_ap_pts As Single 'Dim i_ap_fp As Single 'Dim i_ap_fp30 As Single 'Dim i_ap_tp As Single 'Dim i_ap_gp As Single 'Dim i_ap_ip As Single 'Dim i_ap_fiktiv As Single 'Dim i_ap_pp As Single 'Dim i_ap_fp30_1994 As Single 'Dim i_ap_atp_1994 As Single 'Dim i_ap_gartill As Single 'Dim i_ap As Single ''--------------------Gamla systemet------------------------------------------------ ''Steget berknas atp fr personer ver 61 r. Gller inte samma modell fr yngre? ' If i_age(indnr) >= 61 And pp_hist(indnr).n_years >= 3 Then ' i_ap_atp = 0.6 * (mean_ATP(indnr) / 100) * m_basbelopp * mini(1, _ ' (pp_hist(indnr).n_years) / f_krav_atp_ar(indnr)) * f_fu_kvot(i_age(indnr)) * _ ' (1 - f_utfasning_ATP(i_born_year(indnr), f_ap_pensyear(indnr))) ' Else ' i_ap_atp = 0 ' End If ' ' ' ' -- Basic pension & pension supplement Folkpension & PTS ' If i_age(indnr) > 61 And i_botid(indnr) >= 3 Then ' *** Behvs vid berkn -garpAnd year < 2003 Then ' i_ap_fp = bokvot * f_fu_kvot(i_age(indnr)) * ap_fp_kvot * m_basbelopp ' '**** PTS-kvot 0,555 fr 990601 ' i_ap_pts = bokvot * f_fu_kvot(i_age(indnr)) * maxi(0.569 * m_basbelopp _ ' - (i_ap_atp + ap_anke), 0) ' Else ' i_ap_fp = 0 ' i_ap_pts = 0 ' End If ' ''---------------------------------------------------------------------------------- ' ' ' '' ------------------Reformerat system---------------------------------------------- ' ' -- IP - Income pension Inkomstpension ' If i_age(indnr) >= 61 And pp_hist(indnr).n_years >= 3 And year >= 2001 Then ' ' -- Old part (TP Tillggspension) ' i_ap_fp30 = mini(1, (pp_hist(indnr).n_years / 30)) * f_fu_kvot(i_age(indnr)) * ap_fp_kvot _ ' * m_basbelopp * (1 - f_utfasning_ATP(i_born_year(indnr), f_ap_pensyear(indnr))) ' i_ap_tp = i_ap_fp30 + i_ap_atp ' ' -- Income pension ' ' ' ' '*** OLLE - 2015 blir det en nolldivision hr nedan! Jag fulfixar tills du har ' '*** hunnit kolla detta. TP020816 ' If dtal(i_age(indnr)) = 0 Then dtal(i_age(indnr)) = 15 ' ' ' ' i_ap_ip = (i_pb_ip(indnr) / dtal(i_age(indnr))) ' i_ap_fiktiv = (i_pb_fiktiv(indnr) / dtal(i_age(indnr))) ' ' -- Calculates fictious PP as if IP ' ' Fiktiv inkomst frn premiepension som om all pensionsrtt inom frdelningssyst ' ' Metoden bortder frn att avgiftssatsen var lite annorlunda de frsta ren ' ' i_ap_pp_fiktiv(i) = i_ap_ip(i) * 0.025 / 0.16 ' Else ' i_ap_fp30 = 0 ' i_ap_tp = 0 ' i_ap_tp = 0 ' i_ap_fiktiv = 0 ' End If ' ' ' -- PP - PremiePension ' ' Man kan vlja om pp skall utbetalas som en livrnta eller kvarst i fonder ' ' Man kan vlja att ta ut pp frn 61-79:11 rs lder, vlja 25, 50, 75 ' ' eller 100%:s uttag. Det gr att gra uppehll i uttaget och ndra den andel som tas ut. ' ' Som standardantagande antas att alla vljer livrnta, rknar som en annuitet, och ' ' 100% frn 65 r fr alla. ' ' **** I annuitetsberkningen anvnds samma rnta som RGK ger p tillflliga ' ' placeringen av pp. ' ' **** I delningtalen finns t.v. redan en diskonteringsfaktor som ej ska med ' 'm_pp_rate = m_interest_long / 100 'Standardantagande ' 'i_ap_pp = -1 * Pmt(m_pp_rate, dtal(i_age(indnr)), i_pb_pp(indnr)) ' ' i_ap_pp = -1 * Pmt(m_pp_rate, CByte(explife(i_age(indnr))), i_pb_pp(indnr)) ' i_ap_pp = -1 * Pmt(m_interest_long / 100, 65, i_pb_pp(indnr)) ' ' -- Retirement pension, Reformed transitional supplement Garantitillgg ' ' Endast till mellagenerationen, ej vid uttag av enbart PP, tidigast from 65 r ' '**** Eg inget gartill vid uttag vid enbart PP ' If i_born_year(indnr) > 1937 And i_born_year(indnr) <= 1953 And i_age(indnr) >= 65 Then ' If i_age(indnr) = 65 Or i_status1(indnr) <> 2 Then '-- 65 years old OR newly retired ' i_ap_fp30_1994 = ap_fp_kvot * m_basbelopp * f_fu_kvot(i_age(indnr)) _ ' * mini(1, (i_ATP_ar_1994(indnr) / 30)) ' i_ap_atp_1994 = 0.6 * (i_mATP_1994(indnr) / 100) * m_basbelopp * mini(1, _ ' (i_ATP_ar_1994(indnr) / 30)) * f_fu_kvot(i_age(indnr)) ' Else ' -- Indexation and correction for changed civil status ' i_ap_fp30_1994 = i_ap_fp30_1994 / ap_fp_kvot1 * ap_fp_kvot * f_pens_index("IP", i_age(indnr)) ' i_ap_atp_1994 = i_ap_atp_1994 * f_pens_index("IP", i_age(indnr)) ' End If ' i_ap_gartill = maxi(0, ((i_ap_fp30_1994 + i_ap_atp_1994) - _ ' (i_ap_fiktiv + i_ap_tp))) ' Else ' i_ap_gartill = 0 ' End If ' ' ' -- GP - Reformed basic retirement pensions Garantipension ' Select Case i_born_year(indnr) ' Case Is > 1953 '-- Garantipension ' If i_age(indnr) >= 65 And i_botid(indnr) >= 3 And year >= 2003 And i_abroad(indnr) = 0 Then ' '*** PROVISORISKT Kolla berkningsunderlag ' ' Kolla Fiktiv inkomst: PP_fiktiv krvs ocks etc. ' ' I berund ska ven "utlndsk inkomstrelaterad pension och viss livrnta ing ' ap_berund = i_ap_fiktiv + ap_anke ' ' '*** TP (020813): OLLE! fljande rad kraschar -> jag kommenterar bort den s lnge! ' 'i_ap_gp = garp_bas(i_civ_stat(indnr), ap_berund, m_basbelopp) * bokvot * m_basbelopp ' Else ' i_ap_gp = 0 ' End If ' Case 1938 To 1953 '-- Garantipension (Mellangenerationen har garantiregelstillgg) ' If i_age(indnr) >= 65 And i_botid(indnr) >= 3 And year >= 2003 And i_abroad(indnr) = 0 Then ' ap_berund = i_ap_fiktiv + ap_anke + i_ap_gartill ' ' '*** TP (020813): OLLE! fljande rad kraschar -> jag kommenterar bort den s lnge! ' 'i_ap_gp = garp_bas(i_civ_stat(indnr), ap_berund, m_basbelopp) * bokvot ' Else ' i_ap_gp = 0 ' End If ' Case Is < 1938 ' -- Transitional reformed basic retirement pension ' ' f.d. vergngsvis garantipension ' If i_age(indnr) >= 65 And i_botid(indnr) >= 3 And year >= 2003 And i_abroad(indnr) = 0 Then ' ap_berund = i_ap_atp + maxi(i_ap_fp30, i_ap_fp) + i_ap_pts + _ ' ap_anke + i_op(indnr) ' ' '*** TP (020813): OLLE! fljande rad kraschar -> jag kommenterar bort den s lnge! ' 'i_ap_gp = maxi(0, f_tran_garp_bas(i_civ_stat(indnr), ap_berund, m_basbelopp) _ ' - (i_ap_tp - ap_anke - i_op(indnr))) ' Else ' i_ap_gp = 0 ' End If ' End Select ''---------------------------------------------------------------------------------- ' ' ''--------------------Summing up different pension components---------------------------- ' If year < 2003 Then '-- Old system ' i_ap = i_ap_fp + i_ap_pts + i_ap_atp '+ ap_anke ' Else '-- Reformed system ' i_ap = i_ap_tp + i_ap_ip + i_ap_pp + i_ap_gp + i_ap_gartill '+ ap_anke ' End If ''---------------------------------------------------------------------------------- ' 'calc_pens = i_ap ' 'End Function Function ssw(ByVal age As Integer, ByVal incomer As Single, Optional d As Single = 1.01, Optional maxage As Integer = 80) Dim delta As Single Dim i As Long delta = 0 For i = age To maxage delta = delta + (1 / d) ^ (i - age) Next ssw = incomer * delta End Function
Function accrual(ByVal age As Integer, ByVal incomer As Single, Optional a1 As Single = 1.06, Optional a2 As Single = 1.084) Select Case age Case 61 To 65 accrual = incomer * a1 Case 66 To 70 accrual = incomer * a2 End Select End Function
'Har glmt vad det kallas men funktionen rknar ut hur stor del av pensionen personen 'fr om han tidigare eller senarelgger pensionsldern. '**** Olle: Detta finns redan med i pensionsberkningarna ****
Function diskontering(age) If age < 65 Then diskontering = 1 - (65 - age) * 0.06 ElseIf age = 65 Then diskontering = 1 ElseIf age > 65 Then diskontering = 1 + (age - 65) * 0.084 Else End If End Function
#End If ' End compilation of standard version