Tutorials › CAS Exam 8 - Advanced Ratemaking › Choosing an Optimization Formulation for Price Menus

CAS Exam 8 · Optimization Implementation and Testing · Tutorial 873 of 989

Choosing an Optimization Formulation for Price Menus

Translate a discrete price menu into a linear or mixed-integer optimization model, then check that its solution represents feasible customer choices and portfolio outcomes.

Advanced 13 min read

What You'll Learn

  • Define decision variables for discrete prices offered to individual customers or cohorts
  • Build an expected-contribution objective from candidate-price forecasts
  • Represent one-price-per-customer rules and portfolio controls as constraints
  • Decide when binary variables are necessary and when a linear relaxation is meaningful
  • Check an optimizer’s recommendation against the meaning of its variables and coefficients

Why the Formulation Matters

A price optimizer does not choose prices from a continuous range unless the model explicitly allows it to. In a discrete price menu, each customer has a finite set of candidate prices, with an estimated retention probability and contribution for each candidate. The optimization formulation must select from those alternatives while respecting customer and portfolio controls.

The central modeling decision is whether a variable represents a whole customer’s choice or a divisible amount of a group. A customer-level price choice is indivisible, so it generally requires binary decision variables. A continuous linear program can be appropriate for a genuinely divisible allocation, such as assigning a number of otherwise interchangeable policies to each menu option. Using a continuous variable for an individual customer without that interpretation can produce a recommendation that cannot actually be implemented.

Definition: For customer \(i\), let \(K_i\) be the set of candidate price options. Let \(q_{ik}\) be the forecast probability of renewal at option \(k\), \(m_{ik}\) the contribution conditional on renewal, and \(p_{ik}\) the quoted premium. Define expected contribution \(c_{ik}=q_{ik}m_{ik}\), expected renewals \(r_{ik}=q_{ik}\), and expected written premium \(w_{ik}=q_{ik}p_{ik}\). These are fixed coefficients for the optimization model, not decision variables.

This definition assumes that a renewal produces the stated premium and conditional contribution, and that the forecast values are suitable for the pricing decision being modeled. If a contribution coefficient is already an expected value, do not multiply it by the renewal probability again. Likewise, use the portfolio quantity actually controlled by the business rule: a premium constraint might use expected written premium, while another rule might use quoted premium or a rate-change measure.

The Customer-Level Binary Formulation

For a discrete choice for every customer, define \(x_{ik}=1\) when customer \(i\) receives candidate option \(k\), and \(x_{ik}=0\) otherwise. The one-choice rule is imposed separately for each customer. Expected contribution is maximized by summing the selected options’ contribution coefficients.

$$ \begin{aligned} \max \quad & \sum_i\sum_{k\in K_i} c_{ik}x_{ik}\\ \text{subject to}\quad & \sum_{k\in K_i}x_{ik}=1 &&\text{for each customer }i,\\ & x_{ik}\in\{0,1\} &&\text{for each allowed option }(i,k). \end{aligned} $$

The candidate set \(K_i\) can contain only prices permitted for customer \(i\). For example, if a customer-level movement guardrail rules out one price, omit that option. Alternatively, retain it and impose a constraint that forces its variable to zero. The first approach often makes the allowed choices easier to inspect.

Portfolio controls add linear constraints when their quantities are fixed coefficients for each customer-option pair. Examples include a minimum expected renewal count, a premium range, or bounds on the number of customers assigned a particular option. For instance, the expected renewal floor \(R_{\min}\) is \(\sum_i\sum_k q_{ik}x_{ik}\ge R_{\min}\). A lower and upper bound on expected written premium are \(\sum_i\sum_k w_{ik}x_{ik}\ge W_{\min}\) and \(\sum_i\sum_k w_{ik}x_{ik}\le W_{\max}\).

Why the objective is linear: Under the additive expected-contribution assumption, the total contribution is the sum of the individual contributions. For each customer exactly one option is selected, so that customer’s expected contribution is \(\sum_k c_{ik}x_{ik}\). Taking the sum over customers gives the objective. Linearity of expectation does not require renewal outcomes to be independent; however, the additive model does not capture portfolio effects that make one customer’s outcome change another customer’s contribution.

Worked Example: Choosing Prices With Two Portfolio Floors

A hypothetical insurer is pricing renewals for two customers, A and B. The table gives each candidate’s premium, renewal probability, and contribution conditional on renewal. Choose one price per customer to maximize expected contribution, subject to at least 1.70 expected renewals and at least $1,540 expected written premium.

CustomerOptionPremiumRenewal probabilityContribution if renewed
ALow$9000.95$200
AHigh$1,0000.85$300
BLow$8000.90$160
BHigh$9000.75$260

Step 1: Calculate the coefficients. For A at the low price, expected contribution is \(0.95(200)=190\), expected renewals are \(0.95\), and expected written premium is \(0.95(900)=855\). At the high price, the corresponding values are \(0.85(300)=255\), \(0.85\), and \(0.85(1{,}000)=850\). For B, the low-price values are \(0.90(160)=144\), \(0.90\), and \(0.90(800)=720\); the high-price values are \(0.75(260)=195\), \(0.75\), and \(0.75(900)=675\).

Step 2: Define the decisions and constraints. Let \(x_{AL},x_{AH},x_{BL},x_{BH}\) be binary indicators for the four options. The objective is to maximize \(190x_{AL}+255x_{AH}+144x_{BL}+195x_{BH}\). Require \(x_{AL}+x_{AH}=1\) and \(x_{BL}+x_{BH}=1\). The portfolio constraints are \(0.95x_{AL}+0.85x_{AH}+0.90x_{BL}+0.75x_{BH}\ge1.70\) and \(855x_{AL}+850x_{AH}+720x_{BL}+675x_{BH}\ge1{,}540\).

Step 3: Check the four permitted combinations. Low/low gives expected contribution \(190+144=334\), renewals \(0.95+0.90=1.85\), and premium \(855+720=\$1{,}575\); it is feasible. Low/high gives \(190+195=385\), \(0.95+0.75=1.70\), and \(\$855+\$675=\$1{,}530\); it fails the premium floor. High/low gives \(255+144=399\), \(0.85+0.90=1.75\), and \(\$850+\$720=\$1{,}570\); it is feasible. High/high gives \(255+195=450\), \(0.85+0.75=1.60\), and \(\$850+\$675=\$1{,}525\); it fails both floors.

Result and check. Select the high option for A and the low option for B. Its expected contribution is \(\$399\); expected renewals are \(1.75\ge1.70\), and expected written premium is \(\$1{,}570\ge\$1{,}540\). This enumeration checks the optimization result against every possible one-price-per-customer assignment. The common mistake is to choose the high/high option solely because its contribution is greatest: that assignment violates both portfolio controls.

When a Linear Program Is—and Is Not—Enough

With binary customer-level variables, the model is a mixed-integer linear program (MILP): its objective and constraints are linear, but its decisions must be integer-valued. A linear programming relaxation replaces the binary restrictions by \(0\le x_{ik}\le1\). That relaxation can be useful as a bound or as a model of a divisible allocation, but its fractional values do not generally specify a valid price for each individual customer.

A continuous formulation is meaningful when a variable counts a divisible quantity, such as the number of policies in an interchangeable cohort assigned to an option. If policies are countable, those count variables should still be integer when fractional policy counts would be operationally impossible. A continuous approximation may be useful for a large portfolio, but its results need not correspond exactly to an implementable assignment.

Worked Example: Detecting an Invalid Fractional Customer Choice

A hypothetical insurer can offer a low or high price to each of two individual customers. At the low prices, their combined expected contribution is \(\$2{,}000\). Choosing the high price instead increases A’s expected contribution by \(\$300\) and B’s by \(\$200\). Either high price increases expected written premium by \(\$200\). The portfolio may increase expected written premium by at most \(\$300\) relative to the low-price baseline.

Step 1: Formulate the high-price decisions. Let \(y_A,y_B\) equal 1 if the corresponding customer gets the high price and 0 otherwise. The objective is to maximize \(2{,}000+300y_A+200y_B\), subject to \(200y_A+200y_B\le300\) and \(y_A,y_B\in\{0,1\}\). The low price is assigned when the corresponding \(y\) is zero.

Step 2: Solve the integer model. The premium constraint gives \(y_A+y_B\le1.5\). Since the variables are binary, at most one customer can receive the high price. The possible improvements are \(\$0\) for neither, \(\$300\) for A only, and \(\$200\) for B only. The best feasible assignment is A high and B low, for total expected contribution \(2{,}000+300=\$2{,}300\). Its premium increase is \(\$200\), within the \(\$300\) cap.

Step 3: Compare the relaxation. If the binary restrictions are replaced by \(0\le y_A,y_B\le1\), the relaxed model can set \(y_A=1\) and \(y_B=0.5\). The premium increase is \(200(1)+200(0.5)=\$300\), and the objective is \(2{,}000+300+200(0.5)=\$2{,}400\). But \(y_B=0.5\) is not a valid price assignment for customer B. This relaxed value is an upper bound, not a feasible customer-level recommendation.

Result and check. The implementable integer optimum is \(\$2{,}300\), achieved by assigning A the high price and B the low price. The common mistake is to report the relaxation’s \(\$2{,}400\) as achievable; its fractional customer decision violates the meaning of the decision variable.

Modeling Interchangeable Cohorts

When customers within a cohort have the same candidate-option coefficients and the same allowed options, a count formulation can be more compact than one binary variable per customer. Let \(n_{gk}\) be the number of customers in cohort \(g\) assigned to option \(k\). The cohort’s total assigned count must equal its size. The variable \(n_{gk}\) is integer for real policy counts; it can be continuous only when fractional allocation is a defensible approximation or a genuinely divisible quantity.

Worked Example: Allocating High Prices Across Two Cohorts

A hypothetical insurer has five policies in each of cohorts A and B. Each policy receives either a low or a high price. Per policy, cohort A has expected contribution \(\$100\) at low and \(\$125\) at high, and renewal probabilities 0.95 and 0.85. Cohort B has expected contribution \(\$70\) at low and \(\$88\) at high, and renewal probabilities 0.90 and 0.85. Each switch from low to high adds \(\$100\) of expected written premium. Require at least 8.65 expected renewals overall and limit the total expected premium increase to \(\$700\).

Step 1: Define the cohort counts. Let \(a\) and \(b\) be the numbers of high-price policies in A and B. Then \(0\le a\le5\), \(0\le b\le5\), and both counts are integers. The remaining counts receive low prices: \(5-a\) and \(5-b\).

Step 2: Write the objective and controls. The low-price baseline contribution is \(5(100)+5(70)=\$850\). Each high-price switch adds \(\$25\) in A or \(\$18\) in B, so maximize \(850+25a+18b\). Baseline expected renewals are \(5(0.95)+5(0.90)=9.25\). Each switch reduces expected renewals by 0.10 in A or 0.05 in B, so \(9.25-0.10a-0.05b\ge8.65\), equivalently \(2a+b\le12\). The premium cap is \(100(a+b)\le700\), or \(a+b\le7\).

Step 3: Find the best feasible counts. Since both contribution increments are positive, for any fixed \(a\), use the largest feasible \(b\), namely the minimum of \(5\), \(7-a\), and \(12-2a\). For \(a=0,1,2,3,4,5\), the largest feasible \(b\) is respectively \(5,5,5,4,3,2\). The corresponding contribution increments \(25a+18b\) are \(\$90,\$115,\$140,\$147,\$154,\$161\).

Result and check. Choose \(a=5,b=2\), giving total expected contribution \(850+161=\$1{,}011\). Expected renewals are \(9.25-0.10(5)-0.05(2)=8.65\), exactly the floor, and expected premium increases by \(100(5+2)=\$700\), exactly the cap. The counts are within their cohort sizes. The common mistake is to use the low-price renewal total without subtracting the renewal losses from high-price assignments.

Formulation Checks Before Interpreting a Solution

An optimizer can solve a correctly entered model; it cannot determine whether the model represents the intended business decision. Before interpreting its recommendation, check that the decision variables match the operational unit, every customer has an allowed choice, and each coefficient has the intended meaning and units.

  • Check the choice rule. Customer-level binary variables should sum to one across that customer’s allowed options. A sum of zero leaves the customer unpriced; a sum above one assigns multiple options.
  • Check the coefficient basis. Confirm whether contribution is conditional on renewal or already expected. Apply the retention probability once, not zero or two times.
  • Check the controlled quantity. Expected written premium, quoted premium, expected renewal count, and average rate change are different measures. Use the exact quantity named by the constraint.
  • Check integrality. A fractional customer-level choice is not a price recommendation. A fractional cohort count is not an exact policy assignment.
  • Check feasibility and units. Recalculate the selected assignment’s objective and each portfolio measure from the selected options. Keep dollars, counts, and probabilities distinct.

A model with fixed candidate coefficients and linear portfolio controls is a linear or mixed-integer linear formulation. If the value of one customer’s choice depends on other choices, or if a control introduces products of decision variables, the simple additive formulation may no longer apply without additional modeling. State the assumptions behind the coefficients and constraints before treating the optimizer’s output as a recommendation.

Check Your Understanding

For each problem, identify the relevant formulation or calculate the requested result.

  1. A customer has two allowed prices. Expected contribution is \(\$210\) at the first and \(\$240\) at the second; expected renewals are 0.90 and 0.80. A one-customer expected-renewal floor is 0.85. Which price maximizes contribution while satisfying the floor? (Answer: the first price, with expected contribution \(\$210\) and expected renewals 0.90.)
  2. Two individual customers each have low and high options. Explain what constraint ensures exactly one option is assigned to each customer, and what variable restriction makes each assignment indivisible. (Answer: the two option variables for each customer sum to 1; each variable is binary.)
  3. Two customers have high-price contribution gains of \(\$40\) and \(\$30\), with an expected-premium increase of \(\$25\) for either high price. The portfolio allows an increase of at most \(\$40\). What is the best integer assignment, and what is the best value of the gain objective in the continuous relaxation? (Answer: assign the high price to the first customer only, for a \(\$40\) gain; the relaxation’s maximum gain is \(\$58\), using the first high and \(0.6\) of the second.)
  4. A cohort has four interchangeable policies. Each low-price assignment contributes an expected \(\$80\); each high-price assignment contributes an expected \(\$92\). If exactly three policies receive the high price, what is the cohort’s expected contribution, and what integer count represents the high-price assignments? (Answer: \(\$4(80)+3(92-80)=\$356\); the high-price count is the integer \(3\).)
  5. A two-customer model reports a binary assignment with one price selected for each customer. The selected options imply expected renewals of 1.62 against a required floor of 1.65. What does this indicate? (Answer: the reported assignment violates the renewal constraint and is not feasible for the stated model; its selected-option values should be checked against the constraint and units.)
Clinical Biostats