Over the past ten years there has been an explosion in the number and range of telecoms services. In the UK this has been most notable in mobile services, but competition has also been introduced in fixed-wire and value-added services.

One characteristic of the telecoms industry is that its costs are largely fixed and are associated with the infrastructure: cables; switches; base stations; etc. But customers expect to pay for what they use. This gives rise to the problem of designing tariffs: deciding how much to charge customers as a fixed cost and how much per minute connected.

The mobile operator Orange recognised that consumers prefer to know how much they are spending and pioneered the approach of offering a series of bundled tariffs. These charge a fixed amount each month which includes a certain 'talk time'; if more calls are made in a month the extra calls are charged by the minute. More complex bundles are also now being introduced with extra phones and telephone numbers as part of the package.

This approach has been highly successful and has been widely imitated. It gives rise to the problem of deciding

- how many bundled tariffs to offer;
- what price to charge for each tariff;
- how much talk time to include free within the bundle;
- what rate to charge for extra calls (possibly, two rates, one for peak period calls and the other for off-peak calls)

with the aim of maximising revenues.

This is the problem which Professor Buchanan has been addressing. It is represented by Figure 1, which shows the relationship between customer numbers and actual talk time and how those customers select tariff plans. The vertical lines represent the talk time, **A**_{1}**, A**_{2}**, A**_{3}**, **which is included free within each tariff. Note that customers appearing to the right of a tariff plan are paying for their marginal calls. But so long as they are to the left of the corresponding break-even point** B**_{1}**, B**_{2}** **they are paying less than they would under the next tariff bundle. If everyone was cost-minimising, the division of customers between tariff bundles would be represented by vertical lines at** B**_{1}** , B**_{2 }. In practice there are quite a lot of customers to the left of each break-even point paying the higher tariff. These customers are risk-averse and are paying more than they need in order to be sure that their costs are under control.

Any model of this problem has to represent the way in which customers select their tariffs from those available. There may be several service providers each with a range of tariffs. The model must represent how the market responds to any particular set of tariffs which the client service provider might offer.

One model of competitive behaviour is to say that the number of customers, **n**_{ijkl}, switching from service **i** with operator **j** to a cheaper service **k** with operator **1** is proportional to the difference in price

**n**_{ijkl} oc **{ (c**_{ij}** - c**_{kl}**) / c**_{ij}** } N**_{ij }

where **c**_{ij} is the cost of service **i** from the operator** j,** **c**_{kl} is the cost of service **k** from operator **1** **(c**_{ij}**)** and **N**_{ij }is the number of customers for that service now.

This type of behaviour (and that of other plausible candidates) gives rise to significant non-linearities. These make it difficult to build a network flow (i.e. LP-type) model which simultaneously optimises the decision variables. It suggests instead the use of some form of sequential optimisation based on enumeration.

Another reason for using some form of enumeration lies in marketing and the human preference for 'round' numbers. While it might be mathematically optimum to propose a tariff charging 14.23 a month for 13 minutes 54 seconds talk time, consumers will respond more positively to 15 a month for 15 minutes. This means that there is a relatively small number of possible values for each of the decision variables, although the number of possible combinations is still very large.

The approach which Professor Buchanan has adopted has been to build a Dynamic Programming model. There is a four-dimensional state vector characterised by

- 'free' talk time per month,
**t**; - fixed charge per month,
**c**; - peak rate for extra calls,
**r**; - off-peak rate for extra calls,
**s**.

The problem is conceived as a sequential optimisation over the number of tariff bundles, **n**. At each stage we have found the optimum solution for each value of the state vector **(t,c,r,s)**. The tariff bundles have a natural ordering: as **t **increases so does** c**, while **r** and **s** fall. When we talk of the optimum solution for **(t,c,r,s)** with **n** tariff bundles we mean the optimum set of **n** tariff bundles in which the largest bundle has talk time **t**, fixed charge **c**, peak rate for extra calls **r** and off-peak rate **s**. We say that the value of this solution is **V**_{n}**(t,c,r,s). **

We now wish to move on to find the optimum solutions with **(n+1)** tariff bundles. For each point in the state space we consider all the possible solutions with n tariffs to which we can add our new tariff bundle **(t',c',r',s')**. We insist that the new tariff bundle is the largest of our set of **(n+1)** tariffs, so the starting points which we need to consider are those **(t,c,r,s)** for which **t < t'**, **c < c**', **r < r'**, **s <s'**. For each of these we consider the effect of adding our new tariff **(t',c',r',s')**: how many customers switch from each of the preceding tariffs and from those of competitors, and we compute the revenue. We select the best route to our new point, i.e. the preceding point **(t",c",r",s")** which gives the best value at **(t',c',r',s')** and store both the preceding point and its value **V**_{n+1}**(t',c',r',s')**. This completes the dynamic programming recursion.

To find the best solution with n tariff bundles we find that set** (t*,c*,r*,s*)** with the largest value of **V**_{n}**(t,c,r,s) **and trace back through our optimisation to find which tariffs were added at each stage of the optimisation.

To run the model we need to define the sets of values **{t}**, **{c}**, **{r}** and **{s}** and any relationships between them. For instance the off-peak rate for extra calls may be fixed at half the peak rate. This has the effect of reducing the state space from four dimensions to three, greatly reducing run-times.

One feature of the model is that its structure, i.e. the dynamic programming recursion, is independent of the representation of the market and consumer behaviour. The next stage in using the model is therefore to convert the description of the market and consumer behaviour into a subroutine (typically 20 lines of C code) which is slotted into the dynamic programming recursion.

Once this is done, the rest of the data can be prepared, the model can be run and the results analysed.

The greatest degree of uncertainty in the model lies in the description of the market and consumer behaviour. This can really only be guessed at. It is therefore a great strength of the approach that it is easy to change the description and rerun the model. Studies typically involve the use of a variety of market descriptions, each of which will be coded as a separate subroutine. The optimum solution from each market description is analysed under the other market descriptions to assess its robustness. In the end a judgement is made as to which solution to accept based on its behaviour across the range of market descriptions.

The model has been tested on a variety of problems, some of which have had quite different structures from mobile phone tariffs. It is particularly valuable in competitive markets and with new services, where prices are set by the value which consumers place on them rather than on costs.

*This article is based on a talk given by Iain Buchanan of the University of Strathclyde to the Mathematical Programming Study group. Professor Buchanan is currently working on a Royal Society Industrial Fellowship at Analysis Ltd, Cambridge. Robert Simons is a consultant specialising in optimisation and is Secretary of the Mathematical Programming Study group.*