HHS Logo: bird/facesU.S. Department of Health and Human Services

Brookings/ICF Long Term Care Financing Model: Programmer's/Operator's Manual

Peter Robertshaw and Lisa Maria B. Alecxih

February 1992

PDF Version (69 PDF pages)


This report was prepared under contract #HHS-100-94-0016 between the U.S. Department of Health and Human Services (HHS), Office of Disability, Aging and Long-Term Care Policy (DALTCP) and the Lewin Group. For additional information about the study, you may visit the DALTCP home page at http://aspe.hhs.gov/_/office_specific/daltcp.cfm or contact the ASPE Project Officer, John Drabek, at HHS/ASPE/DALTCP, Room 424E, H.H. Humphrey Building, 200 Independence Avenue, SW, Washington, DC 20201. His e-mail address is: John.Drabek@hhs.gov.



TABLE OF CONTENTS

OVERVIEW OF THE PROJECT
PREFACE
INTRODUCTION
I. MODEL DESCRIPTION
A. Overview
B. Code Structure
C. FORTRAN Subroutines
D. Assembler Subroutines
II. INPUT DATA SETS
III. OUTPUT DATAFILES
IV. RUNNING THE MODEL
A. Preparing to Run the Model
B. Running the Model
V. JOB CONTROL FILE
VI. UTILITY PROGRAMS
A. CHEKFL
B. TABLE2
VII. GENERATING A PERSON LEVEL FILE FOR TABULATIONS
ATTACHMENTS (separate file)
ATTACHMENT 1: DISLIFE.NEW -- Purchase probabilities
ATTACHMENT 2: DB.NEW -- Death benefits
ATTACHMENT 3: RPU.NEW -- Reduced paid up options
ATTACHMENT 4: PRE.NEW -- Monthly premium rates
ATTACHMENT 5: LAPSE.NEW -- Pension lapse rates
ATTACHMENT 6: Memo on Computer Budget for NIH Account
LIST OF FIGURES
FIGURE 1. Program Logic at the Subroutine Level

TABLE 1. Subroutine Descriptions
TABLE 2. Assembler Subroutine Descriptions
TABLE 3. Model Input Data Sets
TABLE 4. Summary of Model Output Files
TABLE 5. Example JCL for Model Execution
TABLE 6. Example DCL for Model Execution
TABLE 7. Sample Job Control File
TABLE 8. Sample Command Files for CHEKFL
TABLE 9. Input Parameters for the TABLE2 Utility
TABLE 10. Sample JCL and DCL for TABLE2
TABLE 11. Record Layout for Output Data File


OVERVIEW OF THE PROJECT

In September of 1988, the Office of the Assistant Secretary for Planning and Evaluation (ASPE) contracted with Lewin-ICF and the Brookings Institution to develop a public use version of the Brookings/ICF Long Term Care Financing Model. Using microsimulation techniques, the model projects the utilization and sources of financing for nursing home and home care services among the elderly to the year 2020.

Under this contract, many of the assumptions used in the model were revised to reflect data and findings that had recently become available. As the need for alternative policy simulations arose, the capabilities of the model were expanded. Examples of the types of simulations modeled include: the purchase of new private long term care insurance products; the use of pension funds to purchase long term care insurance; and publicly sponsored programs, such as the long term care benefits proposed by the Pepper Commission.

One of the products of this project is a public use version of the model code and accompanying documentation. The documentation includes:

Model Assumptions, which presents the assumptions used in developing the model.

Designing and Using Model Simulations, which presents assumptions used in modeling alternative proposals and using the results of the model.

A User's Guide to Specifying Simulations, which details how to specify simulations using the model's parameters.

A Programmer's/Operator's Manual, which shows the code structure and operation of the model.


PREFACE

This report is one of four related to the Brookings/ICF Long Term Care Financing Model. It outlines the programming logic, input and output data sets, and running the model. The three other documents discuss: 1) the assumptions used in developing the model; 2) assumptions used in modeling alternative proposals; and 3) using the results of the model, and how to specify simulations using the model's parameters.

This documentation was prepared by Peter Robertshaw, a subcontractor to Lewin-ICF and Lisa Maria B. Alecxih of Lewin-ICF. John Drabek, serving as the project officer, and Paul Gayer of the Office of the Assistant Secretary for Planning and Evaluation provided invaluable comments.

This report was developed as part of the documentation of a public use version of the Brookings/ICF Long Term Care Financing Model for the Office of the Assistant Secretary for Planning and Evaluation. Other reports in this series include: Copies of the reports may be obtained by writing to:

     Brenda Veazey
     Department of Health and Human Services
     Room 424E, Humphrey Building
     200 Independence Avenue, S.W.
     Washington, D.C. 20201


PROGRAMMERS/OPERATORS MANUAL

This document is intended to assist programmers/operators in the use of the Brookings/ICF Long Term Financing Model. Section I of this document is a description of the model. This description presents a brief overview of the model's purpose and a brief description of the programming logic at a subroutine level.

Section II and Section III of this document describe in detail the input and output data sets used by the model. Section IV discusses the editing, compiling, linking and running of the model from an operator's viewpoint. Sample JCL and DCL batch files are included to assist in the setup of the model. Section V gives details on the job control file (LTC2.CON) which is used to control important user-variable aspects of the simulation.

Section VI describes two utility programs for use with the model. The first is a table extraction utility, which gives the user the ability to extract a specified list of tables, suitable for printing or down-loading and importing into a PC-based spreadsheet. The second utility checks two parameter files and reports any differences between them.

Finally, Section VII describes a FORTRAN program that converts an optional data set produced by the model into a person level file from which tabulations may be produced.


I. MODEL DESCRIPTION

A. Overview

The Brookings/ICF Long Term Care (LTC) simulation model simulates the utilization and financing of both institutional and noninstitutional long-term care services for elderly individuals through the year 2020. Institutional services include nursing home care provided by skilled nursing facilities and intermediate care facilities. Noninstitutional services include home health, homemaker, choremaker, personal care, and meal preparation services. The model simulates the number of individuals receiving these services and the costs of these services as financed by various public and private sources. The overall objective of the model is to simulate the effects of various financing and organizational reform options on future public and private expenditures for nursing home and home care services.

The model begins with a nationally representative sample of the adult U.S. population. Each member of this sample population is assigned a weight value which, when aggregated, will approximate the total U.S. population in terms of both number of persons and demographic (i.e. age, sex, etc.) characteristics. Each record in the sample database contains information on a person's age, sex, marital status, income, assets, and other characteristics. The model simulates changes for each individual in the sample population from 1986 to 2020, simulating changes in age, economic status, disability status, utilization of long term care, and method of paying for such care.

The model uses a Monte Carlo simulation methodology. The model simulates changes in an individual's status by drawing a random number between zero and one and comparing it to the fixed probability of that event occurring for an individual with a given set of socio-demographic characteristics. In order to produce consistent results between runs, the random numbers used are drawn from a permanent datafile so that each time the model is run, the same random number is used for each decision made.

The model can be used to simulate long-term care financing assuming changes in private payment methods (such as increased purchase of private long-term care insurance), or new public financing programs. These simulations are greatly affected by the choice of assumptions about the economy (such as the rate of growth of the overall economy and nursing home prices) and individual behavior (such as rates of nursing home utilization and insurance purchase). The model can be used to make estimates using alternative assumptions to show how sensitive the results are to the assumptions chosen. Many of the possible assumptions and options are parameterized to allow for easy model operation.

B. Code Structure

The code structure for the Brookings/ICF Long Term Care Financing model is relatively straight forward. At its simplest level, the program consists of the main line program which calls a variety of subroutines to perform specific tasks. The main line program may be broken down into three sections (see Figure 1): initialization, data processing and reporting.

The initializing step sets up many of the arrays used in the model calculations, including defining tax rates, inflation factors, and poverty levels. Arrays used for accumulating and reporting functions are initialized to zero in this step.

The next step is the data processing loop. This loop is executed once for each record in the database. Intermediate arrays are initialized and then the annual cost loop is entered. This loop is performed for each individual for every year from 1980 to 2025. Within each year the routine checks for nursing home use, sets up random numbers used in the simulation, performs any 'special case' scenarios, checks for insurance availability, calls the costs calculation routines, stores costs in appropriate arrays, and calls the table accumulation routines.

The final step in the program is the reporting step. In this step, the main line programs calls a series of subroutines which total the accumulation arrays and print out the summary tables to the output file. This step is executed after processing the last record in the database.

C. FORTRAN Subroutines

The following tables describe the main line and each of the FORTRAN subroutines in the model. The description includes a listing of which routines call, or are called by, each subroutine. The main line program description is first, followed by each of the subroutines in alphabetical order.

Computer Graphic


TABLE 1. Subroutine Descriptions
Routine Description Calls:
Main (LTC2) This routine performs data initialization, then loops over (i.e. reads) every record in the database. For each record, this routine loops over every year from 1980 to 2025. Within each year of the simulation, the routine checks for nursing home use, sets up random numbers used in the simulation, performs any 'special case' scenarios (hard coded), checks for insurance availability, calls the cost calculation routines, stores costs in appropriate arrays, and calls the table accumulation routines. After processing all the records in the database, this routine calls the table printing routines and then ends the program Called By: -
Calls: PARAIN
RWJXXX
SETUP
ZILCH1
ZILCH3
ZIL256
DPPAX
TAB38
NISPRB
TAB44
RINDV
FIXP
FIXNI
FIXS
MOVR
MOVRNI
GETRAN
GETAST
TAXCLC
SMI
WEIGHT
INSURE
HAWCC
SSI
YRCOST
TBL256
HAWACC
TBLPJA
W2020
WRITR
ACCUM
OUTER
SSAC
SSOUT
ZILCH2
HAWTAB
OOPS
OUT256
TABLES
TBLPJO
AARPA Subroutine AARPA accumulates data reported in Table 30, 35 and 36. Called By: ACCUM
Calls: WEIGHT
AARPT Subroutine AARPT prints out Tables 30, 35 and 36. Called By: PERTAB
Calls: PRUDU
ACCUM Subroutine ACCUM accumulates data for many of the nursing home tables (i.e. Tables 1-10). Initiates calls to various other accumulation routines. Called By: MAIN
Calls: PERACC
GAYACC
AARPA
WEIGHT
OUTER
BACCUM
ACCYR Subroutine ACCYR accumulates both nursing home and non-institutionalized monthly costs into an annual data grid. Called By: YRCOST
Calls: -
BACCUM Subroutine BACCUM accumulates data for many of the non-institutionalized tables (i.e. Tables 11-20). Called By: ACCUM
Calls: WEIGHT
OUTER
CAPG Subroutine CAPG calculates capital gains tax liability. Called By: TAXCLC
Calls: -
CATAVL Subroutine CATAVL determines the amount of income and assets that is available for nursing home payments under the catastrophic coverage act of 1989. Called By: MMCOST
Calls: -
CCGRID Subroutine CCGRID controls the monthly calculation of costs for both nursing home and non-institutionalized services. The routine loops over the months in the year, collects information on whether or not the individual is covered by insurance, checks against deductibles/maximums as applicable, adjusts assets, and calls the routines that do the actual cost calculations. The routine then assigns all costs to the appropriate data grids. Called By: YRCOST
Calls: SSI
PUBLIC
MMCOS2
MMCOST
CHKNUM Subroutine CHKNUM checks input parameters that are required to be within specified ranges. Called By: PARAIN
Calls: -
COMMA Character function COMMA is used to format output fields with embedded commas. Called By: All tabling routines
Calls: -
CRDOUT Subroutine CRDOUT is used to dump out individual and spouse data for the credited contribution scenarios. Not currently called by the model (used for debugging purposes only). Called By: -
Calls: -
DPPAX Subroutine DPPAX initializes, accumulates and prints out Table 37 (distribution of pension plan assets by age and family income for 1990). Called By: Main
Calls: -
ENTRY Subroutine ENTRY parses each line of the users input parameter file. This routine is called once for every line in the file. Called By: PARAIN
Calls: IDIG
FIXNI Subroutine FIXNI initializes the non-institutional data array for each year of the simulation. Called By: MAIN
Calls: -
FIXP Subroutine FIXP initializes the individuals data array for each record. Called By: MAIN
Calls: -
FIXS Subroutine FIXS initializes the spouses data array for each record. Called By: MAIN
Calls: -
GAYACC Subroutine GAYACC accumulates data for tables G1 through G5, comparing average income and social security income between nursing home residents, non-residents and all elderly. Called By: ACCUM
Calls: WEIGHT
GAYOUT Subroutine GAYOUT prints out Tables G1 through G5. Called By: PERTAB
Calls: -
GETAST Subroutine GETAST uses the 1984 SIPP databases to impute financial and home equity assets to each individual and spouse. It is called once per record when the individual reaches age 65. Called By: MAIN
Calls: -
GETLOS Subroutine GETLOS fills in the nursing home length of stay array and disability arrays used throughout the model. Called By: RINDV
Calls: -
GETRAN Subroutine GETRAN looks up an array of pseudo-random numbers seeded by the individuals index number. Called By: MAIN
Calls: -
HAWACC Subroutine HAWACC accumulates population counts, incomes, and health care expenditures for reporting in Tables A, B, C and D. Called By: MAIN
Calls: -
HAWCC Subroutine HAWCC calculates credited and non-credited contribution amounts for the credited contribution universal scenario. Called By: MAIN
Calls: WEIGHT
HAWFIL Subroutine HAWFIL constructs a replacement person from the current record. Called By: RINDV
Calls: -
HAWTAB Subroutine HAWTAB creates totals and prints out Tables A, B, C and D. Called By: MAIN
Calls: WEIGHT
HAWYES Subroutine HAWYES sets flags which are used to determine whether or not a replacement person is to be constructed from the current record. Called By: RINDV
Calls: -
IDIG Integer function IDIG checks to see if a character is a valid numeric. It is used in the parsing of the input parameter file. Called By: ENTRY
Calls: -
INGRID Subroutine INGRID constructs part of the data grid used to report the annual non-institutionalized costs. Called By: YRCOST
Calls: -
INSURE Subroutine INSURE determines the insurance status of the individual/spouse. If a person does not have insurance, the routine determines if they are eligible to buy, looks up the appropriate premium, checks for reduced premiums and tax credits, looks up the probability of buying insurance based on asset level, worker status, and percent of income of premium, adjusts the probability by any underwriting function or poor elderly assumptions, then compares this probability to a random number to determine whether insurance is purchased. After purchase, the routine defines benefits for every year from the purchase year to 2025. If a person already has insurance, the routine will determine whether they keep it by checking the current premium against the defined lapse probabilities. Called By: MAIN
Calls: -
ITABON Integer function ITABON checks whether or not to print out a given table (depends on input parameters). Called By: Many tabling
Calls: -
ITEM Subroutine ITEM looks up itemized deductions in the calculation of federal tax liability. Called By: TAXCLC
Calls: -
MKGRD2 Subroutine MKGRD2 completes the construction of the data grid used to report the annual non-institutionalized costs. Called By: YRCOST
Calls: -
MKGRID Subroutine MKGRID constructs part of the data grid used to report the annual nursing home costs, including distributing the length of stay over the required number of months, and assigning days covered by Medicare to each month. Called By: YRCOST
Calls: -
MMCOS2 Subroutine MMCOS2 calculates the monthly cost of a non-institutionalized visit. The routine sets the monthly cost and then determines how that cost is divided between public policy payments, long term care insurance, Medicare, cash, assets, other payor and Medicaid. The routine is called once for every month a person is receiving non-institutionalized services. Called By: CCGRID
Calls: -
MMCOST Subroutine MMCOST calculates the monthly cost of a nursing home stay. The routine sets the monthly costs, and then determines how that cost is divided between public policy payments, long term care insurance, Medicare, cash, assets, and Medicaid. The routine is called once for every month a person is in a nursing home. Called By: CCGRID
Calls: CATAVL
MOVR Subroutine MOVR moves nursing home data into position before processing. Called By: MAIN
Calls: -
MOVRNI Subroutine MOVRNI moves non-institutional data into position before processing. Called By: MAIN
Calls: -
NEWTAB Subroutine NEWTAB prints out Tables 21, 22, and 23. Called By: TABLEB
Calls: PERTAB
NISPRB Subroutine NISPRB determines whether or not an individual/spouse uses formal or informal non-institutionalized services. The probability of use is based on age, marital status, family income, disability status and sex of the person. The routine defines what type of non-institutionalized services are received, how long (days) they are received for, type of payments used for financing the visits, and number of visits. Called By: MAIN
Calls: -
OOPS Subroutine OOPS initializes, accumulates, and prints Tables 51-53. Called By: MAIN
Calls: -
OUT256 Subroutine OUT256 performs calculations on the arrays containing data for Tables 25 and 26. Called By: MAIN
Calls: -
OUTER Subroutine OUTER dumps out personal data, nursing home data and non-institutional data for an individual. It is used for debugging purposes. Called By: MAIN
PERACC
Calls: ACCUM
BACCUM
PARAIN Subroutine PARAIN reads in the users input parameter file. Each line of data entered is checked for validity and against pre-defined ranges. Logic checks between parameters are also performed. Called By: MAIN
Calls: ENTRY
CHKNUM
PERCENT
PERACC Subroutine PERACC accumulates data reported in Tables 24 through 29. Called By: ACCUM
Calls: WEIGHT
OUTER
PERTAB Subroutine PERTAB prints out tables 24 through 29. Called By: NEWTAB
Calls: GAYOUT
AARPT
PERCNT Subroutine PERCNT checks input parameters that are required to add to 100% Called By: PARAIN
Calls: -
PRUDU Subroutine PRUDU prints out Tables 31, 32, 33, and 34. Called By: AARPT
Calls: -
PUBLIC Subroutine PUBLIC determines whether or not an individual is eligible for public programs. The routine checks against age and availability, deductibles, and maximum dollar amounts. Called By: CCGRID
Calls: -
RANSET Subroutine RANSET reads in the random number database and stores it in two arrays which are ready for access from the model. Called By: SETUP
Calls: -
READAS Subroutine READAS reads in the asset and home equity databases as well as the probability database used to assign assets and home equity to individuals. The assets, home equity and probability databases were created from the 1984 SIPP. Called By: SETUP
Calls: -
REAGE Subroutine REAGE initializes the individual and spouse pension income arrays, and then calculates annual pension incomes based on information in the PRISM defined benefit and defined contribution arrays. Called By: RINDV
Calls: -
RINDV Subroutine RINDV reads in the input database file (i.e. the output file from the PRISM model). This routine also initiates the construction of the replacement population set (i.e. synthetic person level data for person aged less then 25 in 1979) if required by the input parameters. Called By: MAIN
Calls: REAGE
GETLOS
HAWFIL
HAWYES
RWJXXX Subroutine RWJXXX initializes, accumulates and prints tables RWJ1 and RWJ4. It is used in a special case that adjusted each individuals assigned weight according to age, sex, marital status, nursing home use, disability status, and average social security benefit at age 65. Called By: MAIN
Calls: -
SETD Subroutine SETD initializes double precision arrays to a given value (usually zero). Called By: Many routines
Calls: -
SETUP Subroutine SETUP initializes many of the arrays used in the model calculations, including defining tax rates, inflation factors, and poverty rates. It includes the calls to read in the asset level and probability files, and set-up of the random numbers. Called By: MAIN
Calls: READAS
RANSET
TAXSET
SMI Subroutine SMI calculates additional taxes. Called By: MAIN
Calls: -
SSAC Subroutine SSAC initializes, accumulates and prints the income/assets of the aged tables (Table 45-48) Called By: MAIN
Calls: SETD
SSI Subroutine SSI calculates federal and state monthly SSI income. Called By: MAIN
Calls: CCGRID
SSOUT Subroutine SSOUT converts the model output to a special format required for use with TPL. Called By: MAIN
Calls: -
STCALL Subroutine STCALL calculates an individuals state tax liability given a federal tax liability. Called By: TAXCLC
Calls: -
TAB38 Subroutine TAB38 initializes, accumulates and prints out Tables 38 through 43. Called By: MAIN
Calls: -
TAB44 Subroutine TAB44 initializes, accumulates and prints out Table 44. Called By: MAIN
Calls: -
TABLEB Subroutine TABLEB prints out many of the non-institutionalized tables (i.e. tables 11 through 20). Called By: TABLES
Calls: ZILCH2
NEWTAB
TABLES Subroutine TABLES prints out many of the nursing home tables (i.e. Tables 1-10). It initiates call to non-institutionalized table routines. Called By: MAIN
Calls: ZILCH2
TABLEB
TAXCLC Subroutine TAXCLC begins the process of looking up the tax liability of the individual and spouse. Called By: MAIN
Calls: CAPG
ITEM
TAX
STCALL
TAXSET Subroutine TAXSET creates the tax tables that are used to calculate federal and state income taxes based on income level. Called By: SETUP
Calls: -
TAX Subroutine TAX uses the tax tables created in TAXSET to look up an individuals tax liability for the current year. Called By: TAXCLC
Calls: -
TBL256 Subroutine TBL256 accumulates data for reporting in Table 25 and 26. Called By: MAIN
Calls: -
TBLPJA Subroutine TBLPJA accumulates data for reporting in the PJE series of tables. Called By: MAIN
Calls: -
TBLPJO Subroutine TBLPJO prints out the PJE series of tables. Called By: MAIN
Calls: -
W2020 Subroutine W2020 adjusts length of stays for persons entering nursing homes in 2019 and 2020. Called By: MAIN
Calls: -
WEIGHT Subroutine WEIGHT multiplies an individuals PRISM weight by adjustment factors to make population totals match 1986 base year data and projected data. Includes division of weight as required by the iteration parameter. Called By: MAIN
HAWCC
PERACC
GAYACC
AARPA
ACCUM
BACCUM
HAWTAB
Calls: -
WRITR Subroutine WRITR writes out personal data, nursing home data and non-institutional data for an individual to the optional output data file. Called By: MAIN
Calls: -
WTBAFF Subroutine WTBAFF dumps out specified common block data. It is not currently called in the model (it is used for debugging purposes only and produces large quantities of output). Called By: -
Calls: -
WTGRD2 Subroutine WTGRD2 dumps out information on each persons non-institutionalized stay each year. It is used only for de-bugging purposes. Called By: YRCOST
Calls: -
WTGRID Subroutine WTGRID dumps out information on each persons nursing home stay each year. It is used only for de-bugging purposes. Called By: YRCOST
Calls: -
YRCOST Subroutine YRCOST begins the process of calculating the annual cost of staying in a nursing home or receiving non-institutionalized services. It is called once per year per individual. Called By: MAIN
Calls: INGRID
MKGRID
MKGRD2
WTGRD2
WTGRID
CCGRID
ACCYR
ZIL256 Subroutine ZIL256 initializes a series of output table accumulation arrays to zero. Called By: MAIN
Calls: -
ZILCH1 Subroutine ZILCH1 initializes a series of output table accumulation arrays to zero. Called By: MAIN
Calls: -
ZILCH2 Subroutine ZILCH2 initializes a series of output table accumulation arrays to zero. Called By: MAIN
Calls: TABLEB
TABLES
ZILCH3 Subroutine ZILCH3 initializes a series of output table accumulation arrays to zero. Called By: MAIN
Calls: -

D. Assembler Subroutines

In addition to the FORTRAN subroutines described above, the model also makes extensive use of three assembler language subroutines described in Table 2. IBM and VAX versions of these routines currently exist.

TABLE 2. Assembler Subroutine Descriptions
Routine Description Calls:
RDCH77 This routine performs a very fast, unformatted read. This routine is invoked with: CALL RDCH77 (I,A,LEN,*900), where I is the logical unit number to which the data set to be read is attached, A is an array with sufficient dimensions to hold a record of data, LEN is the length of the record read by RDCH77 (i.e. the subroutine returns this value), and 900 is the FORTRAN statement number that is executed after an end-of-file return code is received. Called By: RINDV
Calls: -
RJS201 This routine performs a byte copy operation on the specified arrays. This routine is invoked as follows: CALL RJS201 (NB,A1,NS1,A2,NS2), where NB is the number of bytes to be copied, A1 is the array from which the bytes are to be copied, NS1 is the starting byte for the copy operation, A2 is the array to which the bytes are copied, and NS2 determines the position in A2 to which to bytes are copied. Called By: MOVR
MOVRNI
WRITR
W2020
GETRAN
Calls: -
SETX This routine initializes an array to a specified value. The call for this routine is: CALL SETX(A,N,V), where A is the name of the array to be initialized, N is the number of words to be initialized, and V is the value to which the array is to be initialized. Note that A and V can be either real or integer. Called By: MAIN
RINDV
SETUP
YRCOST
CCGRID
FIXP
FIXS
FIXNI
TAXSET
REAGE
PARAIN
ENTRY
ACCUM
BACCUM
PERACC
WEIGHT
AARPA
RWJXXX
Calls: -


II. INPUT DATA SETS

Table 3 lists the input data sets required to run the model.

TABLE 3. Model Input Data Sets
Dataset Name Unit
Number
Description Size
(kBytes)
NATADJ.DAT(2) 3 This data set is used to calibrate model weights to in order to approximate U.S. population aggregates. It is used only when replacement population is created. 13
NIHPROB4.PRN(1) 4 These probability factors are used to calculate nursing home induced demand. Factors are determined by age, marital status, disability status and prior nursing home use. 14
TAXR.DAT(1) 8 This is the table of tax rates by income bracket and filing status. 18
FAMLIFE.DATA(1) (generally on tape or cartridge) 9 This is the input data file containing approximately 44,000 person records. It is the output file from the PRISM run. 156,640
FAMSUB.DATA(1) 9 This is the input data file containing the first 500 person records. It is used for testing purposes. 1,780
RANDOM.NUM(1) 11 This is the random number database used to make all 'random' decisions in the model. 426
LTC2.CON(1) 12 This is the job control file, used to control user-variable aspects of the simulation. See Section 6 for more details 1
DISLIFE.NEW(2) 17 These are purchase probability tables. Probabilities are presented by age, premium to income ratio, and disabled/non-disabled. 8
DB.NEW(2) 40 These are death benefit tables by issue age, attained age and 12 options. 68
RPU.NEW(2) 41 These are reduced paid-up options tables by issue age, duration and indexing. 9
PRE.NEW(2) 42 These are monthly premium rates by option, issue age and employment status. 9
LAPSE.NEW(2) 43 These are pension lapse rates by policy year, age group, and type of pension. 8
BASE.PRB(1) 67 This is the parameter file in which the user can define insurance, public policy, deductibles, and many other options. If altered, it should be saved under a different name. 84
ASSET1A.DAT(1) 80 This is the first of three asset databases. Assets are stored by age, marital status, and pension status, and are assigned by income level. These asset tables were created from the 1984 Survey of Income and Program Participation. This file contains assets for age group 65-67. 85
ASSET2A.DAT(1) 81 This is the asset database for age group 68-74. 85
ASSET3A.DAT(1) 82 This is the asset database for age group 75+. 85
HOME1A.DAT(1) 83 This is the first of three home equity databases. Data are stored in the same format as asset database above. These tables were created from the 1984 SIPP. This file contains home equities for the 65-67 age group. 85
HOME2A.DAT(1) 84 This is the home equity database for age group 68-74. 85
HOME3A.DAT(1) 85 This is the home equity database for age group 75+. 85
PROB1A.DAT(1) 86 This is the first of three probability databases. These probability tables are stored by age, marital status, pension status and income level. These tables are used to assign the financial and home equity assets described above. This file contains probabilities for age group 65-67. 85
PROB2A.DAT(1) 87 This is the probability database for age group 68-74. 85
PROB3A.DAT(1) 88 This is the probability database for age group 75+. 85
(1) = Required dataset
(2) = Optional dataset (depends on input parameters)


III. OUTPUT DATAFILES

Table 4 contains a listing and description of each output datafile the model creates.

TABLE 4. Summary of Model Output Files(1)
Dataset Name Unit
Number
Description Size
(kBytes)
BASE.PRT 6 This file contains various information about the run including dumps of setup variables. 292
BASE.OUT 10 This is an optional output datafile which contains annual information for each person in the database. 60,000
BASE.TAB 20 This file contains the output tables from the run. 2,550
BASE.DMP 21 This is a dump of annual person, nursing home, and non-institutional data for the first 100 persons who receive services. 292
(1) = Dataset names used here are examples only.


IV. RUNNING THE MODEL

A. Preparing to Run the Model

The Brookings/ICF Long Term Financing Model is composed of 80 subroutines. In order to run the model, each subroutine must be compiled and linked into an executable module. This can either be done by 1) compiling each subroutine separately and then link-editing all the routines together, 2) or by combining all the subroutines into one file and compiling and linking that one file.

All the input datasets indicated as required [(1) = required dataset] in Table 2 must be available to the model when it begins running. In addition, any of the optional datasets called for in the parameter file must also be available. The output files from the model require approximately three megabytes of disk space, excluding the optional output datafile (see unit number 10 in Table 4). Approximately six megabytes of disk space are required to store both the input data bases and the output table file.

Finally, one tape drive is needed to read the input data base. See Attachment Six for a discussion of the cost of running the model at the National Institute on Health Computer Center.

B. Running the Model

Link-editing and executing this model requires approximately five megabytes of memory. Required run-time of the model depends on the type of computer being used. For example, cpu time on a VAX 8650 is approximately 95 minutes, and on an IBM 3090E cpu time is approximately 15 minutes. If the replacement population option is specified, these run times are approximately doubled.

Table 5 shows an example JCL batch file to execute the model on an IBM 3090E. Table 6 shows the equivalent DCL code to run the model on a VAX system.

TABLE 5. Example JCL for Model Execution
//IIILTC JOB (AAAA,406,C,40000,2000),YOURNAME
/*KEYWORD=ZZZ
/*ROUTE PRINT HOLD
/*NOTIFY III
/*ROUTE XEQ TAPE
/*ROUTE XEQ VECTOR
/*MESSAGE 012345,R;
/*DISCOUNT
//S1 EXEC FORVCOMP, CORE=4500K,
// OPTIONS='OPT(3),VECTOR,NOMAP,NOXREF,NOSOURCE'
//COMP.SYSIN DD DSN=AAAAIII.LTC2N.FORT,DISP=SHR,
//UNIT=FILE,FOL=SER=FILE37
//S2 EXEC FORVLKGO
//LOAD.SYSLIN DD
//DD DSN=AAAAIII.OBJLIB(RDCH77),DISP=SHR,UNIT=FILE,VOL=SER=FILE37
//DD DSN=AAAAIII.OBJLIB(RJS201),DISP=SHR,UNIT=FILE,VOL=SER=FILE37 //DD DSN=AAAAIII.OBJLIB(SETX),DISP=SHR,UNIT=FILE,VOL=SER=FILE37
//GO.FT08F001 DD DSN=AAAAIII.TAXR.DAT,DISP=SHR,
// UNIT=FILE,VOL=SER=FILE37
//GO.FT09F001 DD DSN=AAAAIII.FAMILIFE1.DATA,DISP=(OLD,KEEP),
// UNIT=3480,VOL=SER=012345,LABEL=(1,SL,,IN),
// DCB=(RECFM=VB,LRECL=30404,BLKSIZE=30408)
//GO.FT12F001 DD DSN=AAAAIII.LTC2.CON,DISP=SHR,
// UNIT=FILE,VOL=SER=FILE37
//GO.FT20F001 DD DSN=AAAAIII.BASE.TAB,DISP=(NEW,KEEP),
// UNIT=FILE,VOL=SER=FILE37,SPACE=(TRK,(80,2),RLSE),
// DCB=(LRECL=133,RECFM=FB,BLKSIZE=13300)
//GO.FT21F001 DD DSN=AAAAIII.BASE.DMP,DISP=(NEW,KEEP),
// UNIT=FILE,VOL=SER=FILE37,SPACE=(TRK,(80,2),RLSE),
// DCB=(LRECL=80,RECFM=FB,BLKSIZE=8000)
//GO.FT67F001 DD DSN=AAAAIII.BASE.PRB,DISP=SHR,
// UNIT=FILE,VOL=SER=FILE37
//GO.FT80F001 DD DSN=AAAAIII.ASSET1A.DAT,DISP=SHR,
// UNIT=FILE,VOL=SER-FILE37
//GO.FT81F001 DD DSN=AAAAIII.ASSET2A.DAT,DISP=SHR,
// UNIT=FILE,VOL=SER-FILE37
//GO.FT82F001 DD DSN=AAAAIII.ASSET3A.DAT,DISP=SHR,
// UNIT=FILE,VOL=SER-FILE37
//GO.FT83F001 DD DSN=AAAAIII.HOME1A.DAT,DISP=SHR,
// UNIT=FILE,VOL=SER-FILE37
//GO.FT84F001 DD DSN=AAAAIII.HOME2A.DAT,DISP=SHR,
// UNIT=FILE,VOL=SER-FILE37
//GO.FT85F001 DD DSN=AAAAIII.HOME3A.DAT,DISP=SHR,
// UNIT=FILE,VOL=SER-FILE37
//GO.FT86F001 DD DSN=AAAAIII.PROB1A.DAT,DISP=SHR,
// UNIT=FILE,VOL=SER-FILE37
//GO.FT87F001 DD DSN=AAAAIII.PROB2A.DAT,DISP=SHR,
// UNIT=FILE,VOL=SER-FILE37
//GO.FT88F001 DD DSN=AAAAIII.PROB3A.DAT,DISP=SHR,
// UNIT=FILE,VOL=SER-FILE37
//GO.FT11F001 DD DSN=AAAAIII.RANDOM.NUM,DISP=SHR,
// UNIT=FILE,VOL=SER-FILE37
//GO.FT03F001 DD DSN=AAAAIII.NATADJ.DAT,DIS=SHR,
// UNIT=FILE,VOL=SER-FILE37
//GO.FT04F001 DD DSN=AAAAIII.NIHPROB4.PRN,DISP=SHR,
// UNIT=FILE,VOL=SER-FILE37


TABLE 6. Example DCL for Model Execution
$PMOUNT PAC1
$@LTCLINK
$PURGE
$ON ERROR THEN GOTO FIXUP
$ON CONTROL_C THEN GOTO FIXUP
$ASSIGN NATADJ.DAT FOR003
$ASSIGN NIHPROB4.PRN FOR004
$ASSIGN BASE.PRT FOR006
$ASSIGN SYS$OUTPUT FOR007
$ASSIGN TAXR.DAT FOR008
$ASSIGN PAC1:BLOCK1.DAT FOR009
$!ASSIGN BASE.OUT FOR010
$ASSIGN LTC2.CON FOR012
$ASSIGN BASE.TAB FOR020
$ASSIGN BASE.DMP FOR021
$ASSIGN BASE.PRB FOR067
$ASSIGN ASSET1A.DAT FOR080
$ASSIGN ASSET2A.DAT FOR081
$ASSIGN ASSET3A.DAT FOR082
$ASSIGN HOME1A.DAT FOR083
$ASSIGN HOME2A.DAT FOR084
$ASSIGN HOME3A.DAT FOR085
$ASSIGN PROB1A.DAT FOR086
$ASSIGN PROB2A.DAT FOR087
$ASSIGN PROB3A.DAT FOR088
$ASSIGN RANDOM.NUM FOR011
$RUN LTC2
$FIXUP:
$ON ERROR THEN GOTO END
$DEASSIGN ALL
$END:
$PURGE
$PRINT BASE.TAB
$PRINT BASE.DMP


V. JOB CONTROL FILE

The job control file is a small ASCII file that contains important parameters used to control the simulation. Table 7 shows an example job control file, and each of the 11 parameters in the file are described below.

TABLE 7. Sample Job Control File
1   IPART: SAMPLE RUN (1 = RUN WHOLE DBASE, 4=RUN 25%)
0   IWRITE: WRITE OUT THE OUTPUT FILE (0=NO, 1=YES)
0   ICASE: SPECIAL CASE FLAG (0 = NO SPECIAL CASE)
0   IHMTOS: COVERT HOME EQUITY (0=NO, 1 = YES)
1.0   SSILEV: SSI LEVEL MULTIPLIER FOR TRANSFER OF INCOME
2   IBASE: BASE CASE (0=PRE 1989, 1 = 1989, 2=POST 1989)
0   IPDMP: RECORD DUMP (0=NO, 1= DUMP 150 RECORDS)
999999   IMAX: NUMBER OF RECORDS TO PROCESS
0   LVLTST: LEVEL OF TESTING (LEAVE AT 0)
0   IHAW: <25 REPLACE POP (0=NO, 1 =HAWAII, 2=NATIONAL)
2   IIT: NUMBER OF ITERATIONS (2 = STANDARD RUN)


IPART:   This parameter controls what proportion of the database will actually be run through the simulation. Entering a 1 indicates that the entire database will be used. (For example, entering a 2 will instruct the program to perform the simulation on every second record, and multiply each persons weight by 2. Entering a 3 will instruct the program to perform the simulation on every third record, and multiply each persons weight by 3, etc.). This parameter is normally set equal to 1.
IWRITE:   This parameter is an on/off switch for the output datafile attached to unit number 10 (see Table 4). Entering 0 will prevent file creation, 1 will enable it. This parameter is normally set to 0.
ICASE:   This parameter is used for programs that can not be simulated using the available input parameters and requires "hard-coding" into the model. Currently, cases 1 through 18 are defined in the model and should not be re-used. For simulations defined using parameters only, this parameter should be set to 0.
IHMTOS:   This parameter was included for a special case scenario that involved conversion of home equity to financial assets. Should be set to 0.
SSILEV:   This parameter is a multiplier that is applied to the SSI level for transfer of income from nursing home residents to their spouses. (For example, 1.0 means transfer income at SSI income level, while 2.0 means transfer at 2.0 times the SSI income level). This parameter only applies to simulations using the pre-1989 (catastrophic coverage act) scenario, and should therefore be set to 1.0 when the parameter [BASE is greater than 0 (see below).
IBASE:   This parameter determines how the model deals with spousal impoverishment scenarios. Entering 0 will cause the model to use the pre-1989 conditions for the entire simulation period. Entering a 1 will cause the model to use the spousal impoverishment conditions in the 1989 Catastrophic Coverage Act for years 1989 through 2020. Entering a 2 will cause the model to use the Catastrophic Coverage Act for 1989, and then to use only the non-repealed portions of the Act for years 1990 through 2020. All future simulations should be run with this parameter set to 2.
IPDMP:   This parameter is used to dump out 150 records into the file attached to unit 21 (see Table 4). These records are used for debugging purposes only, and therefore this parameter should be set to 0 for all runs.
IMAX:   This parameter sets the maximum number of input records to process through the simulation. To process the entire database, enter a large number (e.g. 999999). IMAX should be set to a smaller number for test cases.
LVLTST:   This parameter is used for model debugging. Setting it to any number above 0 will cause large amount of intermediate data to be dumped to files attached to unit 6 and 21. LVILTST should be set to 0.
IHAW:   This parameter determines whether or not a synthetic replacement population is generated for persons under the age of 25 in 1979. These persons are not included in the original database, as they would not reach age 65 before the end of the simulation. However, some insurance scenarios may require this population to be available for premium payment. Entering 0 will cause no population replacement. Entering 1 will invoke population replacement and a reweighting of the database to simulation Hawaii's population and demographics. Entering a 2 will invoke population replacement at a national level.
IIT:   This parameter determines the number of iterations of the model (i.e. how many times each input record is passed through the simulation). During each iteration, the input record is processed with a different set of "random" numbers, effectively increasing the size of the sample population and reducing problems with small cell sizes in some of the output tables, but at the expense of increase CPU requirements for running the model. A standard run uses 2 iterations on each record.


VI. UTILITY PROGRAMS

Two utility programs, CHEKFL and TABLE2, are available to assist the user in the parameter setup and analysis of the model output. These utilities are described below.

A. CHEKFL

The CHEKFL program is a utility that allows the user to compare two input parameter files and report on any differences between them. The input parameter file is a fairly large file and when running multiple scenarios it sometimes may become difficult to check that only the desired parameters have been changed between two runs. CHEKFL can be used to compare the parameters for a new simulation against the base case or against a previous simulation scenario.

In addition, CHEKFL performs all logic, total, and data range checks on the input parameters that are required for a full model run. Sample JCL and DCL files to setup and run CHEKFL are shown in Table 8.

TABLE 8. Sample Command Files for CHEKFL
Sample JCL Sample DCL
//PR4LTC JOB (VWA1,406,A),YOURNAME
/*KEYWORD=ZZZ
/*ROUTE PRINT HOLD
/*NOTIFY III
//S1 EXEC
FORVCOMP,OPTIONS='NOMAP,NOXREF,NOSOURCE'
//COMP.SYSIN DD DSN=AAAAIII.CHEKFL.FOR,DISP=SHR,
// UNIT=FILE,VOL=SER=FILE37
//S2 EXEC FORVLKGO
//GO.FT04F001 DD DSN=AAAAIII.NIHPROB4.PRN,DISP=SHR,
// UNIT=FILE,VOL=SER=FILE37
//GO.FT67F001 DD DSN=AAAAIII.BASE1.PRB,DISP=SHR,
// UNIT=FILE,VOL=SER=FILE37
//GO.FT68F001 DD DSN=AAASZ4.BASE2.PRB,DISP=SHR,
// UNIT=FILE,VOL=SER=FILE37
//GO.FT20F001 DD DSN=AAAAIII.OUTPUTA.DAT,DISP=(NEW,KEEP),
// UNIT=FILE,VOL=SER=FILE37,SPACE=(TRK,(80,2),RLSE),
// DCB=(LRECL=133,RECFM=FB,BLKSIZE=13300)
//GO.FT21F001 DD DSN=AAAAIII.OUTPUT2.DAT,DISP=(NEW,KEEP),
// UNIT=FILE,VOL=SER=FILE37,SPACE=(TRK,(80,2),RLSE),
// DCB=(LRECL=80,RECFM=FB,BLKSIZE=8000)
$ ASSIGN BASE1.PRB    FOR067
$ ASSIGN BASE2.PRB    FOR068
$ ASSIGN OUTPUT1.DAT  FOR020
$ ASSIGN OUTPUT2.DAT  FOR021
$ ASSIGN NIHPROB4.PRN FOR004
$ RUN CHEKFL
$ PUR OUTPUT*.DAT

B. TABLE2

The TABLE2 utility program allows the user to define and extract a set of tables from the large table output file. The extracted file can be printed on the host computer, or download to a PC and printed locally. There is also an option to create a file that can be imported directly into a PC spreadsheet program.

A sample input control file for TABLE2 is shown in Table 9. The first line determines whether or not the optional Lotus readable output file is created (0=no, 1 =yes). The next lines are a list of the tables which are to be extracted (a maximum of 10 lines). The program reads in these lines and searches the table file for exact character string matches, and then copies the following records until the end of the current page is reached.

For example, entering TABLE 1 in the input file would cause the output of tables 1, 10, 11, 12, 13, ...,19. If you wanted table 1 only, you would enter TABLE 1# (the # identifier only works for tables 1-9). Table 10 shows example JCL and DCL files for compiling, linking, and executing the program.

TABLE 9. Input Parameters for the TABLE2 Utility
0
TABLE 1#
TABLE 2#
TABLE 11
TABLE 12
TABLE 41.1.3
TABLE PJE4


TABLE 10. Sample JCL and DCL for TABLE2
JCL DCL
//PR4LTC JOB (VWA1,406,A),YOURNAME
/*KEYWORD=ZZZ
/*ROUTE PRINT HOLD
/*NOTIFY III
//S1 EXEC FORVCOMP,OPTIONS='NOMAP,NOXREF,NOSOURCE'
//COMP.SYSIN DD DSN=AAAAIII.TABLE2.FOR,DISP=SHR,
// UNIT=FILE,VOL=SER=FILE37
//S2 EXEC FORVLKGO
//GO.FT08F001 DD DSN=AAAAIII.BASE.TAB,DISP=SHR,
// UNIT=FILE,VOL=SER=FILE37
//GO.FT11F001 DD DSN=AAAAIII.TABLE2.INP,DISP=SHR,
// UNIT=FILE,VOL=SER=FILE37
//GO.FT09F001 DD DSN=AAAAIII.BASE.TB1,DISP=(NEW,KEEP),
// UNIT=FILE,VOL=SER=FILE37,SPACE=(TRK,(80,2),RLSE),
// DCB=(LRECL=133,RECFM=FB,BLKSIZE=13300)
//GO.FT10F001 DD DSN=AAAAIII.BASE.WK0,DISP=(NEW,KEEP),
// UNIT=FILE,VOL=SER=FILE37,SPACE=(TRK,(80,2),RLSE),
// DCB=(LRECL=80,RECFM=FB,BLKSIZE=8000)
$LINK TABLE2,IOUTIL/LIB
$ASSIGN BASE.TAB FOR008
$ASSIGN BASE.TB1 FOR009
$ASSIGN BASE.WK0 FOR010
$ASSIGN TABLE2.INP FOR011
$ASSIGN SYS$OUTPUT FOR007
$RUN TABLE2
$ DEASSIGN FOR007
$ DEASSIGN FOR008
$ DEASSIGN FOR009
$ DEASSIGN FOR010
$ DEASSIGN FOR011


VII. GENERATING A PERSON LEVEL FILE FOR TABULATIONS

The output dataset BASE.OUT may be converted into an ASCII/EBCIDIC person level file which can be used to produce additional tabulations. BASEOUT is written by the subroutine WRITR and is only produced when specified in the Job Control File through the parameter IWRITE. LTCCONV.FOR is a FORTRAN program that transforms arrays from BASE.OUT into a single record for every year after a person turns age 65 with demographic, economic, and long term care use information. The record layout for the converted database is shown in Table 11.

TABLE 11. Record Layout for Output Data File
Variable Length Field Variable
Definitions
Demographic Variables
1 1 1 RACE
1 = White
2 = Nonwhite
2 1 2 SEX
1 = Male
2 = Female
3 3 3-5 AGEDTH
Age in last year alive (65: 108)
4 10 6-15 WEIGHT
Sample weight to be used in all tabulations
5 3 16-18 AGE
Age of individual in simulation year (65: 108)
6 1 19 MARIT
Marital Status
1 = Married
2 = Unmarried
7 1 20 DISAB
Disability status in year
1 = Disabled
2 = Not Disabled
8 4 21-24 YEAR
Year of simulation (1986: 2020)
Family Income Variables (in 1989 $s)
9 5 25-29 POV
Total family income as a percent of the poverty threshold in year
10 10 30-39 FEARN
Family earnings income in year
11 10 40-49 FPEN
Family pension income in year
12 10 50-59 FIRA
Family IRA income in year
13 10 60-69 FSOC
Family social security income in year
14 10 70-79 FASSINC
Family income from financial assets in year
15 10 80-89 FSSI
Family income from SSI and state supplements in year
Individual Income Variables (in 1989 $s)
16 10 90-99 IEARN
Individual earnings income in year
17 10 100-109 IPEN
Individual pension income in year
18 10 110-119 IIRA
Individual IRA income in year
19 10 120-129 ISOC
Individual social security income in year
20 10 130-139 IASSET
Individual income from assets in year
21 10 140-149 ISSI
Individual income from SSI and state supplements in year
Family Assets Variables (in 1989 $s)
*** Family assets at end of year ***
22 10 150-159 FASSET
Value of family financial assets in year (non-housing assets)
23 10 160-169 HASSET
Value of family equity in home
0 = Non-homeowner
> = Homeowner
Utilization of Institutional Care
24 3 170-172 IDAYS
Days of institutional care in year
25 1 173 ISTART
0 = Not in institution
1 = Admitted to institution in year
2 = Discharged during year
3 = Both admitted and discharged during year
4 = Other institutionalized
26 1 174 ITERM
Nursing home visit will terminate as:
0 = Not in institution
1 = Death termination
2 = Live termination
27 4 175-178 TENURE
Days in institution from date of admissions through end of year
28 4 179-182 LENGTH
Total length of stay: i.e., days in institution from date admitted through day of discharge
Insitutional Expenses During Year (in 1989 ($s)
*** Includes institutional expenses from start of year through end of year ***
29 5 183-87 IMCRYR
Amount paid by Medicare in year
30 5 188-192 IMCDYR
Amount paid by Medicaid in year
31 5 193-197 IOPCYR
Amount paid out-of-pocket from cash resources in year
32 5 198-202 IOPAYR
Amount paid out-of-pocket from asset resources in year
33 5 203-207 ILTCYR
Amount paid by long-term care insurance in year (this will always be zero in the base case)
Institutional Expenses Through End of Year (in 1989 $s)
*** Includes institutional expenses from date of admission through end of year ***
34 6 208-213 IMCRTD
Amount paid by Medicare through end of year
35 6 214-219 IMCDTD
Amount paid by Medicaid through end of year
36 6 220-225 IOPCTD
Amount paid out-of-pocket from cash resources through end of year
37 6 226-231 IOPATD
Amount paid out-of-pocket from assets through end of year
38 6 232-237 ILTCTD
Amount paid by long-term care insurance through end of year (this will always be zero in the base case)
Institutional Expenses from Duration of Visit (in 1989 $s)
**Includes expenses for instituional care from date of admission through date of discharge**
39 6 238-243 IMCR
Amount paid by Medicare for entire visit
40 6 244-249 IMCD
Amount paid by Medicaid for entire visit
41 6 250-255 IOPC
Amount paid out-of-pocket from cash resources for entire visit
42 6 256-261 IOPA
Amount paid out-of-pocket from asset resources for entire visit
43 6 262-267 ILTC
Amount paid by long-term care insurance for entire visit (this will always be zero in the base case)
Utilization of Non-Institutional Care
44 3 268-270 FDAYS
Days of formal care in year
45 3 271-273 INDAYS
Days of informal care in year
46 3 274-276 FVISITS
Number of formal visits in year
47 3 277-279 INVISITS
Number of informal visits in year
48 1 280 NSTART
0 = Not receiving non-institutional care
1 = Started receiving care in year
2 = Care terminates in year
3 = Care both starts and terminates during year
4 = Other recipients of non-institutional care
49 1 281 NTERM
Non-institutional care will terminate as:
0 = Not receiving non-institutional services
1 = Death termination
2 = Live termination
3 = Enters nursing home
50 4 282-285 FTEN
Days receiving formal non-institutional care from date care starts through end of year
51 4 286-289 INTEN
Days receiving informal non-institutional care from date care starts through end of year
52 5 290-294 FVTEN
Formal care visits from date care starts through end of year
53 5 295-299 INVTEN
Informal care visits from date care starts through end of year
54 5 300-304 FLEN
Duration of formal care: i.e., days receiving formal care from date care starts through date care terminates
55 5 305-309 INLEN
Duration of informal care: i.e., days receiving informal care from date care starts through date care terminates
56 5 310-314 FVTOT
Total formal care visits from the date formal care starts through the date care terminates
57 5 315-319 INVTOT
Total informal care visits from the date informal care starts through the date care terminates
Non-institutional Expenses During Year (in 1989 $s)
*** Includes non-institutional expenses from start of year through end of year ***
58 5 320-324 NMCRYR
Amount paid by Medicare in year
59 5 325-329 NMCDYR
Amount paid by Medicaid in year
60 5 330-33 NOPCYR
Amount paid out-of-pocket from cash resources in year
61 5 335-339 NOPAYR
Amount paid out-of-pocket from asset resources in year
62 5 340-344 NLTCYR
Amount paid by long-term care insurance in year (zero in base case)
63 5 345-349 NOTHYR
Amount paid by other sources in year
Non-Institutional Expenses Through End of Year (in 1989 $s)
*** Includes non-institutional expenses from the date care started through the end of year ***
64 6 350-355 NMCRTD
Amount paid by Medicare through end of year
65 6 356-361 NMCDTD
Amount paid by Medicaid through end of year
66 6 362-367 NOPCTD
Amount paid out-of-pocket from cash resources through end of year
67 6 368-373 NOPATD
Amount paid out-of-pocket from asset resources through end of year
68 6 374-379 NLTCTD
Amount paid by long-term care insurance through end of year (zero in base case)
69 6 380-385 NOTHTD
Amount paid by other sources through end of year
Non-institutional Expenses for Duration of Visit (in 1989 $s)
*** Includes non-institutional expenses from the date care started through the date care terminated ***
70 6 386-391 NMCR
Amount paid by Medicare for entire visit
71 6 392-397 NMCD
Amount paid by Medicaid for entire visit
72 6 398-403 NOPC
Amount paid out-of-pocket from cash resources for entire visit
73 6 404-409 NOPA
Amount paid out-of-pocket from asset resources for entire visit
74 6 410-415 NLTC
Amount paid by long-term care insurance for entire visit (zero in base case)
75 6 416-421 NOTH
Amount paid by other sources for entire visit
Family Tax Payments in Year (in 1989 $s)
76 10 422-431 FEDTAX
Federal income tax payments
77 10 432-441 STATETAX
State income tax payments
78 10 442-451 LTCAMT
Amount of LTC funding specific
Additional Income and Asset Variables (in 1989 $s)
*** Values at entry to LTC ***
79 10 452-461 BNHINC
Family income at entry to nursing home
80 10 462-471 BNHAST
Family financial assets at entry to nursing home
81 10 472-481 BHHAST
Family income at entry to home health
82 10 482-491 BHHAST
Family financial assets at entry to home health
83 3 492-494 SPAGE
Age of spouse


You can advance to:
  • ATTACHMENT 1: DISLIFE.NEW -- Purchase probabilities
  • ATTACHMENT 2: DB.NEW -- Death benefits
  • ATTACHMENT 3: RPU.NEW -- Reduced paid up options
  • ATTACHMENT 4: PRE.NEW -- Monthly premium rates
  • ATTACHMENT 5: LAPSE.NEW -- Pension lapse rates
  • ATTACHMENT 6: Memo on Computer Budget for NIH Account