LifePaths is a dynamic longitudinal microsimulation model of individuals and families. The simulation of basic individual and family decisions generates most of the discrete events that together constitute an individual's life history. Using behavioural equations estimated from a variety of historical micro-data sources, LifePaths creates synthetic life histories from birth to death that are representative of the history of Canada’s population.
The output of a LifePaths simulation can be in the form either of user-defined tables or of a user-specified tracking database. Because tables are assembled during a model run, LifePaths does not require massive output files. Hence, there is virtually no limit to the size of a simulated population (possibly millions). The second form of output is a database that tracks the life histories of simulated individuals as represented through the values and timing of changes to user-selected state variables. A tracking database will usually contain a small number of carefully selected simulated individuals (hundreds rather than thousands) that can be inspected one-by-one. The tracking database serves as input to a secondary program named BioBrowser, which graphically displays values of specified variables for simulated individuals over their lifetimes – a BioBrowser biography. Thus a table might give the frequency distribution of average weeks worked by 45-year-old males in 1991 and a BioBrowser biography might display the annual weeks worked for each year of life of a male who was born in 1946. The latter individual would have been 45 years old in 1991 and would have contributed to the table.

For further details on LifePaths tables and on the programming environment generally, please go to the Modgen site
Simulated biography illustrating annual weeks of paid work over a single lifetime

The life course of an individual is simulated in LifePaths as a series of events. These events are contingent on the previous history of the individual and usually have a stochastic component as well. When an event occurs, the state of an individual changes. This in turn changes the likelihood of subsequent events. By adding a stochastic component to the decision, the translation of such a likelihood into a simulated event becomes a random process. For example, an individual currently in the employed state is at some risk of a job loss event. The risk of job loss depends on factors such as the length of time that the individual has held their current job. In the event of job loss, the individual's state changes – they enter the state ‘not employed’. This new state may influence other events; for example, it may diminish the likelihood that this individual will subsequently become married or increase the likelihood of the break-up of an existing marriage.
LifePaths simulations take place in continuous time. Events can occur at any arbitrary moment and are not artificially restricted to annual intervals. As a result it becomes possible and natural to construct tables based on duration as well as on the current state. For example, the population of a given calendar year could be viewed as the total person-years lived during the year, rather than as a count of persons alive at a particular instant in the year. LifePaths also produces tables of the more familiar "point in time" variety.
LifePaths is structured with an explicit event orientation. Thus, the model consists of a collection of event functions that are invoked independently. Much of the simulation housekeeping involves automatically maintaining a list of pending events and their slated times. Events that occur in continuous time are unlikely to occur simultaneously unless specifically defined as a joint event. Consequently, there is no need for the tie-breaking rules that are often necessary in discrete time simulations. For example, there is never ambiguity about whether a birth that is simulated as occurring in the same year as a marriage occurred before or after the marriage.
Over the course of a simulation, LifePaths keeps updating its list of pending events to ensure that the next scheduled event is the one that currently has the shortest waiting time. This provides a straightforward way of dealing with competing events. Waiting times provide a unifying framework for representing decision-making. Probabilistic decisions can be implemented so that the choice among alternatives is determined by comparing two or more waiting times. For example, a never-married person’s decision to either marry or enter a common-law union can be implemented by generating waiting times until both events. Such decisions are generally influenced by other variables – for instance, current educational status and employment history – and the decision is always re-assessed each time the influential variables change. If the marital status waiting times are both long relative to the waiting times for changes in employment or education status, then neither marriage nor a common-law union will become the next event to occur. Otherwise, if the marriage waiting time is shorter than the common-law union waiting time, then the choice is to marry. Of course, changes to the influential variables occur only when they become the next event – based on all waiting times in the list of pending events.
The content of simulation models is largely embodied in their behavioural equations. In LifePaths, these equations – together with their stochastic components – determine the distributions of waiting times to events. These equations represent behaviour through dependence on a simulated individual’s past. For example, the timing of births is determined in relation to the timing of marriage and of previous births, rather than solely on a mother’s current age. Age-specific fertility rates are common elements of demographic projection models that are not designed to generate realistic-looking individual life histories. The behavioural equations represent choices as well as contingent events such as death. Estimation of these equations places particularly heavy demands on data, because the required data must directly reflect individual events and the specific history that led up to them.
A LifePaths simulation consists of a set of mutually independent cases. Each case contains exactly one dominant individual in the first generation. The spouse and children of the dominant individual are simulated as part of the case. They are created to satisfy the marriage and fertility equations. Furthermore, their behaviour is determined by the same equations that govern the dominant individual’s behaviour. Certain special models may require that the lives of the children – the second generation – also be simulated to completion. Non-dominant individuals are excluded from most tables to avoid double counting. Nevertheless, non-dominant individuals contribute to tables by defining the family context in which the dominant individual lives. The family context may be as simple as children being present in the home or a complex function of the spouse’s employment history.

LifePaths is an open model, in that a non-dominant spouse will be created whenever it is decided that a marriage will occur. Moreover, LifePaths simulates the completion of one case, before going on to another. These properties contrast with closed, discrete time models, which simulate all the members of a population in one time period before proceeding to the next time period. Those models maintain a list of currently unmarried individuals and permit marriages only between individuals on the list. Closed models typically start from an observed cross-section – perhaps a demographic survey. Thus, closed model simulations can never be more accurate than the sampling variability of the initial cross-section allows. In addition, they often begin with limited history with which to inform the behavioural equations. In contrast, LifePaths generates a complete history for each individual starting from birth, which allows greater flexibility in the specification of behavioural equations.
One of the most important concepts in the class of simulation models to which LifePaths belongs is Monte Carlo variation. A LifePaths run creates a sample of individuals and families using waiting times that incorporate a stochastic component. This stochastic component is a key element in the ability of LifePaths to generate life histories that match the diversity observed in actual populations. On the other hand, this variability affects the reliability of aggregate tabular results, in the same way that a small sample drawn from a larger population has limited accuracy. In the context of simulation modeling this statistical variability is called Monte Carlo variation. It can vary from cell to cell within the same table and depends on the number of observations in the cell, the model's equations and the nature of the aggregate quantity being tabulated. LifePaths estimates the Monte Carlo variability of each cell of every table and reports it in the form of a standard error. Before drawing conclusions based on tabular results, it is important to examine these measures of variation. If the standard error is too large, the number of cases in the simulation may need to be increased in order to achieve the desired level of accuracy. Alternatively, an increase in number of cases that contribute to a given table might also be accomplished by more carefully targeting the simulation. For instance, appropriate targeting might be achieved by simulating only persons born in a certain narrow range of years. Variance reduction strategies are an important consideration in microsimulation. In closed models, variance reduction strategies are restricted by data storage constraints.
A few simple forms of pseudo-random number generator provide the stochastic component of waiting time distributions. These generators are algorithms that produce streams of numbers with no apparent relation between consecutive numbers. Each generator requires a seed to initialise it. LifePaths creates independent random number streams for each type of event – each initialised with a different seed. This makes it possible to use sophisticated variance reduction strategies based on clones. The latter are cases simulated identically up to a particular event and differing thereafter only in terms of the consequences of that event outcome – only one random number stream is changed.
LifePaths can be considered to be an overlapping cohort model. A birth cohort is a group of individuals having the same year of birth. The oldest birth cohort that is represented in LifePaths was born in 1872. This year was chosen so that, in the year 1971, LifePaths could simulate a complete range of ages from newborn to elderly. This means that starting in 1971, LifePaths can produce cross-sectional annual tabulations that can be directly compared to historical cross-sectional data. The year 1971 is the first year for which high quality socio-demographic data was available from of a Census with a contemporary, self-enumeration design. Users can choose the youngest cohort represented in a LifePaths simulation. Cross-sectional annual tabulations for years subsequent to the birth year of this youngest cohort will be incomplete because a younger segment of the population will be absent. For years between the birth years of the oldest and youngest birth cohorts, LifePaths produces tabulations that are based on complete and representative cross-sections of the population.
