Return to PSG Models documentation page

SSASIM input table ACCT

Contains highest level description of policy and behavior related to individual investment accounts, the defined-contribution tier of the Social Security program. Includes foreign-key indexes to rows in child tables that describe aggregate account balances and annuity payments in the starting year of the simulation (which are typically zero), several static policy and behavioral parameters that do not vary by year of the simulation, and a foreign-key index to rows in the ACCTDYN table that contains dynamic policy and behavior parameters that vary by simulation year.

Parent table is: RUN

Child table is: ACCTBAL

Child table is: ACCTAPY

Child table is: ACCTDYN

Child table is: ACCTAA

Go to SSASIM input parameters overview

SSASIM:   ACCT . id
Identifies account specified on this row of table, so id value should be unique.

Valid values: 1 to 999999999 (nine digits), Integer

Source code: acct.h and acct.cpp

SSASIM:   ACCT . notes
Describes specification of table row in free-form note.

Valid values: any ASCII text (Note: do not copy and paste from a word processor because of the possibility of embedded non-ASCII characters.)

Source code: notes are not read by the model

SSASIM:   ACCT . acctbal_id
Specifies foreign-key id value that points to rows in ACCTBAL table that contain aggregate account balances by age-gender cell in starting year of simulation.

Valid values: 1 to 999999999 (nine digits), Integer

Source code: acct.h and acct.cpp

SSASIM:   ACCT . acctapy_id
Specifies foreign-key id value that points to rows in ACCTAPY table that contain aggregate annuity payments by age-gender cell in starting year of simulation.

Valid values: 1 to 999999999 (nine digits), Integer

Source code: acct.h and acct.cpp

SSASIM:   ACCT . max_c_amt
Specifies maximum dollar amount of annual basic account contribution. This dollar maximum is for the calendar year specified in max_c_year (see below) and is indexed by the average wage index (AWI). This dollar maximum does not apply to voluntary contributions or to government contributions to accounts. This parameter is used in both the macro and micro models.

Valid values: any non-negative value, Real

Source code: acct.h and acct.cpp

SSASIM:   ACCT . max_c_year
Specifies calendar year for which the value of max_c_amt (see above) applies.

Valid values: (RUN.year_zero) to (RUN.year_zero+RUN.num_years), Integer

Source code: acct.h and acct.cpp

SSASIM:   ACCT . max_c_add
Specifies nominal dollar amount added to the AWI-indexed maximum contribution amount each year after max_c_year. If MCA(t) denotes the maximum contribution amount in year t (where t is greater than max_c_year), then MCA(t+1)=F*MCA(t)+ADD, where F denotes the standard social-security AWI-indexing factor, and ADD denotes max_c_add. Set max_c_add to zero to specify simple AWI indexing of the maximum contribution amount. Positive values of max_c_add cause the maximum contribution amount to grow faster than the AWI. This parameter is used in both the macro and micro models.

Valid values: any non-negative value, Real

Source code: acct.h and acct.cpp

SSASIM:   ACCT . f_yr_c_int
Specifies the decimal (not percentage) fraction of the year for which interest is credited on both actual and offset account contributions. A value of zero implies contributions are made at end of year and earn no "interest" during the year the contributions are made. A value of one implies contributions are made at start of year and earn "interest" during the whole year the contributions are made. The contributions are assumed to earn the same rate of return as the individual's (actual or offset) account balance earns that year. This parameter is used in both the macro and micro models.

Valid values: 0.0 to 1.0, Real

Source code: acct.h and acct.cpp

SSASIM:   ACCT . vol_part
Specifies whether or not accounts are voluntary or mandatory. A value of true implies they are voluntary; a value of false implies they are mandatory. A voluntary account involves an automatic diversion of payroll taxes into the account, as well as the possibility of non-participation (see vol_part_f below). A mandatory account does not involve an automatic diversion of payroll taxes; the payroll tax rate must be explicitly changed in the TAXR_RI table if simulating a "carve out" account rather than an "add on" account. This parameter is used in both the macro and micro models.

Valid values: T (=1) or F (=0) (for true or false), Logical

Source code: acct.h and acct.cpp

SSASIM:   ACCT . vol_part_f
Specifies the voluntary account participation fraction, which is expressed in decimal, not percentage, terms. A value of zero implies nobody participates in voluntary accounts, while a value of one implies everybody participates every year. Note that this parameter has no effect on a mandatory account. The specified participation fraction is applied to all age-gender cells in the macro model operating in the CBA mode. When operating in the other three modes (OLC macro, ECI micro, or RCS micro), the value of this parameter plus the gender-education offsets specified in the ACCTBEH table control voluntary-account participation.

Valid values: 0.0 to 1.0, Real

Source code: acct.h and acct.cpp

SSASIM:   ACCT . i_m_erd_sd
Specifies standard deviation for zero-mean normal distribution of difference between annual equity rate of return experienced by an individual and annual equity rate of return on a broad market index (that is, SP500). The difference varies across scenarios for an individual, but does not vary across a scenario's years, making it an uncertain lifetime difference. If return difference for individual i in a scenario is denoted by d(i) and the market rate of return in year t of that scenario is denoted by r(t), then individual i experiences an equity rate of return during year t of that scenario, R(i,t) = r(t) + d(i). The market equity return stochastic process generates a different r(t) in each year of a scenario, while d(i) is fixed for each year of that scenario. The value of d(i) for an individual varies across scenarios according to a normal distribution with zero mean and standard deviation as specified by this input parameter. If the only equity investment available in the account is an SP500 index fund, then the value of this standard deviation should be set equal to zero. If on the other hand, individual stocks and/or a variety of mutual funds are available, it seems likely that individuals will experience lifetime returns that differ from the SP500 index return. The lifetime difference and its standard deviation are expressed in decimal (not percentage) terms, so a difference of three percentage points is expressed as a 0.03 value, meaning that individual experiences a return this much higher than the market return. In order to specify a distribution that generates lifetime differences that fall within one percentage point above or below zero in about 95 percent of scenarios, the value of 0.005 should be specified for this input variable. Note that if market equity returns are highly volatile and a high value is specified for this input parameter, it may be possible to randomly generate individual rates of return on equities that are less than -100%. In such cases, the rate of return is set to -100% and a warning message is printed to the screen or run.log if using the runlog option. Note also that when a man is married, his individual difference value is taken to be that of his wife, insuring that the couple has a uniform difference value. This parameter is used in both the macro and micro models.

Valid values: 0.0 to 0.05, Real

Source code: acct.h and acct.cpp

SSASIM:   ACCT . i_m_rstrm
Specifies which random number stream is used to generate normal variates that are scenario values of the individual-market equity rate of return difference (see i_m_erd_sd entry above). This stream number cannot be used for another purpose in this run.

Valid values: 0 to 59, Integer

Source code: acct.h and acct.cpp

SSASIM:   ACCT . unisex_an
Specifies whether or not annuity pricing is conducted using combined-gender mortality expectations or separate-gender mortality expectations. A true value simulates unisex pricing, while a false value simulates annuity pricing separately for men and women. (See the yr_mdr_ma and dr_mdr_ma fields below for details on how these mortality expectations are formed.) This parameter is used in both the macro and micro models.

Valid values: T (=1) or F (=0) (for true or false), Logical

Source code: acct.h and acct.cpp

SSASIM:   ACCT . s_frac_an
Specifies fraction of annuity payment paid to survivor following death of annuitant. Fraction expressed as a decimal (not a percent), so 1.00 implies survivor is paid same benefit as annuitant. A single-life annuity (with no payment to survivor) is specified with a zero value. NOTE: when s_frac_an is greater than zero, all couples who buy an annuity buy a joint-and-survivor annuity with the specified survivor payment fraction, but single individuals buy single-live annuities. This parameter is used in both the macro and micro models.

Valid values: 0.0 to 1.0, Real

Source code: acct.h and acct.cpp

SSASIM:   ACCT . indexed_an
Specifies whether or not annuity purchased with account funds is indexed for inflation or not. A true value causes the annuity to pay a real amount, where the nominal payment is fully adjusted for changes in the CPI inflation index, and also causes the annuity to be priced using inflation expectations. (See the yr_inf_ma and dr_inf_ma fields below for details on how these inflation expectations are formed.) This parameter is used in both the macro and micro models.

Valid values: T (=1) or F (=0) (for true or false), Logical

Source code: acct.h and acct.cpp

SSASIM:   ACCT . yr_inf_ma
Specifies number of years used in moving average calculation of inflation expectations, which are utilized in annuity pricing. This parameter is used in both the macro and micro models.

Valid values: 1 to 10, Integer

Source code: acct.h and acct.cpp (moving average calculations are performed in the expected_inflation_rate function in prdmrkt.cpp)

SSASIM:   ACCT . dr_inf_ma
Specifies discount rate used in moving average calculation of inflation expectations, which are utilized in annuity pricing. This parameter is used in both the macro and micro models.

Valid values: 0.0 to 1.0, Real

Source code: acct.h and acct.cpp (moving average calculations are performed in the expected_inflation_rate function in prdmrkt.cpp)

SSASIM:   ACCT . yr_mdr_ma
Specifies number of years used in moving average calculation of mortality decline expectations, which are utilized in annuity pricing. This parameter is used in both the macro and micro models.

Valid values: 1 to 10, Integer

Source code: acct.h and acct.cpp (moving average calculations are performed in the expected_mortality_decline_rate function in pop.cpp)

SSASIM:   ACCT . dr_mdr_ma
Specifies discount rate used in moving average calculation of mortality decline expectations, which are utilized in annuity pricing. This parameter is used in both the macro and micro models.

Valid values: 0.0 to 1.0, Real

Source code: acct.h and acct.cpp (moving average calculations are performed in the expected_mortality_decline_rate function in pop.cpp)

SSASIM:   ACCT . rle_offset
If not all of the account balance is used to buy an annuity at retirement, then individuals are assumed to withdraw part of their remaining invested balance during each year of retirement. They are assumed to recalculate this withdrawal fraction each year. This annual calculation assumes that they know the remaining life expectancy of all people in their birth cohort of their gender. If this remaining life expectancy is denoted by rle, then the withdrawal fraction might be assumed to be 1/rle, where the fraction would be one if rle was less than one. But the policy analyst may want to simulate withdrawal behavior that is different from this simple rule. The value specified in this rle_offset parameter provides a crude way to characterize alternative withdrawal behavior because the withdrawal fraction is actually computed to be 1/(rle+rle_offset), where the fraction is one if the denominator is less than one. In order to simulate aversion toward the "out-living-your-assets" risk, a positive rle_offset can be specified. Or at the other end of the prudence spectrum, a "take-the-money-and-run" approach to retirement-age account balances can be represented by specifying a negative rle_offset. The rle_offset is expressed in years of expected life. Note that this rule means that there is a chance of an individual's account balance being zero before death, and also a chance of an individual's account balance being positive at death. In the latter case, the account balance is transferred to a surviving spouse, who can then withdraw retirement income from their account, but the transferred balance is not included in the dead individual's present value of retirement benefits calculation. If the deceased individual has no surviving spouse, then any positive account balance disappears in the analysis (i.e., it is not included in the present value of retirement benefits calculation for the individual). This parameter is used in both the macro and micro models.

Valid values: any, Real

Source code: acct.h and acct.cpp

SSASIM:   ACCT . offset_ben
Specifies whether or not OASI benefits are offset by an amount based on an individual's defined-contribution (DC) account contributions. This scheme of offsetting social security benefits was introduced into the reform debate by the 2001 CSSS proposals. When doing the offset, an individual's actual contributions are used to accumulate a HYPOTHETICAL account balance at first receipt of OASI benefits, with the hypothetical balance earning a specified real rate of return (see offset_rir below). Before first benefit receipt, the hypothetical account balance is transfered at death to the surviving spouse just like the actual account balance. Also, before first benefit receipt, the hypothetical account balance is subject to the same treatment as the actual account balance is at divorce (see divc_split below). At first benefit receipt, an individual's hypothetical balance is used to buy a hypothetical annuity that is indexed for inflation and has a single-life benefit for those who are unmarried and a joint and 2/3 survivor benefit for those who are married. The payment from this virtual annuity represents the obligation the recipient (and survivor, if married) has incurred by participating in the voluntary account program and having diverted some of the payroll tax into the individual account. This obligation is represented as a negative annuity payment that is added to the annual defined benefit being received by the individual, which means there is a logical possibility that the net defined benefit could be negative. Depending on how one interprets the incompletely specified CSSS proposals, the offset and actual annuity payment may be split between current, or divorced, spouses in proportion to the benefits generated from a single earnings history (see spou_split below). This parameter is used in both the macro and micro models.

Valid values: T (=1) or F (=0) (for true or false), Logical [cannot set both ACCT.offset_ben and ACCT.ben_topoff to true]

Source code: acct.h and acct.cpp

SSASIM:   ACCT . offset_rir
Specifies the real interest rate earning on actual contributions assumed for the accumulation of the hypothetical account balance used in the CSSS-style benefit offset scheme (see offset_ben above). The assumed real rate of return is expressed in percentage, not decimal, terms. This parameter is used in both the macro and micro models.

Valid values: 0.0 to 10.0, Real [expressed in percentage terms]

Source code: acct.h and acct.cpp

SSASIM:   ACCT . offrir4oap
Specifies whether or not the offset annuity is priced using the nominal interest rate implied by the offset_rir (see above) and the current inflation rate, or using the current nominal yield on Treasury bonds. A value of true implies offset annuity prices are calculated using the inflation-augmented offset_rir, while a value of false implies use of the current nominal Treasury yield. This parameter is used in both the macro and micro models.

Valid values: T (=1) or F (=0) (for true or false), Logical

Source code: acct.h and acct.cpp

SSASIM:   ACCT . spou_split
Specifies whether or not annuity payments are split between spouses when one receives a auxiliary spousal benefit. The only valid values are 0, 1, and 2. The meaning of these values is as follows: 0 implies that neither the offset nor the actual annuity payments are split between spouses; 1 implies that only the offset annuity payment is split between spouses; and 2 implies that both the offset and the actual annuity payments are split between spouses, but the actual payment is split only if all of the actual account balance was converted into an actual annuity. In all cases, the annuity payment is split in proportion to the benefits based on the earnings record associated with the annuity payment. When splitting is active, people who receive spousal benefits will have their annuity payment increased and people whose earnings history generates a spousal benefit will have their annuity payment decreased. The value of this policy parameter does not affect the aggregate results of the SSASIM macro model. The value of this policy parameter affects individual benefits for only married couples in the SSASIM micro model operating in ECI mode (because SSASIM ECI mode does not model divorce), but in the GEMINI model (and therefore, the SSASIM macro model operating in OLC mode) it potentially affects the benefits of both married couples and divorcees.

Valid values: 0 to 2, Integer

Source code: acct.h and acct.cpp

SSASIM:   ACCT . divc_split
Specifies whether or not account balances are split between spouses when they divorce. The splitting assumption applies to ACTUAL account balances and to HYPOTHETICAL account balances when the benefit offset scheme is active (see offset_ben above). The policy is represented here as involving an even split of the net account balance, which is defined as the balance at divorce less the balance at marriage. The value of this policy parameter affects the logic of only the GEMINI model (and therefore, the SSASIM macro model operating in OLC mode), which reads this table. It does not affect SSASIM CBA or ECI logic because neither simulate divorce.

Valid values: T (=1) or F (=0) (for true or false), Logical

Source code: acct.h and acct.cpp

SSASIM:   ACCT . ben_topoff
Specifies whether or not the trust-fund-financed (or tier-one) benefit is reduced just enough so that the sum of the account-financed (or tier-two) benefit and the trust-fund-financed benefit is equal to the unreduced trust-fund-financed benefit. In other words, the simulated tier-one benefit is a target, and the actual tier-one benefit is adjusted down until the sum of the actual tier-one benefit and the tier-two benefit equals the target. Most account reforms that have been proposed in the past assume this parameter is false. This parameter allows specification of account reforms where the tier-one benefit is reduced to be just a "topoff" of the account benefit, making the sum of the two benefits equal to the pre-reduction tier-one benefit. This parameter provides an alternative to the offset account mechanism for the "clawback" of tier-one benefits. Note that this parameter does not work in the macro model's CBA mode; it works only in the macro model's OLC mode, in the SSASIM micro model (ECI mode), and in GEMINI (RCS mode).

Valid values: T (=1) or F (=0) (for true or false), Logical [cannot set both ACCT.offset_ben and ACCT.ben_topoff to true]

Source code: acct.h and acct.cpp

SSASIM:   ACCT . acctdyn_id
Specifies foreign-key id value that points to rows in ACCTDYN table that contain dynamic account policy and behavioral parameters that vary by simulation year.

Valid values: 1 to 999999999 (nine digits), Integer

Source code: acct.h and acct.cpp

SSASIM:   ACCT . acctaa_id
Specifies foreign-key id value that points to rows in ACCTAA table that contain account asset allocation assumptions that can vary by age and gender.

Valid values: 1 to 999999999 (nine digits), Integer

Source code: acct.h and acct.cpp