The Business Investor Model

Author:

Alan G. Isaac

Organization:

Department of Economics, American University

Contact:

aisaac@american.edu

Date:

2025-07-14

Overview and Objectives

This lecture provides an introduction to BI World, which is closely related to the Business Investor model of [Railsback.Grimm-2019-PrincetonUP] (chapters 10 and 11). It presents a simple model of entrepreneurial search for business opportunities. Investors search for business opportunities and choose to run the businesses that most benefit them.

Goals and Outcomes

The primary goal of this lecture is the development of mobile agents that can interact with an environment that comprises stationary agents. This lecture also continues the development of programming and data visualization skills. Since the model of this lecture is relatively complicated, the implementation is staged. Initial implementations neglect some components of the conceptual model.

This lecture uses the business-investor model to provide a particularly simple illustration of the interaction between mobile and stationary agents. Once again, we demonstrates that initially identical agents may have very different lifetime experiences. These features permit an easy demonstration of the emergence of macro-level patterns from micro-level events.

As in the Financial Accumulation lecture and the Fishing World lecture, the business-investor model is inherently stochastic. Businesses are subject to a random risk of failure. This again illustrates how computational modeling can accommodate stochastic events, and the implementation correspondingly draws on programming-language features that are useful for modeling stochasticity. In contrast to previous lectures, the model of this lecture contains both stationary and mobile agents. However, the spatial element is purely conceptual; it does not correspond to physical space.

BI World Prerequisites

This lecture explores BI World, which is a simple model of business-investor decision making. Implementating this model requires a good basic familiarity with the programming prerequisites below. Prior implementation of the simulation models in the Financial Accumulation lecture and the Fishing World lecture develops most of these skills. Ability to create a model GUI that includes plots and sliders is a plus.

Programming Prerequisites (General)

You should understand how to take an action based on a multi-value condition (i.e., cases). You should be able to make a best choice from a set of candidate choices. In addition, be sure you know how to do the following.

Spreadsheet Prerequisites

In order to usefully report on the model, you should also complete the following exercises from the Spreadsheet Exercises from prior chapters. In addition, do the Histogram exercise.

BI World: Introduction

This lecture presents BI World, which is a variant of the Business Investor Model of [Railsback.Grimm-2019-PrincetonUP]. BI World is an extremely abstract and stylized model of investment decisions. It is not intended to represent a real business sector or a real process of invesment. Instead, it abstractly represents people who search for business opportunities and pursue the best ones they find.

Sensing

[Railsback.Grimm-2019-PrincetonUP] introduce their Business Investor model in order to explore sensing, which allows an agent to responds to its environment or to the attributes or behaviors of other agents. In BI World, sensing leads to the acquisition by business investors of information about available business opportunities. Investors sense business opportunities and decide which to pursue. Following [Railsback.Grimm-2019-PrincetonUP], we will be particularly interested in how sensing ability influences the wealth distribution.

Business Opportunity

The following class box provides an illustration of a business opportunity (Opportunity). A business opportunity produces a annual net profit but has an annual risk of failing. Use two attributes to conceptualize these considerations: annualProfit and failureRate. An opportunity is also adjacent to other opportunities—not physically adjacent, but rather adjacent in a space of ideas. As a simple representation of of this adjacency, give each opportunity a neighbors attribute that holds the collection of adjacent opportunites. These attributes will be set during model initialization and are immutable. Finally, there may be an investor who currently owns and runs the business embodied in an opportunity. Let this investor be the the value of an owner attribute. An Opportunity may be owned by an Investor, who runs it as a business. Otherwise, it has no owner. The owner attribute is the only mutable attribute.

Opportunity

annualProfit: Real

failureRate: Real

neighbors: Opportunity[1..*]

owner: Investor = null

The meaning of the owner attribute is clear in the conceptual model, but when it comes to implementation, the idea of no owner may pose a bit of a puzzle. This class box represents the idea that an Opportunity initially has no owner by showing the owner attribute as having an initial value of null. How best to translate this into code depends on the programming language in use.

Moving Towards Implementation

The conceptual model suggests the types of agents needed by an implementation. In particular, it indicates the kinds of behaviors that characterize the agents. As usual, there are many possible approaches to implementing the conceptual model as a computational model. Judgements about which implementations are best may change over time, perhaps because of accumulated coding experience or increasing knowledge of a particular language. Rather than worry about the characteristics of an optimal implementation, this course typically accepts any simple implementation that is a plausible interpretation of the conceptual model.

Risk of Business Failure

Every business opportunity has an associated risk of failure, which is assigned during setup and does not change. In the Business Investor model, each Opportunity is assigned a risk of failure. This comprises two components: a systemic risk of failure, which is shared by every business, and and idiosyncratic risk of failure, which is business specific. We will draw the idiosyncratic risk of failure from a uniform distribution on a positive interval.

Uniform Distribution

Recall from |abms-basicStatistics| that most high-level programming languages provide facilites to generate random variates drawn from a standard uniform distribution. Recall that the standard uniform distribution draws values only from the unit interval (\([0.0\,..\,1.0]\)), where every possible value is equally likely. One may easily transform a random variable that has a standard uniform distribution into a new random variable that has a uniform distribution on any interval \([a\,..\,b]\). To see this, suppose the random variable \(U\) has the standard uniform distribution. (We often write this as \(U \sim U[0,1]\).) Consider the transformation \(Y = U b + (1 - U)a\). A realization of \(Y\) is a weighted average of \(a\) and \(b\), where the weights are determined by the realization of \(U\). An equivalent expression is \(Y = a + U(b - a)\).

The new random variable \(Y\) produced in this way is equally likey to take on any values between \(a\) and \(b\). That is, \(Y\) is uniformly distributed on \([a\,..\,b]\). (We often write this as \(Y \sim U[a,b]\).) For example, suppose \(a=0.2\) and \(b=0.8\). Figure transformUniform01Uniform illustrates how any draw \(u\) from \(U[0,1]\) becomes a draw from \(U[0.2,0.8]\). [1]

Linear transformation of draws from a standard uniform distribution.

Transform Draws from \(U[0,1]\) into Draws from \(U[0.2,0.8]\).

Given access to facilities to produce draws from a standard uniform distribution, this discussion indicates how to produces draws from a uniform distribution on any interval. The following randomUniform function accomplishes this transformation.

function:

randomUniform: (Real,Real) -> Real

parameters:
  • umin, the lower bound of interval

  • umax, the upper bound of interval

summary:
  • Let \(u\) be a draw from the standard uniform distribution.

  • Return \(u_\min + u (u_\max - u_\min)\).

Implement the randomUniform function.

Predicted Profitability

Each business opportunity has an idiosyncratic predicted profitability that comprises two components: revenue, and costs. Business opportunities are fundamentally heterogeneous in their predicted profitability. For simplicity, we will give them a common cost structure but allow substatial heterogeneity in their predicted revenues. This heterogeneity vary randomly across business opportunities. In this case, we do not want to draw from a uniform distribution. It is likely that high-profit opportunities are relative rare. In fact, the more profitable the opportunity, the rarer it should be.

Exponential Distribution

We can again use transformations of the standard uniform to produce such a distribution. For example, suppose \(U\) has the standard uniform distribution. Since \(\ln(1)=0\) and \(\ln(0)=-\infty\), \(X = -\ln(1-U)\) is a random variate with values in the range \([0\,..\,\infty]\). Since \(1-U\) lies in \([0.0\,..\,0.5]\) half the time, half the values generated this way will be in \([0\,..\,-\ln(0.5)] \approx [0\,..\,0.7]\). (This means that \(0.7\) is the median value of \(X\).) Since \(1-U\) lies in the real interval \([0.50\,..\,0.75]\) a quarter of the time, a quarter of the values generated this way will be in the real interval \([-\ln(0.5)\,..\,-\ln(0.25)] \approx [0.7\,..\,1.39]\). (This means that \(1.39\) is the third quartile of \(X\), and variates lie above this value about a quarter of the time in a large sample.) Proceding with this reasoning, we find that this method will produce very few large values. In fact, 95% of the time, a draw from this distribution will be less than \(3.0\). Figure transformUniformExponential illustrates this transformation.

Nonlinear transformation of draws from a standard uniform distribution.

Transform Standard Uniform into Standard Exponential

The resulting distribution is called the standard exponential distribution. Since it sometimes (but rarely) produces very large values, its a mean_ of \(1.0\) is well above its median of about \(0.7\). Its survival function is \(P[X > x] = e^{-x}\), which is a very simple algebraic formula that summarizes the discussion above. More generally, we may scale the transformation so that \(X = -\beta\ln(1-U)\), which is still a random variate with values in the range \([0\,..\,\infty]\). This is an exponential distribution with a mean of \(\beta\); it is characterized by the survivial function \(P[X > x] = e^{-x/\beta}\).

function:

randomExponential: Real -> Real

parameters:
  • \(\beta\), the mean of the distributuion

summary:
  • Let \(u\) be a draw from the standard uniform distribution.

  • Return \(-\beta \ln[1-u]\).

Implement the randomExponential function.

Initializing a Business Opportunity

Recall that a business opportunity has four attributes: owner, failureRate, annualProfit, and neighbors. Setting owner attribute is discussed above. We now address the initialization of failureRate and annualProfit in terms of the following model parameters. The baseline values are chosen to match the Business Investor model of [Railsback.Grimm-2019-PrincetonUP].

Opportunity Parameters for BI World

parameter

meaning

baseline value

systemicRisk

system-wide failure risk

\(0.01\)

maxIdiosyncraticRisk

business specific failure risk

\(0.09\)

meanCosts

average annual costs

\(2000\)

meanRevenue

average annual revenue

\(5000\)

Introduce four new global variables in BI World. Initialize systemicRisk and maxIdiosyncraticRisk to be \(0.01\) and \(0.09\). Initialize meanRevenue and meanCosts to \(5000\) and \(2000\).

Determine the failure rate of a particular business opportunity by drawing from the uniform distribution on the interval \([0\,..\,\mathrm{maxIdiosyncraticRisk}]\). Determine the predicted annual profit of a particular business opportunity by drawing from the exponential distribution with a mean of \(meanRevenue\) and then subtracting meanCosts. Setting the neighbors attribute requires a little additional discussion.

Opportunity Terrain

The neighbors attribute captures a fundamental consideration in this model, which is the idea of adjacent opportunities. In the conceptual model of BI World, the adjacent relationship between business opportunities is extremely abstract. One simple approach to implementing a nation of adjacency is to create a spatial layout of the opportunities and then associate distance in the space of ideas with distance in physical space. Location in the grid has no meaning beyond adjacency in a space of ideas. For presentational simplicity, arrange business opportunities in a two-dimensional rectangular torus_. Let the neighbors of an opportunity be the eight adjacent cells of the torus.

GUI Display of Opportunities

The assumption that the relationships between business opportunities can be captured by adjacency relationships in a rectangular terrain allows us to give them a standard GUI representation. We can give business opportunities the standard display of cells or patches in a rectangular world. The location of an investor has no inherent meaning, but it will prove graphically convenient to represent business ownership by moving each investor to the location of its business. In addition, we may make this display more informative if we color-code a display attribute.

Create a setupGUI procedure that colors opportunities to indicate their predicted profits. Here is one possibility (but suit your personal color preferences). Color patches increasingly chromatic shades of orange as the expected profits rise toward golden opportunities, where revenues are three times the mean revenue. Use black for non-positive profits. Profits above \(0\) should producing increasingly chromatic orange, topping out at three times the mean revenue. After that, for very low probability profits, move towards less chromatic tints.

Goals and Behavior

BI World contains two types of entities: investors, and business opportunities. Investors are the actual agents in BI World: they sense and act. Business opportunies vary in profit and risk, but these features are immutable. Business opportunies do not act in this model; there are no behaviors associated with a business opportunity. They are not even a minimal agent.

Business Investor

A business investor picks a business opportunity and operates the business. We decompose this into two behaviors: picking a business to run (pickBusiness), and running the business (runBusiness). The investor’s current business is a key attribute of an investor. Running a business can generate profits and augment an investor’s wealth. The investor’s current wealth is a focal attribute: ultimately, we will consider wealth inequality.

BusinessInvestor

wealth: Real = 0

business: Opportunity

endeavors: Opportunity[1..*]

failures: Opportunity[0..*]

pickBusiness()

runBusiness()

As a convenience, keep track of all of the businesses that the investor has run. To this end, introduce an endeavors attribute, which is a list of businesses. As another convenience, keep count of the investor’s failed business endeavors. To this end, introduce a failures attribute, which again is a list of businesses.

Associating an Investor with a Business

An investor owns a business opportunity, which she runs. An opportunity may or may not have an owner. Figure associateInvestorOpportunity illustrates this relationship between investors and business opportunities.

A class diagram for the association between investors and opportunities.

Association of Investor with Opportunity

In order to link investors and opportunities in this way, introduce a pursue procedure. This will be an investor behavior that changes which business opportunity the investor pursues. In this model, an investor can only pursue one business opportunity at a time. The investor therefore decouples herself from any current business opportunity and associates herself with the new business opportunity. Ultimately this will become a subbehavior of the pickBusiness behavior, but for the moment it stands on its own.

procedure:

pursue: Opportunity -> °

parameter:

opportunity, the new opportunity pursued.

context:

Investor

summary:

Rescind ownership of any old opportunity pursued, and take ownership of the new opportunity. This will change the owner attribute of any old opportunity and of the new opportunity, the business attribute of the investor, and the endeavors attribute of the investor.

Implement the pursue behavior for investors. Create \(25\) business investors. Using this pursue procedure, assign a random business to each investor. Take care that no two investors attempt to own the same business. At this point you may simply create stubs for the other investor behaviors, which are covered in detail below.

Sensing, Adaptive Behavior, and Learning

An agent’s behavior may depend on its own state and the state of its environment (possibly including other agents). Sensing is the ability to detect state—possibly with error. In this model, investors do not make mistakes when sensing business opportunities. (But see the BI World Explorations below.)

This course defines adaptation very broadly as any behavioral change driven by (explicit or implicit) goals or filters. In this sense, adaptation pursues success. The definition of success may be external to agents or internal. In BI World, Investors have an explicit criterion for success, but as modelers we may also examine how effectively these objectives are pursued.

Investors sense opportunities and move to take advantage of them. Investors in a BI World may trade accept some risk to increase typical profit, as we will see. When faced with business failure, they adapt to their loss of wealth and my pick a different business to run. In this sense, they adapt to their immediate business environment, but there is no explicit learning in the model.

However, learning produces adaptation: change in behavior that results from stored experience. In this sense, we may say that an Investor is capable of a very limited form of learning: the effects of past experience are summarized by an investor’s current business.

Realism is not a goal of this model, but increasing our understanding of the role of sensing and adaptation is a goal. This lecture looks for emergent patterns in how sensing ability in a profit and risk terrain affects the ultimate distribution of investor wealth. Realistically, investors in BI World have a limited ability to sense available investment opportunities. Less realistically, entering or switching businesses is costless. (Or equivalently, opportunities are characterized in terms of net income.)

For reasons that remain entirely implicit in the model, an investor who is running a business can sense neighboring business opportunities. This is meant to capture the notion of entrepreneurial alertness in a very stylized fashion.

Prediction and Goal-Driven Behavior

Utility in this model is based on anticipated profit and uncertain failure. In this sense, prediction serves as the basis of investor behavior. As [Railsback.Grimm-2019-PrincetonUP] emphasize, these predictions assume the business opportunities are unchanging in their characteristics.

An Investor bases the choice of business opportunity on an objective function, which may consider both risk and typical profitability. The match value is the risk adjusted value of an Opportunity for an Investor. ([Railsback.Grimm-2019-PrincetonUP] call it a fitness measure or utility.) Represent this with a matchValue function, which produces the real value of to a particular investor of running a particular business. Here is a simple summary, which pushes off the details of how to determine this value in an unspecified payoff function.

function:

matchValue : Opportunity -> Real

parameter:

opportunity, a business opportunity.

context:

Investor

summary:

Return the value of opportunity to the investor, as determined by a payoff function.

One may consider a large variety of payoff functions. In the baseline BI World, however, investors trade-off income and risk of failure. Investors have a time-horizon (h) for their decisions, which is an integer number of years. Following [Railsback.Grimm-2019-PrincetonUP], an Investor simply sums typical income from an Opportunity over the horizon without discounting. However, this value is reduced to reflect the likelihood of business failure. This leads to a pure function, which we capture in a payoff function. (Following [Railsback.Grimm-2019-PrincetonUP], the value of a match has a lower bound at \(0\).)

function:

payoff: (Real,Real,Real,Integer,String) -> Real

parameters:
  • p, annual profit

  • f, annual failure rate

  • w, wealth

  • h, decision horizon

  • o, decision objective

summary:

If \(w + h p < 0\), return 0.0. Otherwise, return \((w + h p) (1 - f)^h\).

Consequences of Optimization

Investors are optimizers: the pick a business that combines the best combination of earning potential and likelihood of survival. However, they have limited sensing ability: only nearby (in the opportunity space) businesses are considered. If any available nearby opportunity offers better anticipated utility, the investor will pick it over the current business.

This computation of utility has some interesting implications. Consider an investor choosing between two patches with the following characteristics: \((y_1,p_1) = (100,0.1)\). and \((y_2,p_2) = (200,0.2)\), The ex ante payoff to an investor is a function of the investor’s wealth. For this illustration, use a horizon of one year.

\begin{equation*} \pi_1 = (w + 100)*0.9 \qquad \pi_2 = (w + 200)*0.8 \end{equation*}

At low levels of investor wealth, the high risk opportunity is preferred. But as the investor accumulates wealth, the high risk opportunity eventually puts too much at risk. Above a wealth of \(700\), the investor prefers the low risk option. This means that we may observe an investor switch back and forth between options as wealth rises and falls.

Value of a Match

An Opportunity has a value for an Investor. This is the basis of picking a business. An investor examines the opportunities within sensing range and picks the one with the highest anticipated utility.

Running the Business

Running the business produces income each year, which augments the investor’s wealth. However, investors face a business-specific likelihood of business failure, which leads to bankruptcy. (Wealth falls to zero.) When a business fails, the investor may try a new business, or may againt attempt to run the old business. The number of investors is fixed during a simulation run. If a business fails, the investor goes broke (i.e., wealth falls to zero).

Simulation Schedule

An investor with a business will sense nearby business opportunities. Following [Railsback.Grimm-2019-PrincetonUP], the opportunity landscape is 19 by 19 patches in size with no wrapping at its edges.

Discrete Time

Time moves discretely, with one iteration through the model schedule representing one period. The intended time-scale of the model is that one period represents one year. The model schedule is very simple: each period, each investor picks a business (possibly unchanged) and runs it. Investors make their business choices in random order, so that no investor is given a permanent first-mover advantage. We can summarize this with the following step procedure.

to step
  ask turtles [pickBusiness]
  ask turtles [runBusiness]
  tick
end

Simulations in this model have no natural stopping point. Following [Railsback.Grimm-2019-PrincetonUP], simulations run for 50 years.

Success of Optimization

Realistically, high profit opportunities are rarer than low profit opportunities. Somewhatless realistically, the risk of failure is unrelated to expected profitabiilty. Since search is local, good opportunities are often overlooked. Still, mean utility tends to rise. Recall that emergent outcomes are aggregate patterns that result from the micro-level interactions. The most surprising result to emerge is that mean profit tends to fall over time. This can be explained by attending to the wealth dependence of utility.

Interaction

Investors (turtles) interact directly with opportunities (patches) but only indirectly with each other. Indirect interaction arises because only one investor at a time can operated a particular business.

Stochasticity

Outside of the model setup, the only explicit stochasticity is in business failure. However, as [Railsback.Grimm-2019-PrincetonUP] note, the code allows for stochastic tie breaking if an investor find a tie among best investment opportunities. With the match evaluation described above and the setup described below, such ties are extremely unlikely.

Baseline Parameterization and Results

Baseline Parameterization

The baseline parameterization comes directly from [Railsback.Grimm-2019-PrincetonUP].

to setupGlobals ; (Baseline values from Railsback and Grimm ch 11.)
  set nYears    50
  set nInvestors 25
  set systemicRisk 0.01
  set maxIdiosyncraticRisk 0.09
  set meanRevenue 5000
  set meanCosts 2000
  set horizon 5
end

The annual income and risk of failure of each business opportunity is determined at initialization and never changes. Annual income is drawn from a random exponential distribution, so that high-profit opportunities are relatively rare. Idiosyncratic failure risks are drawn from a uniform distribution on \([0.01 .. 0.09]\). Twenty five investor agents randomly allocated among 361 business opportunities, subject to a unique ownership constraint. (That is, only one investor at a time can pursue any given business opportunity.) Investors begin the simulation with no wealth.

Gathering Data from the Experiment

Use of the GUI is a primary source of observation. The View is colored to represent the typical annual profits of each patch. Following [Railsback.Grimm-2019-PrincetonUP], the investors in the View have their pen down, so that we can us observe how many patches each has used. Generally speaking, the answer is not many. Since we keep track of the businesses each investor pursues during a simulation, we can pin this down quantitatively.

Plots: distribution of utility, wealth inequality, mean income and riskiness of operating businesses, mean wealth of investor The distribution of wealth is measured with the coefficient of variation.

Investor data is gathered as the simulation runs.

Conclusion and Resources

BI World Explorations

  1. In the BI World model, and extend the interface by adding a slider for the mean annual income.

  2. In the BI World model, extend the model so that investors have different objective functions. Examine the resulting distribution of wealth for each type of investor. Which type does best?

  3. Remove the hardcoded parameters from the baseline model and replace them with global variables. (When desirable, provide sliders to facilitate user experimentation.)

  4. Track GDP.

  5. Let any shock diffuse to nearby businesses.

  6. Evaluated anticipated income based on its discounted present value by introducing a fixed interest rate.

  7. Allow for some error in the sensing of business opportunities.

  8. In the baseline model, annual profits are uncorrelated between adjacent business opportunities. Suppose there is some correlation in adjacent opportunities. (In NetLogo, you can diffuse the annual profits to produce this.) How do the model results change? Or, suppose that profits are depressed when adjacent businesses are operated. How do the model results change?

  9. In the baseline model, all investors use the same decision horizon. Change the model by letting each investor have its own horizon, set randomly at setup to a value between 1 and 10. How does an investor’s horizon affect end-of-simulation wealth outcomes?

  10. [Railsback.Grimm-2019-PrincetonUP] consider a variant of the Business Investor model that replaces optimization with “satisficing” behavior, as follows. If an investor’s current business has a match value of greater than the investor’s satisficing threshold, the investor does not switch businesses. Otherwise, it switches to a randomly chosen adjacent business. Set the threshold to mean annual income, and determine how the model results change. Next consider a threshold multiplier running from 0.5 to 2, where the threshold is the multiplier time mean annual income.

  11. (Advanced) In a BI World, business opportunities have no associated behavior except recording an owner. Demonstrate how to use hash tables to represent business opportunities.

Additional Resources

For a brief introduction to logical connectives, see the Wikipedia article. For more details, see Chapter 3 of [Lehman.Leighton.Meyer-2018-MathCompSci]. (This book is freely available from the Wikimedia Commons.)

References

[Lehman.Leighton.Meyer-2018-MathCompSci]

Lehman, Eric, F. Thomson Leighton, and Albert R. Meyer. (2018) Mathematics for Computer Science. Cambridge, MA: self published. https://courses.csail.mit.edu/6.042/spring18/mcs.pdf

[Lorenz-1905-JASA]

Lorenz, M.O. (1905) Methods of Measuring the Concentration of Wealth. Publications of the American Statitical Association 9, 209--219.

[Railsback.Grimm-2019-PrincetonUP]

Railsback, Steven F., and Volker Grimm. (2019) Agent-Based and Individual-Based Modeling: A Practical Introduction. Princeton, NJ: Princeton University Press.