Marketing optimization is the process of determining how to allocate marketing dollars in order to achieve specific goals (e.g., maximize profit), subject to certain constraints (e.g., a fixed marketing budget). This often takes the form of using mathematical techniques to determine who to target, through which channel, and with what message or offer.
A number of optimization applications are commercially available. However, many of them require changes to data and computational infrastructure that are labor-intensive and cost-prohibitive. This presentation will demonstrate how optimization applications can be developed easily and quickly using Excel combined with Excel Solver, even for large marketing campaigns.
This presentation will discuss how segmentation can be used to reduce the complexity of large optimization problems, and how to quickly develop a simple but effective optimization application using Excel combined with Excel Solver.
This presentation will be of interest to those seeking to optimize marketing campaigns of any size while managing operational and computational complexity.
An electronic copy of the Excel worksheet used for optimization is this presentation is available at tinyurl.com/mina2018artforum.
Rapid Optimization Application Development Using Excel and Solver
1. Rapid Optimization Application
Development Using
Excel and Solver
Michael Mina
2018 Advanced Research Techniques (ART) Forum
American Marketing Association
June 21, 2018 | Columbus, OH
2. Overview
• Marketing optimization is the process of determining how to allocate marketing dollars in order to
achieve specific goals (e.g., maximize profit), subject to certain constraints (e.g., a fixed marketing
budget). This often takes the form of using mathematical techniques to determine who to target,
through which channel, and with what message or offer.
• A number of optimization applications are commercially available. However, many of them require
changes to data and computational infrastructure that are labor-intensive and cost-prohibitive. This
presentation will demonstrate how optimization applications can be developed easily and quickly using
Excel combined with Excel Solver, even for large marketing campaigns.
• This presentation will discuss how segmentation can be used to reduce the complexity of large
optimization problems, and how to quickly develop a simple but effective optimization application using
Excel combined with Excel Solver.
• This presentation will be of interest to those seeking to optimize marketing campaigns of any size while
managing operational and computational complexity.
• An electronic copy of this presentation and the Excel worksheet used for optimization are available at
tinyurl.com/mina2018artforum
(c) 2018 by Michael Mina 2
3. Our hypothetical business case
• We are employees of a retailer that is planning a large catalog
mailing.
• We have 12 customer segments based on age, likelihood to
respond, and expected sales given response. This will be
reviewed in more detail below.
• We are trying to decide how many catalogs to mail to each
segment in order to maximize profit, subject to certain
constraints that we will specify (e.g., limited marketing budget).
• We already know how many customers are in each
segment.
• We will demonstrate below that it's unprofitable to mail all
of our customers, even if our marketing budget allowed it.
• The decision to be made is this – determine the percent of
each segment that should be mailed that maximizes profit
and stays within our constraints.
• We will cover three phases of rapid optimization application
development:
• Design
• Build
• Run
(c) 2018 by Michael Mina 3
4. Our hypothetical business case (cont'd)
(c) 2018 by Michael Mina 4
• Catalogs??? Is this business case even relevant? Yes it is!
• "Millennials are more interested in catalogs than your
grandmother is", by Courtney Reagan, CNBC, 12/21/17
(https://www.cnbc.com/2017/12/21/millennials-are-more-
interested-in-catalogs-than-your-grandmother-is.html)
• "The old-fashioned mail-order catalog is making a comeback" by
Ronald D. White, LA Times, 11/23/17
(http://www.latimes.com/business/la-fi-catalogs-return-
20171123-story.html)
• 44.4% of merchants increased catalog circulation in the last year
(2017) - "12 Marketing Trends You Should Know in 2018!" by
Neil O'Keefe, Data & Marketing Association, 2/22/18
(https://thedma.org/blog/marketing-analytics/12-marketing-
trends-you-should-know-in-2018/)
5. • We have detailed info on 1.12MM customers. However, even before optimization, we know we can't
contact all of them
• Some are on the Do Not Mail registry and should not be contacted
• Others we have deemed high risk for various reasons (e.g., too many returns, too many complaints)
• We must hold out a 5% control group.
• This leaves 1,000,000 customers for the next step.
• Note: All data used in this presentation are completely synthetic, and have not been sourced from
any real world data.
Our hypothetical business case (cont'd)
(c) 2018 by Michael Mina 5
6. Brief description of optimization as applied to business
Process Inputs
(c) 2018 by Michael Mina 6
Actual Decisions
• Of the possible decisions, these are the values
you have set in order to achieve the objective
and satisfy the constraints.
• Examples: customer 1 should get offer 1,
customer 2 should get no offer, customer 3
should get offer 1 through channel 2, all
customers in segment 1 should get offer 5,
etc.
Objective
• What you are trying to accomplish
• Examples: maximize profit, maximize sales, etc.
• It’s not always about maximizing profit – that’s just
one possibility.
• Maybe overall, your company already
exceeded its profit goals, but is falling short of
its sales goals.
• It could make sense to buy business – i.e., to
accept reduced profit in order to grow sales.
Constraints
• Limitations on your ability to achieve your objective.
• Examples: Limited number of customers to
contact, limited marketing budget.
Possible decisions
• Values which you must decide how to set so that you
achieve your objective and satisfy your constraints.
• Examples: Deciding which customers to contact to
meet your objective and satisfy your constraints.
Process Outputs
7. The R(apid) O(ptimization) A(pplication) D(evelopment) MAP
• Requirements for rapidly developing an optimization application are:
1. A segmentation scheme, preferably a pre-existing one
2. Values and formulas to calculate objectives and constraints for each segment
3. Microsoft Excel with the Solver add-in
• Steps to follow in creating your optimization application:
(c) 2018 by Michael Mina 7
Design Build Run
1. Determine which
segmentation
scheme to use
2. Determine your what
set of possible
decisions will be
3. Determine your
optimization-
relevant KPIs (key
performance
indicators)
4. Create your
application in Excel
using the above
information
5. Create a separate
optimization section
6. Load the Solver add-
in
7. Determine your
objectives and
constraints, and the
constraint values
8. Determine the type
of optimization you
should use
9. Configure Solver
10. Run the optimization
9. Step 1: Determine which segmentation scheme to use
• Your segmentation scheme can be developed rigorously (e.g., with cluster analysis) or intuitively (e.g.,
using variables already known to affect your objectives).
• For our example, we have m=12 segments based on age bands (18-44, 45-64, 65+), likelihood to
respond (High Resp, Low Resp), and expected sales given a response (High Sales, Low Sales).
• The likelihood to respond, as well as the expected sales given a response, could be based on
previous campaign results, model scores, etc.
• We have 12 segments because 3 age bands x 2 response bands x 2 sales bands = 12
(c) 2018 by Michael Mina 9
Segment Age band
Response
band
Sales band
1 65+ High Resp High sales
2 65+ High Resp Low sales
3 65+ Low Resp High sales
4 65+ Low Resp Low sales
5 45-64 High Resp High sales
6 45-64 High Resp Low sales
7 45-64 Low Resp High sales
8 45-64 Low Resp Low sales
9 18-44 High Resp High sales
10 18-44 High Resp Low sales
11 18-44 Low Resp High sales
12 18-44 Low Resp Low sales
10. Step 1: Determine which segmentation scheme to use (cont'd)
Why segmentation and not personalization?
• The cost of personalization often outweighs the benefits
• In some organizations, a compliance team is required to independently
recreate some of the marketing data, including the decision made by
the optimization process. Having optimization decisions based on
individual customer characteristics rather than segment-level
characteristics can make this infeasible.
• In one specific case, "the authors clustered customers based on their
response parameters and then optimized for each segment." They
concluded that "the value of the 2 percent improvement over
segment-level customization must be traded off against the effort
needed to develop individual-level policies." – Advanced Database
Marketing: Innovative Methodologies and Applications for Managing
Customer Relationships by Koen W. De Bock et al
• "The principle of 'segment of one' is certainly possible in the longer
term, however, the technologies available to deliver the experience
will need to play catch-up with the technologies and data currently
available to analyze it." – Personas vs. Segments – What’s the Story?
by Ian Williams
• To rapidly develop optimization applications with the approach outlined in
this presentation, segmentation is necessary to control computational
complexity.
• Personalized decisions for a large customer base are likely beyond the
scope of what we can achieve with this methodology.
(c) 2018 by Michael Mina 10
Market
Segmentation
Behavioral
Geographic
Psycho-
graphic
Demo-
graphic
11. Step 1: Determine which segmentation scheme to use (cont'd)
Why segmentation and not personalization? (cont'd)
• If some of the KPIs you want to optimize or constrain upon are incremental, then they may be calculated at
the segment level anyway.
• For example, we have no way of knowing how an individual customer might have acted if treated or not,
since they were either treated, or not treated.
• To estimate this for a given KPI, we can calculate the average of the KPI for treated (i.e., test)
customers within segment, and the average of the KPI for not treated (i.e., control) customers
within segment, and use the difference as the estimated effect of the treatment on that KPI for
each customer in that segment.
• For this estimate to be meaningful, you need large numbers of accounts that all have the same
independent variable values to be treated in the same manner so that you can compare them to
another group (e.g., Test vs Control, A/B testing, multivariate testing).
• In the case of A/B testing, within each segment, we can use the average of the KPI for those receiving
treatment A, minus the average of the KPI for those receiving treatment B.
• In either case, this incremental value can be imputed to individual customers in the same segment, but
all customers in the segment used for the incremental calculation will end up having the same value for
that incremental KPI. Consequently, the advantages of personalization are reduced.
(c) 2018 by Michael Mina 11
Image from https://www.invespcro.com/blog/what-is-ab-testing-split-testing/
12. Step 2: Determine your what set of possible decisions will be
• For our example, we have n=1 decision to make per segment, and that is the proportion of customers to
contact in each segment.
• This is a relatively small optimization with 12 decisions overall (m x n = 12).
• Our decisions could have been the proportion of customers to contact with catalog 1 vs catalog 2, which
would have made n=2 decisions per segment, and 24 decisions overall.
• Clearly indicate quantities that will be set by the optimization process itself rather than by you (e.g.,
shade them in yellow), even though you will default them to an initial value (e.g., 100%).
(c) 2018 by Michael Mina 12
Segment Age band
Response
band
Sales band % to contact
1 65+ High Resp High sales 100%
2 65+ High Resp Low sales 100%
3 65+ Low Resp High sales 100%
4 65+ Low Resp Low sales 100%
5 45-64 High Resp High sales 100%
6 45-64 High Resp Low sales 100%
7 45-64 Low Resp High sales 100%
8 45-64 Low Resp Low sales 100%
9 18-44 High Resp High sales 100%
10 18-44 High Resp Low sales 100%
11 18-44 Low Resp High sales 100%
12 18-44 Low Resp Low sales 100%
13. Step 3: Determine your optimization-relevant KPIs
• Our optimization-relevant KPIs will include:
• Maximum customer count
• Contacted customer count
• Response rate
• Number of Responders
• Avg Sales per responder
• Avg Sales per catalog
• Sales amount
• Avg profit per responder from sales (excl marketing costs)
• Profit from sales
• Marketing costs
• Profit from marketing campaign
• Avg profit per responder (net of marketing costs)
• Avg profit per catalog (net of marketing costs)
• In practice, you might not know all of these before you start application development, but Excel is
flexible enough that you can generally add new KPIs during development.
(c) 2018 by Michael Mina 13
15. Step 4: Create your application in Excel using the above information
Why Excel + Solver instead of more advanced software?
• Many analysts have used Excel for years, and are very familiar with it
• They are accustomed to the intuitive user interface.
• A custom-developed user interface may require additional time and training for application users,
and it's not clear that the end result would be superior to Excel from a user perspective.
• Excel usually provides sufficient scalability
• Admittedly, the term "scalable" is not often associated with Excel. However . . .
• If your number of segments (m) and possible decisions per segment (n) result in a total number
of decisions that is not too large (m x n), then this can be managed by Excel. I try to keep m x n <
175. Larger than 175 might work – it depends in part on the total number of calculations
involved, which has some correlation to m x n.
• Segmentation helps manage scalability, which would normally be an issue for Excel.
• Having 1MM customers divided into 20 segments does not necessarily mean that 10MM
customers must be divided into 200 segments.
• Depending on the mean and variance of optimization-relevant KPIs within each segment, it’s
possible that you can still use the same 20 segments for those 10MM customers, or maybe
only require 10 more.
(c) 2018 by Michael Mina 15
16. Step 4: Create your application in Excel using the above information
(cont'd)
Why Excel + Solver instead of more advanced software? (cont'd)
• Shorter development/implementation time, and Lower total cost of ownership
• There are optimization products on the market (e.g., SAS Marketing Optimization, Experian
Marketswitch Optimization, IBM Decision Optimization Center). However, they can be cost-
prohibitive and labor-intensive to purchase, implement, and maintain, and may require additional
physical and data infrastructure.
• In addition, developing your own optimization application with more advanced software (e.g. SAS)
can require a high level of expertise and long development time depending on the complexity of
the business being modeled, and whether or not a graphical user interface is needed.
(c) 2018 by Michael Mina 16
vs.
vs.1 week 6+ months
17. Step 4: Create your application in Excel using the above information
(cont'd)
• Clearly indicate quantities that will be set by you, or as part of the optimization process (e.g., shade in
yellow), less frequently changed parameters you set (e.g., shade in blue), formulas or quantities that
shouldn't change (e.g., keep unshaded), and unfavorable results (e.g., red conditional formatting).
• The first 4 columns ("Segment" thru "Sales band") are the segmentation scheme
• "Maximum customer count" is based on the actual or modeled distribution of customers by segment
• "% to contact" will be set by the optimization process, but is defaulted to 100% to facilitate verification
of the downstream calculations
• "Contacted customer count" is based on the actual or modeled distribution of customers by segment,
equal to "Maximum customer count" x "% to contact"
• "Response rate" and "Avg Sales per Responder" can be based on past experience, models (whether
segment level, or account level then averaged by segment), etc.
• In general, if the KPI can be determined on an individual basis, we use the mean of all individuals
within the segment as the value for each segment.
• Ideally you’ll want to verify that the variance within each segment is acceptable.
(c) 2018 by Michael Mina 17
CPP = 1.25$
Segment Age band
Response
band
Sales band % to contact
Maximum
customer
count
Contacted
customer
count
Response
rate
Resp-
onders
Avg Sales
per
responder
Avg Sales
per
catalog
Sales
amount
Avg profit per
responder
from sales
(excl
marketing
costs)
Profit
from sales
Marketing
costs
Profit from
marketing
campaign
Avg profit per
responder
(net of
marketing
costs)
Avg profit
per catalog
(net of
marketing
costs)
1 65+ High Resp High sales 100% 7,725 7,725 4.20% 324 201.20$ 8.45$ 65,282$ 72.43$ 23,501$ (9,657)$ 13,845$ 42.67$ 1.79$
2 65+ High Resp Low sales 100% 18,026 18,026 3.50% 631 100.60$ 3.52$ 63,468$ 37.22$ 23,483$ (22,532)$ 951$ 1.51$ 0.05$
3 65+ Low Resp High sales 100% 43,875 43,875 1.40% 614 176.05$ 2.46$ 108,138$ 61.62$ 37,848$ (54,843)$ (16,995)$ (27.67)$ (0.39)$
4 65+ Low Resp Low sales 100% 102,374 102,374 0.70% 717 50.30$ 0.35$ 36,046$ 18.86$ 13,517$ (127,968)$ (114,451)$ (159.71)$ (1.12)$
5 45-64 High Resp High sales 100% 26,056 26,056 7.00% 1,824 251.50$ 17.61$ 458,707$ 65.39$ 119,264$ (32,569)$ 86,694$ 47.53$ 3.33$
6 45-64 High Resp Low sales 100% 78,167 78,167 5.95% 4,651 138.33$ 8.23$ 643,337$ 35.96$ 167,268$ (97,708)$ 69,559$ 14.96$ 0.89$
7 45-64 Low Resp High sales 100% 60,695 60,695 3.85% 2,337 213.78$ 8.23$ 499,536$ 55.58$ 129,879$ (75,868)$ 54,011$ 23.11$ 0.89$
8 45-64 Low Resp Low sales 100% 182,084 182,084 2.45% 4,461 88.03$ 2.16$ 392,684$ 23.33$ 104,061$ (227,604)$ (123,543)$ (27.69)$ (0.68)$
9 18-44 High Resp High sales 100% 11,008 11,008 5.60% 616 150.90$ 8.45$ 93,023$ 30.93$ 19,070$ (13,760)$ 5,310$ 8.61$ 0.48$
10 18-44 High Resp Low sales 100% 48,054 48,054 4.90% 2,355 50.30$ 2.46$ 118,438$ 11.07$ 26,056$ (60,067)$ (34,011)$ (14.44)$ (0.71)$
11 18-44 Low Resp High sales 100% 78,642 78,642 2.80% 2,202 125.75$ 3.52$ 276,898$ 26.41$ 58,149$ (98,302)$ (40,154)$ (18.24)$ (0.51)$
12 18-44 Low Resp Low sales 100% 343,296 343,296 1.40% 4,806 50.30$ 0.70$ 241,749$ 11.07$ 53,185$ (429,120)$ (375,935)$ (78.22)$ (1.10)$
Total 100% 1,000,000 1,000,000 2.55% 25,538 117.37$ 3.00$ 2,997,306$ 30.36$ 775,282$ (1,250,000)$ (474,718)$ (18.59)$ (0.47)$
18. Step 4: Create your application in Excel using the above information
(cont'd) – A closer look
(c) 2018 by Michael Mina 18
Segment Age band
Response
band
Sales band % to contact
Maximum
customer
count
Contacted
customer
count
Response
rate
Resp-
onders
Avg Sales
per
responder
1 65+ High Resp High sales 100% 7,725 7,725 4.20% 324 201.20$
2 65+ High Resp Low sales 100% 18,026 18,026 3.50% 631 100.60$
3 65+ Low Resp High sales 100% 43,875 43,875 1.40% 614 176.05$
4 65+ Low Resp Low sales 100% 102,374 102,374 0.70% 717 50.30$
5 45-64 High Resp High sales 100% 26,056 26,056 7.00% 1,824 251.50$
6 45-64 High Resp Low sales 100% 78,167 78,167 5.95% 4,651 138.33$
7 45-64 Low Resp High sales 100% 60,695 60,695 3.85% 2,337 213.78$
8 45-64 Low Resp Low sales 100% 182,084 182,084 2.45% 4,461 88.03$
9 18-44 High Resp High sales 100% 11,008 11,008 5.60% 616 150.90$
10 18-44 High Resp Low sales 100% 48,054 48,054 4.90% 2,355 50.30$
11 18-44 Low Resp High sales 100% 78,642 78,642 2.80% 2,202 125.75$
12 18-44 Low Resp Low sales 100% 343,296 343,296 1.40% 4,806 50.30$
Total 100% 1,000,000 1,000,000 2.55% 25,538 117.37$ CPP = 1.25$
Avg Sales
per
catalog
Sales
amount
Avg profit per
responder
from sales
(excl
marketing
costs)
Profit
from sales
Marketing
costs
Profit from
marketing
campaign
Avg profit per
responder
(net of
marketing
costs)
Avg profit
per catalog
(net of
marketing
costs)
8.45$ 65,282$ 72.43$ 23,501$ (9,657)$ 13,845$ 42.67$ 1.79$
3.52$ 63,468$ 37.22$ 23,483$ (22,532)$ 951$ 1.51$ 0.05$
2.46$ 108,138$ 61.62$ 37,848$ (54,843)$ (16,995)$ (27.67)$ (0.39)$
0.35$ 36,046$ 18.86$ 13,517$ (127,968)$ (114,451)$ (159.71)$ (1.12)$
17.61$ 458,707$ 65.39$ 119,264$ (32,569)$ 86,694$ 47.53$ 3.33$
8.23$ 643,337$ 35.96$ 167,268$ (97,708)$ 69,559$ 14.96$ 0.89$
8.23$ 499,536$ 55.58$ 129,879$ (75,868)$ 54,011$ 23.11$ 0.89$
2.16$ 392,684$ 23.33$ 104,061$ (227,604)$ (123,543)$ (27.69)$ (0.68)$
8.45$ 93,023$ 30.93$ 19,070$ (13,760)$ 5,310$ 8.61$ 0.48$
2.46$ 118,438$ 11.07$ 26,056$ (60,067)$ (34,011)$ (14.44)$ (0.71)$
3.52$ 276,898$ 26.41$ 58,149$ (98,302)$ (40,154)$ (18.24)$ (0.51)$
0.70$ 241,749$ 11.07$ 53,185$ (429,120)$ (375,935)$ (78.22)$ (1.10)$
3.00$ 2,997,306$ 30.36$ 775,282$ (1,250,000)$ (474,718)$ (18.59)$ (0.47)$
Left half
Right half
19. Step 4: Create your application in Excel using the above information
(cont'd)
• "Responders" = "Contacted customer count" x "Response rate"
• "Avg Sales per catalog" = "Response rate" x "Avg Sales per responder"
• "Sales amount" = "Responders" x "Avg Sales per responder" (it also equals "Contacted customer count" x
"Avg Sales per catalog")
• "Avg profit per responder from sales (excl marketing costs)" can be based on past experience, models
(whether segment level, or account level then averaged by segment), etc.
• "Profit from sales" = "Avg profit per responder from sales (excl marketing costs)" x "Responders"
• "Marketing costs" = – "CPP" x "Contacted customer count"
• "Profit from marketing campaign" = "Profit from sales" + "Marketing costs"
• "Avg profit per responder (net of marketing costs)" = "Profit from marketing campaign" / "Responders" (0 if
"Responders" = 0)
• "Avg profit per catalog (net of marketing costs)" = "Profit from marketing campaign" / "Contacted customer
count" (0 if "Contacted customer count"=0)
• Notice that if we contacted 100% of all eligible customers, we would expect to lose $475K.
(c) 2018 by Michael Mina 19
CPP = 1.25$
Segment Age band
Response
band
Sales band % to contact
Maximum
customer
count
Contacted
customer
count
Response
rate
Resp-
onders
Avg Sales
per
responder
Avg Sales
per
catalog
Sales
amount
Avg profit per
responder
from sales
(excl
marketing
costs)
Profit
from sales
Marketing
costs
Profit from
marketing
campaign
Avg profit per
responder
(net of
marketing
costs)
Avg profit
per catalog
(net of
marketing
costs)
1 65+ High Resp High sales 100% 7,725 7,725 4.20% 324 201.20$ 8.45$ 65,282$ 72.43$ 23,501$ (9,657)$ 13,845$ 42.67$ 1.79$
2 65+ High Resp Low sales 100% 18,026 18,026 3.50% 631 100.60$ 3.52$ 63,468$ 37.22$ 23,483$ (22,532)$ 951$ 1.51$ 0.05$
3 65+ Low Resp High sales 100% 43,875 43,875 1.40% 614 176.05$ 2.46$ 108,138$ 61.62$ 37,848$ (54,843)$ (16,995)$ (27.67)$ (0.39)$
4 65+ Low Resp Low sales 100% 102,374 102,374 0.70% 717 50.30$ 0.35$ 36,046$ 18.86$ 13,517$ (127,968)$ (114,451)$ (159.71)$ (1.12)$
5 45-64 High Resp High sales 100% 26,056 26,056 7.00% 1,824 251.50$ 17.61$ 458,707$ 65.39$ 119,264$ (32,569)$ 86,694$ 47.53$ 3.33$
6 45-64 High Resp Low sales 100% 78,167 78,167 5.95% 4,651 138.33$ 8.23$ 643,337$ 35.96$ 167,268$ (97,708)$ 69,559$ 14.96$ 0.89$
7 45-64 Low Resp High sales 100% 60,695 60,695 3.85% 2,337 213.78$ 8.23$ 499,536$ 55.58$ 129,879$ (75,868)$ 54,011$ 23.11$ 0.89$
8 45-64 Low Resp Low sales 100% 182,084 182,084 2.45% 4,461 88.03$ 2.16$ 392,684$ 23.33$ 104,061$ (227,604)$ (123,543)$ (27.69)$ (0.68)$
9 18-44 High Resp High sales 100% 11,008 11,008 5.60% 616 150.90$ 8.45$ 93,023$ 30.93$ 19,070$ (13,760)$ 5,310$ 8.61$ 0.48$
10 18-44 High Resp Low sales 100% 48,054 48,054 4.90% 2,355 50.30$ 2.46$ 118,438$ 11.07$ 26,056$ (60,067)$ (34,011)$ (14.44)$ (0.71)$
11 18-44 Low Resp High sales 100% 78,642 78,642 2.80% 2,202 125.75$ 3.52$ 276,898$ 26.41$ 58,149$ (98,302)$ (40,154)$ (18.24)$ (0.51)$
12 18-44 Low Resp Low sales 100% 343,296 343,296 1.40% 4,806 50.30$ 0.70$ 241,749$ 11.07$ 53,185$ (429,120)$ (375,935)$ (78.22)$ (1.10)$
Total 100% 1,000,000 1,000,000 2.55% 25,538 117.37$ 3.00$ 2,997,306$ 30.36$ 775,282$ (1,250,000)$ (474,718)$ (18.59)$ (0.47)$
20. Step 5: Create a separate optimization section
• Collecting the objectives and constraints to be used in the optimization into
a dedicated location ("the optimization section") makes usage of the
application much more convenient.
• The optimization section must be on the same sheet as the values to be set
by the optimization.
• i.e., the objective, constraints, and decisions need to be on the same
sheet.
• If you prefer the optimization section to be on a separate sheet, you
can do so, and have the above calculation section read in the decision
values (i.e., have the 12 values of "% to contact" be on the same sheet
as the optimization section, and have the above "% to contact" simply
refer to those values.
(c) 2018 by Michael Mina 20
The comparison criterion symbols
and desired values in the
optimization section do nothing at
this time. They will be used when
we configure Solver
(to be discussed below)
CPP = 1.25$
Segment Age band
Response
band
Sales band % to contact
Maximum
customer
count
Contacted
customer
count
Response
rate
Resp-
onders
Avg Sales
per
responder
Avg Sales
per
catalog
Sales
amount
Avg profit per
responder
from sales
(excl
marketing
costs)
Profit
from sales
Marketing
costs
Profit from
marketing
campaign
Avg profit per
responder
(net of
marketing
costs)
Avg profit
per catalog
(net of
marketing
costs)
1 65+ High Resp High sales 100% 7,725 7,725 4.20% 324 201.20$ 8.45$ 65,282$ 72.43$ 23,501$ (9,657)$ 13,845$ 42.67$ 1.79$
2 65+ High Resp Low sales 100% 18,026 18,026 3.50% 631 100.60$ 3.52$ 63,468$ 37.22$ 23,483$ (22,532)$ 951$ 1.51$ 0.05$
3 65+ Low Resp High sales 100% 43,875 43,875 1.40% 614 176.05$ 2.46$ 108,138$ 61.62$ 37,848$ (54,843)$ (16,995)$ (27.67)$ (0.39)$
4 65+ Low Resp Low sales 100% 102,374 102,374 0.70% 717 50.30$ 0.35$ 36,046$ 18.86$ 13,517$ (127,968)$ (114,451)$ (159.71)$ (1.12)$
5 45-64 High Resp High sales 100% 26,056 26,056 7.00% 1,824 251.50$ 17.61$ 458,707$ 65.39$ 119,264$ (32,569)$ 86,694$ 47.53$ 3.33$
6 45-64 High Resp Low sales 100% 78,167 78,167 5.95% 4,651 138.33$ 8.23$ 643,337$ 35.96$ 167,268$ (97,708)$ 69,559$ 14.96$ 0.89$
7 45-64 Low Resp High sales 100% 60,695 60,695 3.85% 2,337 213.78$ 8.23$ 499,536$ 55.58$ 129,879$ (75,868)$ 54,011$ 23.11$ 0.89$
8 45-64 Low Resp Low sales 100% 182,084 182,084 2.45% 4,461 88.03$ 2.16$ 392,684$ 23.33$ 104,061$ (227,604)$ (123,543)$ (27.69)$ (0.68)$
9 18-44 High Resp High sales 100% 11,008 11,008 5.60% 616 150.90$ 8.45$ 93,023$ 30.93$ 19,070$ (13,760)$ 5,310$ 8.61$ 0.48$
10 18-44 High Resp Low sales 100% 48,054 48,054 4.90% 2,355 50.30$ 2.46$ 118,438$ 11.07$ 26,056$ (60,067)$ (34,011)$ (14.44)$ (0.71)$
11 18-44 Low Resp High sales 100% 78,642 78,642 2.80% 2,202 125.75$ 3.52$ 276,898$ 26.41$ 58,149$ (98,302)$ (40,154)$ (18.24)$ (0.51)$
12 18-44 Low Resp Low sales 100% 343,296 343,296 1.40% 4,806 50.30$ 0.70$ 241,749$ 11.07$ 53,185$ (429,120)$ (375,935)$ (78.22)$ (1.10)$
Total 100% 1,000,000 1,000,000 2.55% 25,538 117.37$ 3.00$ 2,997,306$ 30.36$ 775,282$ (1,250,000)$ (474,718)$ (18.59)$ (0.47)$
Objective: Maximize campaign profit (474,718)$
Subject to these constraints
Constraint name
Actual
value
Comparison
criterion
Desired
value
Marketing costs 1,250,000$ <= 1,000,000$
Segment 1 % 100% <= 100%
Segment 2 % 100% <= 100%
Segment 3 % 100% <= 100%
Segment 4 % 100% <= 100%
Segment 5 % 100% <= 100%
Segment 6 % 100% <= 100%
Segment 7 % 100% <= 100%
Segment 8 % 100% <= 100%
Segment 9 % 100% <= 100%
Segment 10 % 100% <= 100%
Segment 11 % 100% <= 100%
Segment 12 % 100% <= 100%
Sales amount 2,997,306$ >= 2,500,000$
Profit from campaign (474,718)$ >= -$
Optimization section
21. CPP = 1.25$
Segment Age band
Response
band
Sales band % to contact
Maximum
customer
count
Contacted
customer
count
Response
rate
Resp-
onders
Avg Sales
per
responder
Avg Sales
per
catalog
Sales
amount
Avg profit per
responder
from sales
(excl
marketing
costs)
Profit
from sales
Marketing
costs
Profit from
marketing
campaign
Avg profit per
responder
(net of
marketing
costs)
Avg profit
per catalog
(net of
marketing
costs)
1 65+ High Resp High sales 100% 7,725 7,725 4.20% 324 201.20$ 8.45$ 65,282$ 72.43$ 23,501$ (9,657)$ 13,845$ 42.67$ 1.79$
2 65+ High Resp Low sales 100% 18,026 18,026 3.50% 631 100.60$ 3.52$ 63,468$ 37.22$ 23,483$ (22,532)$ 951$ 1.51$ 0.05$
3 65+ Low Resp High sales 100% 43,875 43,875 1.40% 614 176.05$ 2.46$ 108,138$ 61.62$ 37,848$ (54,843)$ (16,995)$ (27.67)$ (0.39)$
4 65+ Low Resp Low sales 100% 102,374 102,374 0.70% 717 50.30$ 0.35$ 36,046$ 18.86$ 13,517$ (127,968)$ (114,451)$ (159.71)$ (1.12)$
5 45-64 High Resp High sales 100% 26,056 26,056 7.00% 1,824 251.50$ 17.61$ 458,707$ 65.39$ 119,264$ (32,569)$ 86,694$ 47.53$ 3.33$
6 45-64 High Resp Low sales 100% 78,167 78,167 5.95% 4,651 138.33$ 8.23$ 643,337$ 35.96$ 167,268$ (97,708)$ 69,559$ 14.96$ 0.89$
7 45-64 Low Resp High sales 100% 60,695 60,695 3.85% 2,337 213.78$ 8.23$ 499,536$ 55.58$ 129,879$ (75,868)$ 54,011$ 23.11$ 0.89$
8 45-64 Low Resp Low sales 100% 182,084 182,084 2.45% 4,461 88.03$ 2.16$ 392,684$ 23.33$ 104,061$ (227,604)$ (123,543)$ (27.69)$ (0.68)$
9 18-44 High Resp High sales 100% 11,008 11,008 5.60% 616 150.90$ 8.45$ 93,023$ 30.93$ 19,070$ (13,760)$ 5,310$ 8.61$ 0.48$
10 18-44 High Resp Low sales 100% 48,054 48,054 4.90% 2,355 50.30$ 2.46$ 118,438$ 11.07$ 26,056$ (60,067)$ (34,011)$ (14.44)$ (0.71)$
11 18-44 Low Resp High sales 100% 78,642 78,642 2.80% 2,202 125.75$ 3.52$ 276,898$ 26.41$ 58,149$ (98,302)$ (40,154)$ (18.24)$ (0.51)$
12 18-44 Low Resp Low sales 100% 343,296 343,296 1.40% 4,806 50.30$ 0.70$ 241,749$ 11.07$ 53,185$ (429,120)$ (375,935)$ (78.22)$ (1.10)$
Total 100% 1,000,000 1,000,000 2.55% 25,538 117.37$ 3.00$ 2,997,306$ 30.36$ 775,282$ (1,250,000)$ (474,718)$ (18.59)$ (0.47)$
Objective: Maximize campaign profit (474,718)$
Subject to these constraints
Constraint name
Actual
value
Comparison
criterion
Desired
value
Marketing costs 1,250,000$ <= 1,000,000$
Segment 1 % 100% <= 100%
Segment 2 % 100% <= 100%
Segment 3 % 100% <= 100%
Segment 4 % 100% <= 100%
Segment 5 % 100% <= 100%
Segment 6 % 100% <= 100%
Segment 7 % 100% <= 100%
Segment 8 % 100% <= 100%
Segment 9 % 100% <= 100%
Segment 10 % 100% <= 100%
Segment 11 % 100% <= 100%
Segment 12 % 100% <= 100%
Sales amount 2,997,306$ >= 2,500,000$
Profit from campaign (474,718)$ >= -$
Optimization section
Step 5: Create a separate optimization section (cont'd)
• The optimization section should be viewed as dynamic
rather than static. Frequent changes to this section are
likely as the application is used more often and its
versatility becomes more widely known.
• In this example, our initial set up is an objective that
maximizes campaign profit, and constraints on the
decisions, marketing costs, sales amount, and overall
campaign profit
• The objectives and constraints in your optimization section
should reference the calculations and defaulted decisions
from the section above.
(c) 2018 by Michael Mina 21
The comparison criterion symbols
and desired values in the
optimization section do nothing at
this time. They will be used when
we configure Solver
(to be discussed below)
22. Step 6: Load the Solver add-in
These instructions apply to Excel 2016 for Windows 10.
1. From the Excel menu select File > Options.
2. Click "Add-ins", and set "Manage" to "Excel Add-ins", then
click "Go".
3. Check the box next to "Solver Add-in", then click "OK". If for
some reason it doesn't appear in the list, click on "Browse"
to find it.
4. Upon completion, the Solver command should appear in the
Analysis group in the Data tab. You can launch it when
needed by clicking Solver.
(c) 2018 by Michael Mina 22
2
2
3
4
24. Step 7: Determine your objectives and constraints, and the constraint
values
• In Step 5: Create a separate optimization section, we
created an initial optimization layout where we made
some assumptions as to what we might want as our
objective, and constraints.
• In this step, we confirm the work we previously did,
and decide what specific values we want as
constraints.
• If the objective and/or the constraints are not in this
section, they need to be added at this time.
• For our first optimization scenario (optimization
scenario 1), we are asked to maximize campaign profit
subject to the constraints that
• Marketing costs <= $750K
• Sales amount >= $2MM
• Profit from campaign >= 0
• We need constraints on the percentage in each
segment to ensure that the optimization doesn't result
in telling us to mail 214% of segment 5, for example.
• The "Profit from campaign >= 0" constraint might seem
unnecessary in that we are maximizing profit, and we
can observe the maximum profit obtainable and
determine if it is greater than zero or not. By making it
a constraint, we ensure that failing to meet that
constraint will cause the optimization to fail (i.e., this is
a form of error messaging).
(c) 2018 by Michael Mina 24
Optimization section
Objective: Maximize campaign profit (474,718)$
Subject to these constraints
Constraint name
Actual
value
Comparison
criterion
Desired
value
Marketing costs 1,250,000$ <= 750,000$
Segment 1 % 100% <= 100%
Segment 2 % 100% <= 100%
Segment 3 % 100% <= 100%
Segment 4 % 100% <= 100%
Segment 5 % 100% <= 100%
Segment 6 % 100% <= 100%
Segment 7 % 100% <= 100%
Segment 8 % 100% <= 100%
Segment 9 % 100% <= 100%
Segment 10 % 100% <= 100%
Segment 11 % 100% <= 100%
Segment 12 % 100% <= 100%
Sales amount 2,997,306$ >= 2,000,000$
Profit from campaign (474,718)$ >= -$
25. Step 8: Determine the type of optimization you should use
• Excel Solver supports 3 types of optimization solving methods:
• GRG Nonlinear (GRG = Generalized Reduced Gradient)
• Simplex LP (LP = Linear programming)
• Evolutionary
• Our problem is linear, so we'll use Simplex LP.
• If you're not sure if you can use Simplex LP, try it. If you can't
use it, you'll get an error message when you run Solver (see
right).
• See Appendix for "Optimization types supported by Excel
Solver"
(c) 2018 by Michael Mina 25
26. CPP = 1.25$
Segment Age band
Response
band
Sales band % to contact
Maximum
customer
count
Contacted
customer
count
Response
rate
Responders
Avg Sales
per
responder
Avg Sales per
catalog
Sales amount
Avg profit per
responder from
sales (excl
marketing costs)
Profit from
sales
Marketing costs
Profit from
marketing
campaign
Avg profit per
responder
(net of
marketing
costs)
Avg profit per
catalog
(net of
marketing
costs)
1 65+ High Resp High sales 100% 7,725 7,725 4.20% 324 201.20$ 8.45$ 65,282$ 72.43$ 23,501$ (9,657)$ 13,845$ 42.67$ 1.79$
2 65+ High Resp Low sales 100% 18,026 18,026 3.50% 631 100.60$ 3.52$ 63,468$ 37.22$ 23,483$ (22,532)$ 951$ 1.51$ 0.05$
3 65+ Low Resp High sales 100% 43,875 43,875 1.40% 614 176.05$ 2.46$ 108,138$ 61.62$ 37,848$ (54,843)$ (16,995)$ (27.67)$ (0.39)$
4 65+ Low Resp Low sales 100% 102,374 102,374 0.70% 717 50.30$ 0.35$ 36,046$ 18.86$ 13,517$ (127,968)$ (114,451)$ (159.71)$ (1.12)$
5 45-64 High Resp High sales 100% 26,056 26,056 7.00% 1,824 251.50$ 17.61$ 458,707$ 65.39$ 119,264$ (32,569)$ 86,694$ 47.53$ 3.33$
6 45-64 High Resp Low sales 100% 78,167 78,167 5.95% 4,651 138.33$ 8.23$ 643,337$ 35.96$ 167,268$ (97,708)$ 69,559$ 14.96$ 0.89$
7 45-64 Low Resp High sales 100% 60,695 60,695 3.85% 2,337 213.78$ 8.23$ 499,536$ 55.58$ 129,879$ (75,868)$ 54,011$ 23.11$ 0.89$
8 45-64 Low Resp Low sales 100% 182,084 182,084 2.45% 4,461 88.03$ 2.16$ 392,684$ 23.33$ 104,061$ (227,604)$ (123,543)$ (27.69)$ (0.68)$
9 18-44 High Resp High sales 100% 11,008 11,008 5.60% 616 150.90$ 8.45$ 93,023$ 30.93$ 19,070$ (13,760)$ 5,310$ 8.61$ 0.48$
10 18-44 High Resp Low sales 100% 48,054 48,054 4.90% 2,355 50.30$ 2.46$ 118,438$ 11.07$ 26,056$ (60,067)$ (34,011)$ (14.44)$ (0.71)$
11 18-44 Low Resp High sales 100% 78,642 78,642 2.80% 2,202 125.75$ 3.52$ 276,898$ 26.41$ 58,149$ (98,302)$ (40,154)$ (18.24)$ (0.51)$
12 18-44 Low Resp Low sales 100% 343,296 343,296 1.40% 4,806 50.30$ 0.70$ 241,749$ 11.07$ 53,185$ (429,120)$ (375,935)$ (78.22)$ (1.10)$
Total 100% 1,000,000 1,000,000 2.55% 25,538 117.37$ 3.00$ 2,997,306$ 30.36$ 775,282$ (1,250,000)$ (474,718)$ (18.59)$ (0.47)$
Optimization section
Objective: Maximize campaign profit (474,718)$
Subject to these constraints
Constraint name
Actual
value
Comparison
criterion
Desired
value
Marketing costs 1,250,000$ <= 1,000,000$
Segment 1 % 100% <= 100%
Segment 2 % 100% <= 100%
Segment 3 % 100% <= 100%
Segment 4 % 100% <= 100%
Segment 5 % 100% <= 100%
Segment 6 % 100% <= 100%
Segment 7 % 100% <= 100%
Segment 8 % 100% <= 100%
Segment 9 % 100% <= 100%
Segment 10 % 100% <= 100%
Segment 11 % 100% <= 100%
Segment 12 % 100% <= 100%
Sales amount 2,997,306$ >= 2,500,000$
Profit from campaign (474,718)$ >= -$
Step 9: Configure Solver
(c) 2018 by Michael Mina 26
1. Launch Solver. Make Set Objective
point to the objective in your
optimization section, and set to Max.
2. For "By changing Variable Cells",
select the "% to contact" values.
3. Click on "Add" to add constraints. This
is done most conveniently if all the
"less than" constraints are adjacent to
each other, all the "greater than"
constraints adjacent to each other,
etc. We need to do this twice - once
for each range of constraints (<=, >=).
4. Check "Make Unconstrained Variables
Non-Negative".
5. Select "Simplex LP" as your solving
method.
6. To run the optimization, click "Solve".
1
1
3
3
4
5
6
2
2
27. Step 10: Run the optimization
Optimization scenario 1 Optimization scenario 2
Maximize campaign profit while keeping sales at or over
$2MM, marketing costs at or under $750K, and profit at or
over $0.
We have a larger marketing budget than in scenario 1, but
sales expectations are higher. Maximize campaign profit
while keeping sales at or over $2.5MM, marketing costs at
or under $1MM, and profit at or over $0.
Result
Mail all customers in segments 1-2 and 5-7, and 64% of
customers in segment 11, and no one else. Expectations are
that sales will be $2MM, marketing costs will be $315K, and
expected profit will be $205K.
Result
Mail all customers in segments 1-3, 5-7, 9-11, and 44% of
customers in segment 8, and no one else. Expectations are
that sales will be $2.5MM, marketing costs will be $566K,
and expected profit will be $85K. As compared to scenario 1,
we bought more business (i.e., we accepted lower profits in
favor of sales growth).
(c) 2018 by Michael Mina 27
Objective: Maximize campaign profit 204,755$
Subject to these constraints
Constraint name
Actual
value
Comparison
criterion
Desired
value
Marketing costs 314,806$ <= 750,000$
Segment 1 % 100% <= 100%
Segment 2 % 100% <= 100%
Segment 3 % 0% <= 100%
Segment 4 % 0% <= 100%
Segment 5 % 100% <= 100%
Segment 6 % 100% <= 100%
Segment 7 % 100% <= 100%
Segment 8 % 0% <= 100%
Segment 9 % 100% <= 100%
Segment 10 % 0% <= 100%
Segment 11 % 64% <= 100%
Segment 12 % 0% <= 100%
Sales amount 2,000,000$ >= 2,000,000$
Profit from campaign 204,755$ >= -$
Optimization section
Objective: Maximize campaign profit 84,729$
Subject to these constraints
Constraint name
Actual
value
Comparison
criterion
Desired
value
Marketing costs 565,680$ <= 1,000,000$
Segment 1 % 100% <= 100%
Segment 2 % 100% <= 100%
Segment 3 % 100% <= 100%
Segment 4 % 0% <= 100%
Segment 5 % 100% <= 100%
Segment 6 % 100% <= 100%
Segment 7 % 100% <= 100%
Segment 8 % 44% <= 100%
Segment 9 % 100% <= 100%
Segment 10 % 100% <= 100%
Segment 11 % 100% <= 100%
Segment 12 % 0% <= 100%
Sales amount 2,500,000$ >= 2,500,000$
Profit from campaign 84,729$ >= -$
Optimization section
28. Dealing with challenges you may face
Obtaining stakeholder buy-in
• Some stakeholders may believe that Excel is unsuited to this task.
• In those cases, building a simple proof of concept model can be useful in winning them over.
Maintaining proper versioning
• Versioning can be a challenge with Excel applications.
• Managing version numbers and ensuring that improvements are not made to the wrong version
requires extra attention.
• Possible solutions include:
• Using Save As, and saving the file name with a version related suffix (e.g., opt_app_v2.4.xlsx)
• Using special software to manage file versioning
Thank you
(c) 2018 by Michael Mina 28
29. Acknowledgements
The author thanks all those who helped organize the 2018 Advanced Research Techniques
(ART) Forum, including the planning committee of Greg Allenby, Jeff Dotson, and Elea Feit for
accepting his presentation, with special thanks to Elea Feit for her assistance in editing this
presentation.
Author information
Michael Mina is a Vice President in the Retail Lending Decision Management department at
PNC Financial Services. In addition to banking, he has experience in consulting, insurance,
healthcare management, benefit services, and academia. He was a presenter at the 2009
Midwest SAS Users Group (MWSUG) Conference and the 2018 Ohio SAS Users Conference.
He is also a writer of science fiction, fantasy and horror whose work has won awards, and has
been published in a number of magazines.
Questions and comments can be sent to:
Michael Mina
Email: michael.mina@att.net
Website: http://michaelmina.info
LinkedIn: https://www.linkedin.com/in/michaelmina/
(c) 2018 by Michael Mina 29
31. Optimization types supported by Excel Solver
• Excel Solver supports 3 types of optimization solving methods:
• GRG Nonlinear (GRG = Generalized Reduced Gradient)
• Simplex LP (LP = Linear programming)
• Evolutionary
• How do you choose? From https://www.solver.com/excel-
solver-what-solver-can-and-cannot-do :
• "If your objective and constraints are linear functions of
the decision variables, you can be confident of finding a
globally optimal solution reasonably quickly…. The Simplex
LP Solving method is designed for these problems."
• "If your objective and constraints are smooth nonlinear
functions of the decision variables…. The GRG Nonlinear
Solving method is designed for these problems."
• "If your objective and constraints are non-smooth and non-
convex functions of the decision variables (for example if
you use IF, CHOOSE and LOOKUP functions whose
arguments depend on decision variables), the best you can
hope for is a “good” solution (better than the initial values
of the variables)…. The Evolutionary Solving method is
designed for these problems."
• For additional details, also see "Excel Solver: Which Solving
Method Should I Choose?" at
http://www.engineerexcel.com/excel-solver-solving-method-
choose/
(c) 2018 by Michael Mina 31