powered by NetLogo



The model proposed here matches origins and destinations using employment search methods at the individual level. The outcomes depend on skills of the searcher, compensation, travel preferences, the locations of employment opportunities, and the willingness of firms to employ the searcher. The geographic plain on which the modeling is undertaken contains both employment locations which may be flexibly arranged into one or multiple employment zones or be randomly distributed as well as residential locations. Firm and housing locations are assumed to be exogenous in the model. Workers will search for employment from fixed home locations.

The model contains both active agents which interact with one another through out the simulation and inactive agents which are mainly used to mark location and to house employment opportunities.The inactive agents in this model are job centers, where firms are located, and the firms where employment positions are housed. Job centers and firms are present to give structure to the location of employment opportunities. Job centers (which may be one or many) house firms, and firms house employment opportunities. The presence of job centers is optional. When job centers are not present firms can be distributed through out the modeled area randomly. All employment opportunities are housed within a firm to which they are randomly assigned. The active agents in this model are the workers and employment positions which interact with one another in determining job opportunities and pay scales, and negotiate agreeable arrangements for employment. Each of these agents are discussed below.


Job Centers
The purpose of job centers is to house firms. These are established as optional fields where a mono-centric, poly-centric, or a city with distributed employment can be modeled in the the home-job matching process. The location of the job centers can be at any location on the plain that is being modeled, though when mono-centric models are considered the location has been fixed at the center of the geographic area.

Firms house employment locations. When job centers are present, firms can only locate in only one of the job centers. Assignment of firms to job centers is done randomly at the start of the simulation. In the current model, once a firm chooses a location, it does not relocate. Employment locations are also assigned to the firm randomly. Once employment positions are assigned to them, firms know how big they are what types of positions they have. Though the number of employees at a particular firm may change, the number of positions that are available at each of the firms does not change throughout the simulation. %Currently however they are primarily used as containers that mark a geographic location for employment positions.

Employment Positions and Workers
Employment positions are housed in Firms. Each employment position has characteristics that it requires fulfilled by potential employees (or a minimum skill set that is needed to be fulfilled). The skill set required by any position is assigned as a randomly generated integer ranging from one to five. Each of these is assumed to be increasing in specialization and commands an average pay that is higher than the preceding level. Each position is assumed to have an amount that it is willing to pay an employee. At the start of the simulation, the pay that positions are willing to offer is assigned to the jobs by pulling from a uniform distribution whose mean is a function of the position's skill level. Alternatively, wage dispersion can be set to 0, leaving the wage to be only a function of the desired skill.


At any given time, a positions can be open or taken (closed). When a position is open, it automatically advertises itself, and job seekers who encounter it can apply to occupy the position. When a position is already occupied by a worker, it is not searchable and does not take any applications. Employment positions know how well applicants as well as the person occupying them matches the requirements of the job. Each employment position acts as would a human resources department in real life, by accepting and screening applications as well as making offers, and negotiating a salary with qualified applicants. When they have difficulty attracting talent, positions increase their offer pay at each iteration.

Workers start out randomly assigned to residential locations from which they search for jobs. Workers residences are assumed to be stationary. Each worker is randomly assigned a skill class similar to the job-classes for the employment positions. At the start of the simulation all workers are seeking employment. They search for open positions that fit their skills and put in applications reporting their qualifications. Each worker is also assumed to have a minimum wage that they would want to accept any job offer. Once the searcher is employed, their expected wage will be set greater then or equal to their earnings at the time of search.

Workers are assumed to have limited information on available positions that match their skills. To find information, workers have to start searching for opportunities with some intensity $I$. Different workers can have different search intensities that describes how many applications they put in at any given time slice. A worker only receives offers from those positions to which it has applied.

Though skill matching is an important part of the model, workers can be allowed to apply to positions for which they are slightly under or over qualified. Some portion of the searchers can also use a contact to gain access to employment. A proportion of these contacts are assumed to be influential and can leverage their position to increase the match between the applicant and the open position even though the match of skills to criteria may not be perfect (or perhaps better matches may be available).

The model allows for individuals to receive any number of offers at a given time given they have applied to the positions and the employer has selected as the best applicant for that position. When several job offers are made to the respondent within a given iteration, the model assumes they arrive such that they can be compared against one another simultaneously. Once an offer is made to a worker, searchers choose which offer is the best. The selection process may be specified so that a deterministic decision framework is adopted where the highest offer is chosen, or a probabilistic decision is made based on travel time and salary considerations within an Expected Utility framework. They then decide to accept or reject the offer by comparing the best offer selection to their current situation. Decisions are also assumed to be made only on the basis of offers and current wages or reservation wages. Workers do not know what the likelihood of offers in the next time slice will be. Offers that improve the net present value of their net income (wages minus commuting costs discounted over expected tenure) are always accepted. Further all workers' residential locations are assumed to be fixed.

When searching, those that are already employed adjust their asking pay so that it is higher than their current salary. Those that are unemployed will lower their asking wage until it reaches their reservation wage for each iteration that they remain unemployed. To stay competitive employment positions also offer annual increases for their employees. In part these raises ensure long term employment is realized. The raise amount is randomly generated from a uniform distribution and implies a variability in the wages offered for similar positions. Researchers have empirically shown that similar workers receive markedly different wages for similar types of jobs \cite{Murphy1987,Krueger1988} whose existence has been theorized to arise from different reasons including employer wage policies, as well as unmeasured worker abilities \cite{Christensen2005}


There are three general family of parameters that can be defined to control the agents and modeling environment. The first set, the Modle Setup Parameters, allow us to define diffferent urban lanscapes. Agent density and Employment Location Multiplier define how many agents and employment locations there are in the model.

Two possibilities exist for defining where employment is located, one with a four job-centers located at centers of four quadrants each having equal jobs (by turning on equalize jobs at job centers), and another where firms can locate freely (randomly) at any location in the modeling landscape (by turning on distribute employment). We also have to choose how many firms exist in the area. Travel speed defines the average travel speed in the region used to calculate travel time between home and work places.

Job related settings: Here the first two variables control whether there is skill differentiation in jobs and skills (n-job-classes) and whether there is wage dispersion at a given skill level (wage-dispersion). Matching precsion controls how exact the matching between skill requirements and worker skills need to be for a worker to be considered as a viable employee by the employer. Variable empty-pos-annual-increase controls the annual rate at which empty positions increase their wage offers to attract other employees, while variable annual-wage-increase controls the annual rate wage increases are made to employees. Since employers have limited budgets to expand the offer wage, both these rates increase at a decreasing rate and eventually level off.

Variables min-search-effort and max-search-effort define the range of minimum and maximum search intensities. Each employee that decides to search for employment randomly selects and intensity between these two numbers. Prop-using-contancts and contact_influential-prop define the proportion of searchers finding work through contacts, and the proportion of those where the contact can play a role in bridging the skill gap between the employer and the applicant.

Variable unemp_askng_pay_cut allows searchers to make them selves attractive by cutting their asking pay. Agents-logit deals with the decision mechanism of how workers choose among alternative offers. When the agents_logit switch is on, the agent chooses probabilistically using wages and travel time, and when not, the best offer based on wage offers is chosen. This best offer is then compared to the current status of the worker.

Finally, variable med_tenure referes to an empirical value of the tenure period for the population beyond which workers are less likely to want to switch jobs.

Currently the model stops if any one of the following condistions are satisfied:
- All employment positions are filled and the shortest tenure is at least 15 years
- All agents are employed and the shortest tenure is at least 15 years
- Iteration has reached 500 (in general distances do not change significantly by the time the tick count has reached 500)

After selecting the parameters, click on setup to generate the agents and their locations, and go to run the model. One unit distance is assumed to be one mile, and for time period counts, each tick is considered to be 1 month.


For more description of the model see Tilahun, N. and D. Levinson (working paper) An Agent-Based Model of Worker and Job Matching.