Which Bass Model Equations Should I Use?

Download the companion spreadsheet Explore Bass Model Equations.xls. The spreadsheet has open source of the Visual Basic functions described below. It also has examples for exploring the various Bass Model equations. You may also just copy or read the Visual Basic code.

The Short Answer


For t = 1, 2, 3...

Cumulative adoptions A(t) and adoptions (sales to first-time buyers) a(t) are


The following section explains why these equations are the best choice.

The Long Answer

The Continuous Time Bass Model Functions

In the continuous Bass Model, time, t can be any non-negative value and delta t can be itty bitty. Therefore, no screaming is required when to an algorithmic eye, the following differential equation (DE) for the probability density function (PDF) f(t) and the cumulative distribution function (CDF)
F(t) seem circular. They are not because these equations express relationships, not algorithms.

Bass Model Differential Equation

From Bass 1969[1]

Cumulative adoptions A(t) and adoptions (sales to first-time buyers) a(t) are


The above equation for f(t) is not a function of time t, rather it is a function of F(t).

The equation does embody the assumption that F(t) is at equal t intervals, say 0, 1, 2, ...., but the way in which t is numbered has no significance because t is not used in the calculations.

The Bass Model DE is often expressed in terms of adoptions a(t) and cumulative adoptions as shown below, which is equivalent to the a(t) above.


Other expressions of the Bass Model DE use different symbols or rearrange the equation algebraically: they are all equivalent although they may have slightly different numerical accuracy when calculated on a computer with limited precision arithmetic.

Further, the time-domain Bass Model functions shown below F(t) and f(t), which are the solution to the DE above, are consistent with each other for any non-negative value of continuous time t.

Cumulative adoptions A(t) and adoptions (sales to first-time buyers) a(t) are


The Discrete Time Bass Model Functions

In the real world of sales data, we must translate continuous time relationships to discrete time intervals, say (t-1) to t, written [t-1,t], that are usually numbered t=1, 2, 3, ... , but may be numbered t=0, 1, 2, ....

In discrete models, the Bass Model DE f(t) as well as the solution f(t) and F(t) must be modified to avoid circular and inconsistent relationships.

The two Bass Model time-domain continuous equations cannot be used together in a discrete model because they are not consistent with each other. Consider the interval [t-1,t]. The desired value for F(t) is the sum of all prior f(i) up to and including f(t). Since F(t) is the value at the (right) end of the interval it is precisely what is desired. However, f(t) is the rate at exactly t, not the average rate over the interval that is needed to be consistent with F(t). How do we find average f(t)? Read on.

In the discussion that follows unless otherwise specified, cumulative adoptions A(t) and adoptions a(t) are


Bass functions must be used in pairs such that the cumulative distribution function (CDF)F(t) is consistent with the probability density function (PDF) f(t), which is sometimes called the rate function. There are three such consistent pairs, which are named here by the name of the Excel Visual Basic functions in which they are implemented. In order of preference the consistent pairs are:

(1) Bass_cF( p, q, t ) and Bass_SM_f( p, q, t )
(2)Bass_cF_fsum( p, q, t )and Bass_f( p, q, t )
(3)Bass_DE_cF( Bass_DE_cF( t-1 ), Bass_DE_f( p, q, t-1 ) )
and Bass_DE_f( Bass_DE_cF( t-1 ) )

The mathematical expression of each pair will be given in the discussion that follows. We will explain why (1) is preferred.

Pair (1): Bass_cF( p, q, t ) and Bass_SM_f( p, q, t )

Bass_cF( p, q, t )

Bass_SM_f( p, q, t )

Bass_cF and Bass_SM_f, which are based on the Bass Model CDF F(t), is preferred for NLS parameter estimation and forecasting. See Srinivasan Mason 1986.[4]

Bass_cF is the same formula as the continuous form of F(t). The value at t is the sum of all f(i) up to and including f(t). In other words, F(t) is valued at the right side of the interval, which is desired. In this form, f(t) is expressed as f(t) = F(t) - F(t-1), which is the average rate over the interval [t-1,t] and is the perfectly compatible companion to F(t). Notice that in this case the first interval is the interval 0 to 1, where t=1,; therefore, the first non-zero value of F(t) is F(1) and f(1) = F(1) or equivalently f(1) = F(1)-F(0).

This form also has the advantage that f(t) is calculated as a subtraction of two similarly scaled numbers, which is numerically more accurate in limited precision arithmetic than is adding a relatively small number to a larger one, which is often required to calculate F(t) in the f(t)-based form and A(t) in the DE-based form..

Pair (2): Bass_cF_fsum( p, q, t ) and Bass_f( p, q, t )

Bass_cF_fsum( p, q, t )

Bass_f( p, q, t)

Bass_f and Bass_cF_fsum, which are based on the Bass Model PDF f(t), are less appropriate than (1) for use in a discrete model because f(t) expresses the rate at a specific time t, not the average over the discrete interval [t ,t+1]. The usual convention when using f(t) in a discrete model is to start at t=0 because f(0) is non-zero and conveniently f(0) = p m. At t=0, f(0) is the rate on the left side of the interval [0,1]. No matter how intervals are identified, f(t) is not the average over the interval needed in a discrete model. Sometimes f(t) is less than (before the peak) and sometimes greater than (after the peak) the average rate over the interval depending on the Bass Model parameters p and q as well as t.

It can be argued that the best sequence for t in a discrete model based on f(t) is t=0.5, 1.5, 2.5, .... If the middle of interval t to (t+1) is used for f(t), then f(t) is closer to the average rate than either f(t) or f(t+1). Try it. Even so, because the Bass Model is nonlinear, even the midpoint is not exactly the average over the interval, especially when q is high, say 1.2.

Pair (3): Bass_DE_cF( Bass_DE_cF( t-1 ), Bass_DE_f( p, q, t-1 ) )
and Bass_DE_f( Bass_DE_cF( t-1 ) )

Bass_DE_cF( Bass_DE_cF( t-1 ), Bass_DE_f( p, q, t-1 ) )

Bass_DE_f( Bass_DE_cF( t-1 ) )

Bass_DE_cF and Bass_DE_f, in which f(t) and F(t) are based on the Bass Model differential equation (DE), are less appropriate than either (1) or (2) for use in a discrete model.

The DE expresses f(t) is a function of F(t) while F(t) is a function of F(t-1) and f(t). This is not problem in a mathematical relationship, but in a discrete model we want equations suitable for an algorithm, not a relationship. Therefore, we must introduce some time weirdness making f(t) and F(t) a function of F(t-1). This introduces substantial error into the model: how much depends on the difference in F(t) and F(t-1), which depends on the parameters p and q, bigger p and q values, bigger errors. Before the peak, the calculated f(t) is less that it should be and after the peak, it is more. Further, the error compounds because the error in each
f(t) is added into F(t), which is used to calculate the next f(t), and so on.

Marchant Calculator

Professor Bass used this DE form in his 1969 paper because it has the advantage over the time-domain equations of being linear in the parameters. It can, therefore, be curve fit to sales data to find the parameters M, p and q using ordinary least squares (OLS) instead of nonlinear least squares (NLS), a singular advantage when using a Marchant calculator to do the regression. If you are not using a Marchant calculator, bite the bullet, use NLS on a computer: it is even easy to do in Excel although it is not a built-in statistical method.

Another expression of the Bass Model DE often seen is

In Bass 1969, Professor Bass used the symbols S(t) instead of a(t) for adoptions (sales) and Y(t) instead of A(t) for cumulative adoptions. Other authors have used X(t) instead of a(t) and N(t) instead of A(t). Nonetheless, they are all the same or equivalent equations.

  1. Bass, Frank M. 1969. A new product growth for model consumer durables. Management Science 15 215-227.
  2. Mahajan, Vijay, Charlotte H. Mason, V. Seenu Srinivasan. 1986. An evaluation of estimation procedures for new product diffusion models. In Innovation Diffusion Models of New Product Acceptance, Vijay Mahajan and Yoram Wind, eds. Cambridge, MA: Ballinger Publishing Company.
  3. Schmittlein, David C., Vijay Mahajan. 1982. Maximum likelihood estimation for an innovation diffusion model of new product acceptance. Marketing Science 1 (1) 57–78. .
  4. Srinivasan, V. Seenu and Charlotte Mason. 1986. Nonlinear least squares estimation of new product diffusion models.  Marketing Science, 5 (2), 169–178.