SILO has been designed in a modular layout. This allows adding or disabling selected modules. For example, the user may decide to use the demographic change module of SILO but the household relocation module of another land use model.
At the beginning of every simulation period, events are created that are executed in random order. Somewhere, a child is born, someone else celebrates her birthday, elsewhere a new dwelling is built, some people get married, etc. By executing events in random order, path dependency is avoided and events may affect each other as they do in real life.
The module that creates a synthetic population is executed once in the base year (commonly set to the year 2000). This module creates lists of households, person, dwellings and jobs (an example for synthetic households is shown on the right). Publicly available PUMS data are expanded to generate the synthetic population. These lists of households, person, dwellings and jobs are updated by the other modules that run every simulation period.
The demography module simulates all events that change households but are not spatial in nature. These include, for example, the birth of a child, aging, two people marrying or getting divorced, children leaving the parental household, workers changing their job, or death. Some demographic changes, such as a child leaving the parental household, trigger a location search that is handled in the household relocation module.
This household relocation module simulates households searching for a new dwelling. Demographic changes, such as the birth of a child, often trigger a household to search for a new dwelling. Utilities at the current dwelling are compared with potential living utilities at alternative dwellings to decide whether a household is moving or not. This module also handles households that immigrate into the study area or that outmigrate.
The stack of dwellings changes over time. New dwellings are built, others are renovated, some deteriorate, and a few dwellings are demolished. This real-estate module updates dwellings based on current demand and supply of housing.
Currently, employment is updated based on static exogenous employment forecasts. The forecast needs to provide zone-level employment at least for the base year and the final model year. SILO is able to interpolate all intermediate years for which no employment forecast is provided. Every simulation period, the exogenous forecast is compared with the number of jobs in SILO. In zones where SILO has fewer jobs, new jobs are created. In zones with more jobs in SILO, jobs are chosen randomly to be eliminated. First, vacant jobs are removed. If additional jobs need to be removed, workers are made unemployed and their workplace is eliminated. In the future, it is planned to enhance SILO to simulate changes of employment similarly as population is modeled.
The integration of SILO with a travel demand model is not required but recommended. SILO is sensitive to changes in accessibilities that should be provided by a transportation model. SILO does not come with a standard travel demand model. In Maryland, SILO is integrated with the Maryland Statewide Transportation Model (MSTM). In the Munich metropolitan area, it is currently integrated with MATSim.
SILO is designed to be closely integrated with a travel demand model.