Edition 1·Updated 2026-10-03·14 min read
Sources
About this book
An overview of the book, with source information for further reading.
Operations Research for Social Good A Practitioners Introduction Using SAS® and Python
Summerville, NataliaPratt, RobA practical guide that teaches data scientists and operations research practitioners how to model and solve real-world social good problems using mathematical optimization with SAS and Python.
This book introduces the powerful world of Operations Research (OR) and mathematical optimization by applying it to real-life humanitarian and social challenges. Moving beyond theory, it provides a hands-on, practitioner's approach to formulating and solving complex decision-making problems. Through a series of compelling use cases—from optimizing food baskets for the UN World Food Programme to scheduling students during a pandemic and improving breast milk donation logistics—you'll learn the art of modeling. Each case is demonstrated with complete code in both SAS OPTMODEL and Python with Pyomo, making it an invaluable resource for data scientists, graduate students, and analytics professionals looking to apply their skills to make a tangible, positive impact on the world.
Movement I
Orient
What this book claims, and who wrote it.
- — The book's one-line promise
- — The author and where the book stands
A practical guide that teaches data scientists and operations research practitioners how to model and solve real-world social good problems using mathematical optimization with SAS and Python.
The need-to-know
Operations Research, particularly mathematical optimization, is a prescriptive analytics tool that provides actionable insights to improve organizational efficiency, especially for resource-constrained, mission-driven organizations. The process of solving an optimization problem involves identifying decision variables, constraints, and objectives; formulating them mathematically; translating the math into a programming language (like SAS or Python); and using a solver to find the optimal solution. Different problem structures require different types of optimization models, including Linear Programming (LP), Mixed Integer Linear Programming (MILP), Nonlinear Programming (NLP), and Network Optimization, each with its own characteristics and solution algorithms.
About this guide
The guide describes these challenges, steps and possible outcomes.
Who it is for
The reader is a data scientist, analytics professional, operations research practitioner, or graduate-level student. They have technical and analytical skills but want to move beyond descriptive and predictive analytics into the realm of prescriptive analytics. They are motivated not just by technical challenges but also by a desire to apply their skills to 'Data4Good' initiatives and make a positive impact on society.
Challenges
- In practice · The reader needs to learn how to formulate and solve complex, real-world decision-making problems using mathematical optimization, but theoretical textbooks are too abstract and don't provide practical application or code.
- For the reader · The reader feels their analytical skills could be used for more meaningful work but feels intimidated by the perceived complexity of Operations Research. They are uncertain about how to translate a vague social problem into a precise mathematical model.
Steps to consider
- 1Understand the Landscape: Grasp the fundamentals of mathematical optimization and its place within advanced analytics.
- 2Learn by Doing: Follow along with real-world use cases, progressing from Linear Programming to more complex models like Mixed Integer, Nonlinear, and Multicriteria Optimization.
- 3Master the Tools: For each use case, study the provided code in both SAS OPTMODEL and Python/Pyomo to learn how to translate a mathematical formulation into a working model.
Risks
The reader remains stuck in the world of descriptive and predictive analytics, unable to provide actionable, optimal recommendations. Mission-driven organizations continue to make suboptimal decisions based on intuition or simple heuristics, wasting precious resources that could be used to help more people.
Intended result
The reader becomes a confident OR practitioner, capable of taking a complex social problem, formulating it as a mathematical model, and solving it using industry-standard tools. They can build prescriptive analytics engines that help non-profits and mission-driven organizations make better, more efficient decisions with their limited resources.
Set the record straight
What this book sets straight
The common beliefs this book pushes back on.
Mathematical optimization is a highly theoretical and academic discipline, primarily used for maximizing profits in large corporations.
Mathematical optimization is a practical and powerful tool that can be applied to improve efficiency and decision-making in mission-driven, non-profit, and humanitarian organizations, helping them make the most of limited resources to achieve social good.
Learning to model optimization problems requires PhD-level skills and is inaccessible to most data scientists.
With a focus on problem formulation and practical coding syntax, data scientists and analytics practitioners can effectively learn to model and solve complex optimization problems without deep knowledge of the underlying algorithms, as demonstrated by the step-by-step examples in this book.
Movement II
Map
The book's main ideas and how they connect.
Operations Research for Social Good A Practitioners Introduction Using SAS® and Python's own model — and how it sits inside its field.
- — 7 constructs the book works with
- — Where it agrees with the field, exceeds it, or fills a gap
The constructs
How they connect (7)
- Problem Formulation Clarity → influences → Solution Quality
- Appropriate Model Type Selection → influences → Solution Quality
- Tool Implementation Quality → influences → Solution Quality
- Solution Quality → influences → Decision-Making Quality
- Decision-Making Quality → influences → Resource Efficiency
- Decision-Making Quality → influences → Social Impact
- Resource Efficiency → influences → Social Impact
Where this book diverges from the corpus
- exceeds The book explicitly distinguishes LP, MILP, NLP and network models by variable type and linearity, whereas the field only treats applying quantitative methods generally.
- fills gap Translating a formulation into working code in SAS OPTMODEL or Pyomo has no counterpart in the field model, which stops at analytics infrastructure and data systems.
- fills gap Solver feasibility, optimality and run time are not covered by the field's model; the Data Quality & Governance pre-match is about input data, not solver output.
- fills gap Outcomes for a target population, such as health, access, safety and hunger, are absent from the field's commercial outcomes of profit, cost and competitive advantage.
Movement III
Master
Explore the book's ideas, examples and practical tools.
How the author makes the case — section by section, with the book's own tools.
- — 7 sections, in the book's order
- — The book's frameworks, checklists, and worked cases
strong · 1 source
- Operations Research for Social Good A Practitioners Introduction Using SAS® and Python
This section shows how optimized decisions translate into less waste of money, staff time, and materials, and how to measure that gain credibly. It links implementation of the plan to operational savings.
Resource Efficiency
The improvement in the organization's ability to achieve its goals with minimal waste of financial, human, or material resources, as a result of implementing optimized decisions.
Why it matters. Demonstrated efficiency gains justify continued investment in analytics and free scarce resources for more of the mission.
Myth
Efficiency gains show up automatically once an optimized plan exists, and can be read straight from the model's objective value.
Reality
The model's projected savings are an estimate under its assumptions; realized efficiency appears only in operational data after the plan is followed. Measure it against a baseline from actual practice, not from the model.
- Resource EfficiencyFramework — How this mechanism is run, step by step, as the literature describes it.
- Resource Efficiency Optimization BriefTemplate
- Measure efficiency against a pre-adoption baseline from real operations, not against the model's own projection.
- Pick a few metrics that tie directly to the decisions being optimized.
- Freed resources only count when they are redeployed toward the mission.
The deep drill-down: 8 operational steps, a worked example from the source, 5 decision rules, 5 failure modes, and the “Resource Efficiency Optimization Brief” tool. Included when you buy this guide.
The rest of this section
the full written section · 3 how-to steps · 2 pitfalls to watch for · 2 tools for this section. Included when you buy this guide.
Grounded in: Operations Research for Social Good A Practitioners Introduction Using SAS® and Python
strong · 1 source
- Operations Research for Social Good A Practitioners Introduction Using SAS® and Python
This section connects optimized decisions and efficiency gains to outcomes for the people the organization serves. It explains how to define, measure, and attribute those outcomes.
Social Impact
The ultimate positive change achieved for the organization's target population or cause, such as improved health outcomes, wider access to services, greater safety, or reduced hunger.
Why it matters. Operations research for social good justifies itself only if beneficiaries end up healthier, safer, better fed, or better served, not merely if costs fall.
Myth
Lower costs and higher efficiency automatically mean greater social impact.
Reality
Efficiency can concentrate service where it is cheapest to deliver and leave out the hardest-to-reach people. Impact depends on what the objective values and who benefits, so equity and access must be built into the model and measured afterward.
- Social ImpactFramework — How this mechanism is run, step by step, as the literature describes it.
- Social Impact — decision rulesChecklist — 5 checkpoints
- Social Impact Definition-to-Model SheetTemplate
- Efficiency is not impact: encode access and equity in the model and check the distribution of benefits.
- Measure outcomes for the target population, not just outputs delivered.
- Be modest about attribution, since social outcomes have many contributing causes.
The deep drill-down: 8 operational steps, a worked example from the source, 5 decision rules, 5 failure modes, and the “Social Impact Definition-to-Model Sheet” tool. Included when you buy this guide.
The rest of this section
the full written section · 3 how-to steps · 2 pitfalls to watch for · 3 tools for this section. Included when you buy this guide.
Grounded in: Operations Research for Social Good A Practitioners Introduction Using SAS® and Python
strong · 1 source
- Operations Research for Social Good A Practitioners Introduction Using SAS® and Python
This section shows how to turn a messy nonprofit or public-sector problem into decision variables, constraints, and an objective a solver can act on. It is the step where most downstream errors are born.
Problem Formulation Clarity
The degree to which a real-world problem is successfully translated into a formal optimization structure, with clearly identified decision variables, constraints, and objective functions.
Why it matters. A model that answers the wrong question will solve cleanly and still send food trucks, clinic staff, or shelter beds to the wrong places.
Myth
Formulation is a quick preliminary step; once you have the data, the real work begins in the solver.
Reality
Formulation is where the real decisions get made, because the objective and constraints encode whose needs count and what trade-offs are acceptable. Solver time and code effort cannot repair a mis-specified objective.
- Problem Formulation ClarityFramework — How this mechanism is run, step by step, as the literature describes it.
- Tool Implementation QualityFramework — How this mechanism is run, step by step, as the literature describes it.
- Problem Formulation Clarity — decision rulesChecklist — 5 checkpoints
- Solution Quality — decision rulesChecklist — 5 checkpoints
- Tool Implementation Quality — decision rulesChecklist — 5 checkpoints
- Problem Formulation ClarityCase study — The WFP food basket problem, simplified from the Franz Edelman Award-winning work of Peters et al.
- Resource EfficiencyCase study — In March 2020, COVID-19 forced hospitals to reassign most resources to ERs and ICUs and to pause elective surgeries.
- Problem Formulation WorksheetTemplate
- Formulation-to-Code Implementation ChecklistTemplate
- Write the decision, variables, constraints, and objective in plain language and get stakeholder sign-off before you open a modeling tool.
- The objective function is an ethical and organizational statement, not just a technical one; surface it for review.
- A hand-solved toy instance exposes formulation errors faster than a full-scale solver run.
The deep drill-down: 8 operational steps, a worked example from the source, 5 decision rules, 5 failure modes, and the “Problem Formulation Worksheet” tool. Included when you buy this guide.
The rest of this section
the full written section · 4 how-to steps · 2 pitfalls to watch for · 9 tools for this section. Included when you buy this guide.
Grounded in: Operations Research for Social Good A Practitioners Introduction Using SAS® and Python
strong · 1 source
- Operations Research for Social Good A Practitioners Introduction Using SAS® and Python
This section helps you match the structure of your problem, such as integrality, linearity, and network form, to the right model class. It covers when LP suffices and when you need MILP, NLP, or network formulations.
Appropriate Model Type Selection
The choice of the correct optimization model type (e.g., LP, MILP, NLP, Network) that accurately represents the mathematical characteristics of the problem, such as variable types and linearity of relationships.
Why it matters. The wrong model class either misrepresents reality or turns a problem solvable in seconds into one that never finishes.
Myth
Mixed-integer models are always the safest choice because they can represent anything, so you should default to them.
Reality
Every integer variable you add can cost orders of magnitude in solve time, and many allocation problems are fine as LPs or network flows with integral solutions guaranteed. Choose the simplest class that captures the structure that matters.
- Appropriate Model Type SelectionFramework — How this mechanism is run, step by step, as the literature describes it.
- Appropriate Model Type Selection — decision rulesChecklist — 5 checkpoints
- Appropriate Model Type SelectionCase study — The source's pricing example: decide a price for each product, maximize revenue, keep margin nonnegative, with demand = 100 − 0.2·Price.
- Model Type Selection WorksheetTemplate
- Start with the simplest model class that preserves the structure that matters and escalate only when the LP relaxation proves inadequate.
- Integer variables belong on genuinely indivisible choices like facility openings, not on large continuous quantities.
- Recognizing network structure can give you integer solutions at LP speed.
The deep drill-down: 8 operational steps, a worked example from the source, 5 decision rules, 5 failure modes, and the “Model Type Selection Worksheet” tool. Included when you buy this guide.
The rest of this section
the full written section · 4 how-to steps · 2 pitfalls to watch for · 4 tools for this section. Included when you buy this guide.
Grounded in: Operations Research for Social Good A Practitioners Introduction Using SAS® and Python
strong · 1 source
- Operations Research for Social Good A Practitioners Introduction Using SAS® and Python
This section covers how to translate a correct formulation into working SAS OPTMODEL or Python/Pyomo code that is accurate, verifiable, and efficient. It focuses on the gap between the math on paper and what the solver receives.
Tool Implementation Quality
The accuracy and efficiency of translating the mathematical formulation into a specific programming language and modeling package, such as SAS OPTMODEL or Python/Pyomo.
Why it matters. A coding slip, such as a wrong index or a dropped constraint, produces a plausible-looking answer to a problem you never intended to pose.
Myth
If the code runs and the solver reports optimal, the implementation is correct.
Reality
A solver certifies optimality only for the model you coded, not the one you meant; a missing constraint or mis-indexed parameter still yields a clean optimal status. Correctness must be verified separately against the math and known cases.
- Tool Implementation QualityCase study — Take the police patrol scheduling use case.
- An optimal status proves nothing about whether you coded the right model, so test against hand-solved instances.
- Keep data, model, and solve logic separate so the same code runs across scenarios and tools.
- Inspect the generated model, not just the output, to catch dropped or mis-indexed constraints.
The deep drill-down: 8 operational steps, a worked example from the source, 5 decision rules, 5 failure modes, and the “Formulation-to-Code Implementation Checklist” tool. Included when you buy this guide.
The rest of this section
the full written section · 4 how-to steps · 2 pitfalls to watch for · 1 tool for this section. Included when you buy this guide.
Grounded in: Operations Research for Social Good A Practitioners Introduction Using SAS® and Python
strong · 1 source
- Operations Research for Social Good A Practitioners Introduction Using SAS® and Python
This section explains how to judge whether a solver's output is feasible, how close to optimal it is, and whether it arrives in time to be useful. It also shows how formulation, model type, and implementation each feed into that result.
Solution Quality
The degree to which a computational solver can find a feasible, and ideally optimal or near-optimal, solution to the formulated problem within an acceptable timeframe.
Why it matters. A solution that is infeasible in the field or arrives after the decision deadline is worth nothing, however elegant the model.
Myth
Only a provably optimal solution is worth presenting to decision-makers.
Reality
A solution within a small, known optimality gap delivered before the deadline usually beats a proven optimum delivered late, and the gap itself tells you how much you could still gain. What matters is feasibility, a quantified gap, and timeliness.
- Solution QualityFramework — How this mechanism is run, step by step, as the literature describes it.
- Decision-Making Quality — decision rulesChecklist — 5 checkpoints
- Resource Efficiency — decision rulesChecklist — 5 checkpoints
- Solution QualityCase study — The book's prostate brachytherapy seed-placement use case (Chapter 6) is an NLP, so quality has to be read in NLP terms.
- Solver Quality Check SheetTemplate
- Judge a solution on feasibility, a reported optimality gap, and delivery time, not on optimality alone.
- Validate outputs against real-world rules the model may have omitted.
- Weak solution quality is usually an upstream problem, so diagnose formulation and model choice first.
The deep drill-down: 8 operational steps, a worked example from the source, 5 decision rules, 5 failure modes, and the “Solver Quality Check Sheet” tool. Included when you buy this guide.
The rest of this section
the full written section · 4 how-to steps · 2 pitfalls to watch for · 5 tools for this section. Included when you buy this guide.
Grounded in: Operations Research for Social Good A Practitioners Introduction Using SAS® and Python
strong · 1 source
- Operations Research for Social Good A Practitioners Introduction Using SAS® and Python
This section addresses the step from a good solution to an actual changed decision inside the organization. It covers how to get model outputs adopted over habit and rule-of-thumb.
Decision-Making Quality
The extent to which an organization adopts the model's outputs to guide its actions and strategic choices, moving from heuristic-based to evidence-based decision-making.
Why it matters. An optimal plan that staff never use produces no benefit, so adoption is the bridge between technical work and any real-world gain.
Myth
If the model's solution is clearly better, the organization will adopt it.
Reality
Adoption depends on trust, interpretability, and fit with workflows; planners override outputs they cannot explain or that ignore constraints they know about. Better numbers alone rarely overcome established heuristics.
- Decision-Making QualityFramework — How this mechanism is run, step by step, as the literature describes it.
- Decision-Making QualityCase study — In March 2020, hospitals had to reassign resources to keep ERs and ICUs ready for COVID-19 and put elective surgeries on hold.
- Decision Adoption BriefTemplate
- Adoption, not optimality, is what converts a model into better decisions, so design for it from the start.
- Back-test the model against current practice to make the improvement concrete for skeptical staff.
- Treat overrides as data: they reveal missing constraints or unmet trust.
The deep drill-down: 8 operational steps, a worked example from the source, 5 decision rules, 5 failure modes, and the “Decision Adoption Brief” tool. Included when you buy this guide.
The rest of this section
the full written section · 4 how-to steps · 2 pitfalls to watch for · 3 tools for this section. Included when you buy this guide.
Grounded in: Operations Research for Social Good A Practitioners Introduction Using SAS® and Python
Movement III · The run-it-now depth
The Playbook
Practical tools and examples from this guide.
Frameworks
Decision-Making Quality
How this mechanism is run, step by step, as the literature describes it.
- 1Write the decision in plain language before any math. Use the passage's template: 'I need to decide how to price my products (decision variables). I want to achieve highest revenue (objective function). Margin cannot be negative (constraint).' If the decision owner cannot confirm these three sentences, the model's output will not be adopted.
- 2Name the controllable actions as decision variables and list who controls each one. In the Cleveland Clinic case these were which subservices to reopen and on what dates. A variable nobody in the organization controls cannot produce an adoptable recommendation.
- 3Capture every rule and limit as a constraint with the person who owns it. Examples: resource capacity cannot be exceeded, ICU utilization stays under an upper limit, accepted patients never exceed maximum forecasted demand, daily rapid tests cap total patients. Decision-makers trust outputs that visibly respect their real limits.
- 4Separate inputs that need a predictive model from inputs that are fixed. The demand equation 100 − 0.2*Price needs a model of price versus demand, and the capacity constraints used forecasted demand. Validate those upstream models first, because the optimization inherits their errors.
- 5Define the objective as KPIs the organization already tracks. Use one objective (maximize revenue) or several (the Cleveland Clinic model used two, both revenue-based, to reboot cash flow). With more than one objective, treat the problem as multicriteria and agree on the trade-off with leadership.
- 6Formulate algebraically, code it in SAS OPTMODEL or Python Pyomo, and call a solver. Check that the output obeys every written constraint before showing it to anyone.
- 7Accept a good feasible solution when a provable optimum is out of reach. The passage notes that a feasible but not globally optimal solution can still provide significant business value over the status quo. Compare the model's recommendation against the current heuristic and present the gap.
- 8Build the adoption process alongside the model. The passage names 'established processes to incorporate new decision-making support systems that focus on user adoption and end value' as a precondition. Name who acts on the output, when, and what happens if they override it.
Appropriate Model Type Selection
How this mechanism is run, step by step, as the literature describes it.
◆ The full 8-step framework — included with this guide purchase
Problem Formulation Clarity
How this mechanism is run, step by step, as the literature describes it.
◆ The full 8-step framework — included with this guide purchase
Resource Efficiency
How this mechanism is run, step by step, as the literature describes it.
◆ The full 8-step framework — included with this guide purchase
Solution Quality
How this mechanism is run, step by step, as the literature describes it.
◆ The full 8-step framework — included with this guide purchase
Tool Implementation Quality
How this mechanism is run, step by step, as the literature describes it.
◆ The full 8-step framework — included with this guide purchase
Checklists
Decision-Making Quality — decision rules
- If the decision owner cannot restate the decision variables, constraints, and objective in plain language, then stop and fix the problem statement before formulating or coding anything.
- If the model needs a relationship such as price to demand, then build and validate the predictive model first; do not hard-code an assumed equation into a recommendation you want adopted.
- If the solver cannot prove global optimality in reasonable time, then present the best feasible solution alongside the current practice and quantify the improvement over the status quo.
- If stakeholders hold competing goals, then formulate as multicriteria with explicit objectives rather than blending them into one hidden weighted number.
- If the organization has no process or owner for acting on recommendations, then treat the work as descriptive or predictive and do not claim a prescriptive result until the adoption path exists.
Appropriate Model Type Selection — decision rules
◆ All 5 checkpoints — included with this guide purchase
Problem Formulation Clarity — decision rules
◆ All 5 checkpoints — included with this guide purchase
Resource Efficiency — decision rules
◆ All 5 checkpoints — included with this guide purchase
Solution Quality — decision rules
◆ All 5 checkpoints — included with this guide purchase
Tool Implementation Quality — decision rules
◆ All 5 checkpoints — included with this guide purchase
Case studies — including what didn't work
Decision-Making Quality
In March 2020, hospitals had to reassign resources to keep ERs and ICUs ready for COVID-19 and put elective surgeries on hold. SAS and Cleveland Clinic built a Multicriteria MILP to decide when to reopen those optional services. The decision variables were which subservices to reopen and the reopening dates. The constraints were resource capacity at each facility, an upper limit on ICU utilization, patients accepted never exceeding maximum forecasted demand, a daily cap tied to available rapid tests, and a rule that an opened subservice stays open for the rest of the horizon. The two objectives were maximizing total revenue and a second revenue-related goal, both aimed at rebooting cash flow to support emergency care. The decision moves from a heuristic ('reopen what feels safe') to an evidence-based one because the schedule is produced by a solver that respects capacity, tests, and forecasted demand. The source does not report the results, so the adoption test is whether administrators schedule reopenings from the model's output instead of from judgment alone.
Appropriate Model Type Selection
The source's pricing example: decide a price for each product, maximize revenue, keep margin nonnegative, with demand = 100 − 0.2·Price. Variables are continuous (prices, Price ≥ 0). The objective is sum over p of Demand_p × Price_p. Substituting demand gives (100 − 0.2·Price_p)·Price_p, a price-times-price term, so the objective is nonlinear and the problem is NLP, not LP. The margin constraint, sum of (Price_p − Cost_p) ≥ 0, is linear, so the nonlinearity comes only from the demand-revenue interaction. A second source case: the Cleveland Clinic reopening model chooses which subservices to reopen and when, so its variables are binary/integer. Its constraints are linear (capacity, ICU utilization limits, and rapid-test limits). It also includes a logical condition that an open subservice stays open. It has two objectives, maximize revenue and maximize margin. Binary variables with linear constraints give MILP, and two objectives make it Multicriteria MILP, which is how the source classifies it.
◆ What happened, and the outcome — included with this guide purchase
Problem Formulation Clarity
The WFP food basket problem, simplified from the Franz Edelman Award-winning work of Peters et al. Problem definition: find the optimum food commodities to include in the package so that required nutrition levels are met at minimum cost. Goal: minimize total basket cost. Controls: the amount of each food commodity (for example, Eggs Raw) in the basket. Rules: the basket must reach the minimum required level of each nutrient. Inputs, all classed as data: nutrient levels per commodity, cost per commodity, and the minimum required level per nutrient. The formulation follows directly. The objective sums cost times quantity over commodities. Each nutrient has one constraint summing nutrient content times quantity and requiring at least the minimum level. Every term maps back to a sentence in the problem definition, so a reviewer can check the model against the real problem line by line. The passages do not give the numeric values, so none are asserted here.
◆ What happened, and the outcome — included with this guide purchase
Resource Efficiency
In March 2020, COVID-19 forced hospitals to reassign most resources to ERs and ICUs and to pause elective surgeries. SAS and Cleveland Clinic built a Multicriteria MILP to decide which subservices to reopen and on what dates. The decision variables were the subservices selected and the reopening dates. The constraints were that resource capacity at each facility could not be exceeded, ICU utilization stayed under a set limit, patients accepted never exceeded maximum forecasted demand, and daily emergency surgeries plus accepted patients across all facilities stayed within the number of daily rapid tests. A logical condition kept a subservice open once it opened. The two objectives were to maximize total revenue and total margin, both functions of patients accepted over the planning horizon. The aim was to reboot cash flow, which in turn supports emergency care. Scarce manpower, equipment, and tests were allocated to the sequence of reopenings that earned the most, rather than reopening by instinct. The passages give no result figures, so the resource-efficiency gain here is the structure of the decision, not a quoted number.
◆ What happened, and the outcome — included with this guide purchase
Solution Quality
The book's prostate brachytherapy seed-placement use case (Chapter 6) is an NLP, so quality has to be read in NLP terms. SAS solves it with interior point by default, and either NLP algorithm returns a locally optimal solution: feasible, and better than any nearby solution. That is not a global guarantee. For a problem with many local optima you would add the multistart option to raise the chance of landing on the global one. If you did not know whether active-set or interior point would be faster, the concurrent option runs both on separate threads and returns the first optimal result. You can then replicate the model in Python with Pyomo and IPOPT, a widely used NLP solver, and check that the objective values agree. The book's practice-problem solution for a nonlinear revenue problem is a useful benchmark: optimum revenue, accounting for disposal costs, is $518.86. Your solver output should reproduce that figure.
◆ What happened, and the outcome — included with this guide purchase
Tool Implementation Quality
Take the police patrol scheduling use case. The data dictionary defines INPUTDEMAND (Time: beginning hour of the window; Demand: required officers patrolling) and INPUTSETTINGS (SettingName, SettingValue, SettingDesc, e.g., CAPACITY = 40). The snapshot reads roughly Time 0 → 19, Time 1 → 7, Time 2 → 6 (parsed from flattened text). Implementation starts by mapping components: the decision variable is the number of officers starting a shift at each time of day, the constraint is that total scheduled officers cannot exceed the capacity setting, and the objective is to minimize shortage. Because 'shortage' has two meanings, you code two objectives: total shortage (sum of unmet need over all windows) and maximum shortage (largest unmet need in any window). Capacity and the tolerance parameter are read from the settings table, not typed into the model. The problem is linear, so SAS chooses its LP algorithm from the structure, and Python could use GLPK for the same formulation, adding integrality if you need whole officers. You then check that the solution never schedules more than 40 officers and that the reported shortage equals the sum or maximum of the unmet demand you calculate by hand.
◆ What happened, and the outcome — included with this guide purchase
Templates
Decision Adoption Brief
Model Type Selection Worksheet
◆ The fillable template — included with this guide purchase
Problem Formulation Worksheet
◆ The fillable template — included with this guide purchase
Resource Efficiency Optimization Brief
◆ The fillable template — included with this guide purchase
Solver Quality Check Sheet
◆ The fillable template — included with this guide purchase
Formulation-to-Code Implementation Checklist
◆ The fillable template — included with this guide purchase
Items marked Paid are included when you buy this guide.
Movement IV
Reflect
Consider the book's evidence, limitations and how it compares with other sources.
How good is it — where the book stands against the field, what it leaves open, and when to trust it.
- — Its positioning, its critique, its blind spots
- — When to apply it — and when not
- — The evidence behind the advice
Book profile · in the corpus
This book’s model, against the corpus
4 of 7 constructs align with the field · 3 the book adds · 1 where it diverges · the field spans 54 constructs across 72 books
Shared with the corpus — corroborated by other sources
This book's own emphasis — where it's the authority
Where it diverges — the book and the field pull apart
The corpus adds — from 71 other sources this book doesn't cover
The full field guide folds in ideas this book doesn’t reach — drawn from 71 further sources and cited in the full model.
This book’s place in the corpus
Why the corpus guide, not just this book
The book builds on classical OR/MS optimization and is the authority on matching model types to problems, implementing them in SAS or Pyomo, and applying them for nonprofit and social-impact ends. The reconciled field-guide still adds the surrounding context the book largely omits: data quality, validation, organizational change, incentives, and operations outcomes such as inventory, service and cost.
This guide stands on the shoulders of this book and 71 other sources — every claim cited, the disagreements named.
Read it closely
The book, examined
Not a summary — a close analytical reading: how the book is built, what it leaves open, and where it falls short.
How it’s built — the argument in order
- 01About this Book (front matter) — States the purpose, which is to showcase OR for social good while teaching modeling in both SAS OPTMODEL and Python/Pyomo. It defines the audience (data scientists, OR practitioners, graduate students), sets the prerequisite (algebraic summation syntax), and says the book skips OR theory and algorithms to focus on formulation.
- 02Introductory chapters (inferred from the table of contents and takeaways: OR/prescriptive analytics, modeling process, tools) — Presents OR as prescriptive analytics for resource-constrained, mission-driven organizations. It lays out the recipe of identifying decision variables, constraints and objective, formulating the math, coding it, and calling a solver. The excerpts do not show these chapters directly, so this is partly inferred.
- 03Chapter 4: Linear Programming — Introduces the continuous model class with a humanitarian use case. The takeaways point to optimizing food baskets for the UN World Food Programme. Practice problems and solutions are listed in 9.1.
- 04Chapter 5: Mixed Integer Linear Programming — Adds integer decisions through a school-scheduling case, a simplified version of the Durham Public Schools pandemic project. Each use case follows a fixed template: problem definition (decisions, objective, constraints), data and settings inputs, then formulation and code. The goal is to maximize face-to-face instruction subject to CDC capacity limits, equal hours across grades, and no mixing of grades.
- 05Chapter 6: Nonlinear Optimization — Handles problems where relationships are not linear, solved with tools such as IPOPT (cited in the bibliography). The bibliography suggests safe dike heights and radiation exposure as related applications, but this is not confirmed in the excerpts.
- 06Chapter 7: Network Optimization — Covers flow and routing structures. The bibliography cites the TSP, Bertsekas on network optimization, and the breast milk bank logistics case (Alb20).
- 07Chapter 8: Multicriteria Optimization — Addresses competing objectives with sequential (lexicographic) methods. Its practice problems ask for project-to-week schedules.
- 08Chapter 9 and Bibliography: Practice Problem Solutions — Gives selected answers for Chapters 4-8, which reinforces the learn-by-doing design. The references anchor the cases in published projects and software documentation (Pyomo, GLPK, IPOPT, pandas).
What it leaves unsolved
How do practitioners choose or build the underlying solution algorithms, and when do solver behavior and scaling become the binding issue?
The book explicitly excludes OR theory and algorithms. Readers learn to formulate but not to diagnose why a model is slow, infeasible, or poorly scaled.
How faithfully do the simplified textbook models reproduce the original deployed projects?
The school scheduling problem is described as a simplified version of the original. The gap between the pedagogical model and the real constraints, data, and politics is only pointed to through references.
How should the weights or priority ordering among competing social-good objectives be set, and who decides?
Multicriteria methods such as the lexicographic approach require ranking objectives. The ranking is an ethical and political choice, and optimization cannot make it. The excerpts show no treatment of stakeholder input.
How do equity, safety, and human or emotional factors enter a model, given the acknowledged emotional and political implications of school reopening?
The text names these pressures (health risks, parents' child-care struggles) but formulates only capacity, hours, and grade-mixing constraints.
How should a model be validated and its real-world social impact measured after implementation?
The book asserts each use case was 'implemented and proven successful' but the excerpts give no evaluation method or metrics.
Where it falls short — a fair critique
By design the book omits theory and algorithms. That is a fair scoping choice, but practitioners get no guidance on solver selection, tuning, relaxations, or infeasibility diagnosis, so the 'solve' half of the formulate-and-solve workflow is thin.
The success claim ('implemented and proven successful') is not backed by evidence in the excerpts. There are no reported outcomes, comparisons to baseline decisions, or measures of impact, even though social impact is the book's central framing.
The cases are simplified (e.g., one elementary school, a few constraints). Readers may underestimate the data-cleaning, stakeholder, and uncertainty challenges of real deployments. Robust or stochastic optimization appears absent despite the volatile contexts, such as pandemic conditions.
The pandemic scheduling objective maximizes total face-to-face time while requiring equal hours across grades. Treating all instructional time as equally valuable ignores that the text itself says younger students benefit more from in-person instruction, so the objective is only loosely aligned with the stated rationale.
Dual-language presentation (SAS and Python) helps flexibility but may duplicate material and favor a commercial ecosystem. Open-source solver limits (GLPK, IPOPT) versus SAS's commercial solvers are not discussed in the excerpts, and performance on larger instances is not compared.
Prerequisites are stated minimally (algebraic summation syntax). Without background in LP or MILP basics, readers may struggle to judge model validity or interpret solver output such as duality and optimality gaps.
Before you apply it
Using it well
Where the method fits, who it’s for, and the honest case for and against — so you apply it where it works.
Is this book for you?
For you if
- You are a data scientist or analytics practitioner who wants to move from predictive to prescriptive analytics
- You are a graduate student or instructor needing applied OR cases with code in SAS and Python
- You want to use your skills on humanitarian or nonprofit problems
- You learn best from worked, real-life use cases rather than abstract theory
Skip it if
- You want a rigorous treatment of optimization theory or solver algorithms
- You are a complete beginner to programming and have no interest in coding models
- You need advanced stochastic, robust or large-scale decomposition techniques
- You only want a high-level business overview with no formulation work
Need first
- Comfort with linear algebra notation, especially summation (sigma) syntax
- Basic programming ability in SAS or Python (pandas familiarity helps)
- Access to SAS OPTMODEL (SAS OnDemand for Academics works) or a Python/Pyomo setup with a solver such as GLPK or IPOPT
- Willingness to define data and settings inputs for each problem
When it applies — and when it doesn’t
- Allocating scarce resources (e.g., food baskets, classroom capacity) under hard constraints with a clear quantifiable objective — this is the book's core use case: decision variables, constraints and an objective map directly onto LP/MILP formulations
- Scheduling or timetabling with discrete yes/no or whole-number decisions, such as students in classrooms or projects by week — the school-reopening and project-scheduling cases show MILP handling integer decisions and capacity limits
- Logistics and routing for mission-driven organizations, such as milk-bank donation collection or flow and network problems — the network optimization chapter and the breast milk donation case target these structures
- Teaching a university course that must support either SAS or Python — every example is given in both SAS OPTMODEL and Pyomo, so instructors can pick either
- Trading off competing goals like safety versus cost, or equity versus efficiency — the book teaches sequential (lexicographic) multicriteria methods, which impose a strict priority order that may not reflect real stakeholder preferences
- Treating the book's simplified case formulations as production-ready models — the school-scheduling problem is explicitly a simplified version of the original project, so real deployment needs more detail
- Large-scale or hard combinatorial problems where solver performance becomes the bottleneck — the book skips algorithms and theory, so you get little guidance on tuning, scaling or why a solver is slow
- Problems with no reliable data on inputs, such as populations, capacities and costs — every case relies on well-defined data and settings inputs; optimal answers are only as good as those inputs
- Decisions dominated by uncertainty, such as demand or disease spread, that need stochastic or simulation methods — the covered model types (LP, MILP, NLP, network, multicriteria) are mostly deterministic, and uncertainty handling is not a listed focus
- Learning the underlying optimization theory or algorithm design (simplex, branch-and-bound, interior point) — the book states it does not cover OR theory or algorithms and focuses on modeling and formulation
- Problems where the decision is mainly political or ethical rather than computational — optimization can encode stated constraints but cannot settle value conflicts or stakeholder disagreement on its own
The honest case
Strongest case for
- Mission-driven organizations have scarce budgets and staff, so mathematically optimal allocation can stretch limited resources further than intuition or spreadsheets
- The book's cases are real projects (UN WFP, Durham Public Schools, a milk bank) described as implemented and proven successful, showing optimization works outside corporate settings
- A structured pipeline of variables, constraints, objective, formulation, code and solver makes complex problems tractable and repeatable
- Matching problem structure to model type (LP, MILP, NLP, network) lets practitioners pick appropriate, efficient solution methods
- Dual SAS and Python implementations lower the barrier to adoption and make the skills transferable across tools
- Multicriteria methods let real-world conflicting goals, like safety and cost, be handled explicitly rather than ignored
Strongest objection
- Optimal solutions are only as good as the model and data; simplified formulations may miss human, political and contextual realities, as the school-scheduling case admits
- Focusing on modeling while skipping theory and algorithms leaves practitioners unable to diagnose infeasibility, poor performance or wrong results
- Choosing objectives and weights or priority orders embeds value judgments, and lexicographic ordering can hide ethical tradeoffs behind a veneer of objectivity
- Success stories may reflect selection bias, and the book offers little evidence on adoption barriers, maintenance or measured social impact
- Deterministic models can give brittle plans when demand, supply or conditions change, as in a pandemic
- Many social-good organizations lack the data, staff and software to use these tools, so the approach may not transfer outside well-resourced partnerships
The model's constructs are drawn from the source element(s); load-bearing constructs are corroborated across the shelf, emerging ones are flagged.
Ideas covered by the source notes
- Problem Formulation Clarity
- Appropriate Model Type Selection
- Tool Implementation Quality
- Solution Quality
- Decision-Making Quality
- Resource Efficiency
Movement V
Measure
Use available assessments to reflect on what you have learned.
A way to gauge yourself against the book's model, and the instruments it gives you.
- — A self-check built from the book
- — Instruments and what you'd measure next
Learning curriculum
After this book, you can…
The book's learning objectives, classified by Bloom's taxonomy and ordered so each builds on the ones before it.
- explainAfter this book you can explain what operations research and mathematical optimization are, why they count as prescriptive analytics, and how they help resource-constrained, mission-driven organizations make better decisions.Check: Short written response that contrasts descriptive, predictive and prescriptive analytics, supported by one social-good example from the book.
- formulateAfter this book you can write a complete mathematical formulation, using algebraic summation notation, of an optimization problem from a narrative description.Check: Practice problems in which the learner writes sets, parameters, variables, objective and constraints in algebraic notation. The result is graded for correctness and completeness.
- implementAfter this book you can implement optimization models in both SAS OPTMODEL and Python with Pyomo, translating the math into code that reads data, declares sets, variables, constraints and objectives, and calls a solver.Check: Coding assignment in which the learner implements the same formulation in SAS OPTMODEL and in Pyomo. Both programs must run and return the same optimal solution.
- buildAfter this book you can build and solve linear programming models, such as diet or food basket optimization, with continuous decision variables.Check: Chapter 4 practice problems: the learner formulates an LP, solves it, and interprets the optimal values.
- formulateAfter this book you can formulate and solve nonlinear optimization problems, such as the dike height problem, and explain how they differ from linear models in solver requirements and the guarantees on solutions.Check: Chapter 6 practice problems with nonlinear objectives or constraints, plus a short explanation of local versus global optima.
- modelAfter this book you can model discrete decisions with integer and binary variables in MILP formulations, such as classroom allocation and scheduling, and handle logical and capacity constraints.Check: Chapter 5 practice problems that require integer or binary variables and linking constraints. A solution is correct if it is feasible and reaches the expected objective value.
- applyAfter this book you can address problems with competing objectives by applying multicriteria techniques, especially the sequential (lexicographic) approach, and interpret the resulting trade-offs.Check: Chapter 8 practice problems, such as project scheduling with priorities. The learner solves the objectives in sequence, adds constraints that preserve earlier optima, and justifies the order of priorities.
- representAfter this book you can represent routing, assignment or distribution problems as network optimization models, with nodes, arcs, flows and capacities, and solve them.Check: Chapter 7 practice problems: the learner draws or defines a network, writes flow-balance constraints, and solves the model.
- identifyAfter this book you can identify the decision variables, constraints, objective function, data inputs and settings inputs in a narrative description of a real-world social good problem.Check: Given a short problem narrative, such as the school scheduling or food basket case, the learner lists the components in a structured problem definition and the instructor checks them against a rubric.
- distinguishAfter this book you can distinguish LP, MILP, NLP, network and multicriteria problems by their mathematical characteristics, and select the appropriate model type for a given problem.Check: Classification exercise on several problem descriptions, in which the learner chooses a model type and justifies the choice. The cases include continuous versus integer variables, linear versus nonlinear relationships, and flow structures.
- evaluateAfter this book you can evaluate solver output for feasibility, optimality and solution quality, and judge when a good feasible solution is enough to beat the status quo even if global optimality is not proven.Check: Given solver logs and solution status messages, such as optimal, feasible, or an optimality gap, the learner decides whether the solution is usable and justifies the decision.
- assessAfter this book you can assess how an optimization model's results support evidence-based decisions and improve resource efficiency and social impact for a humanitarian or public-service organization, compared with heuristic practice.Check: Case analysis of a use case such as the World Food Programme, school scheduling or the milk bank. The learner links model outputs to measures of efficiency and impact and critiques the model's limitations.
- designAfter this book you can design an end-to-end optimization solution for a new social good problem, covering problem definition, model type selection, formulation, code in SAS or Python, solving and interpreting the results.Check: Capstone project on a new social good scenario. The deliverables are a problem definition, a mathematical model, working code and a recommendation, graded with a rubric.
How to measure it
Turning each idea into a measure
For each construct: how to operationalize it, the observable signals to look for, and how well it holds up.
An expert rating (e.g., on a 1-5 scale) of the alignment between the documented business problem and the mathematical formulation, assessing the completeness of constraints, appropriateness of decision variables, and relevance of the objective function.
- A written document detailing decision variables, constraints, and objectives in natural language before mathematical formulation.
- Mathematical notation is precise and correctly represents the problem logic.
- The model scope is appropriate for the decision being made.
Ordinal scale based on expert review.
Content validity would depend on the expertise of the rater. · Inter-rater reliability should be established if multiple experts are used.
A binary or categorical classification by an expert as to whether the selected model type (e.g., 'MILP') is appropriate for the mathematical structure of the formulated problem (e.g., linear constraints with integer variables).
- Use of integer variables for discrete choices.
- Use of nonlinear functions for non-constant rate-of-change relationships.
- Recognition of network structures within a problem.
Categorical (e.g., Appropriate, Inappropriate).
Face validity is high for experienced OR practitioners. · High agreement is expected among experts.
The number of defects (bugs) found during code review and the computational time taken for the implemented model to solve a benchmark problem instance, compared to a reference implementation.
- Code produces solutions that match expected or validated outcomes.
- Model solve time is within acceptable limits for the application.
- The code is well-structured and maps clearly to the mathematical formulation.
Count of defects (ratio) and solve time (ratio).
Requires a standardized testing procedure and benchmark. · Should be highly reliable if automated testing is used.
A composite measure based on solver log outputs, including: (1) solution status (e.g., optimal, feasible, infeasible), (2) the final objective function value, (3) the final optimality gap (for MILP), and (4) the total solver time.
- Solver log reports 'Optimal' or 'Feasible' status.
- Low or zero percent optimality gap.
- Objective function value represents a significant improvement over a baseline.
- Wall-clock time for the solve process.
Categorical and ratio scales.
These are direct, objective measures from the solver. · Highly reliable, assuming consistent hardware and solver versions.
The percentage of relevant operational or strategic decisions made in a given period that explicitly used the optimization model's output as a primary input, as determined from archival records or decision-maker surveys.
- Meeting minutes or reports referencing the model's recommendations.
- Changes in standard operating procedures to incorporate the model.
- Self-reported use of the tool by managers and planners.
Ratio or ordinal scale (e.g., Likert scale for perceived influence).
Can be subject to social desirability bias in self-reports. Archival analysis is stronger. · Reliability of survey measures should be assessed (e.g., test-retest).
The pre-post implementation change in key performance indicators related to resource use, such as the total cost of a food basket, the total distance traveled by delivery vehicles, or the number of officer-hours scheduled versus required.
- Financial statements showing reduced costs in a specific area.
- Operational logs showing shorter delivery times or distances.
- Scheduling records showing a better match between supply and demand of personnel.
Ratio scale (e.g., percentage cost savings).
Requires careful attribution to the optimization model, controlling for other confounding factors. · High, as it's based on objective operational data.
The pre-post implementation change in metrics central to the organization's mission. For example, the percentage of a target population whose nutritional requirements are met (WFP use case), or the reduction in maximum radiation dose to healthy tissue (brachytherapy use case).
- Public health statistics.
- Surveys of beneficiary populations.
- Measures of service accessibility across different demographic groups.
- Reduction in unmet demand for a public service.
Varies by domain; typically ratio or ordinal scales.
Attribution is a significant challenge; requires robust impact evaluation design. · Depends on the quality of the field-specific data collection methods.
Self-assessment
Where would you like to improve?
This is a structured self-diagnostic built from the model — a mirror for reflection, not a validated psychometric scale. For validated measurement, see the instruments below.
1 = Strongly Disagree · 7 = Strongly Agree
Proposed measures — starter instruments where no validated one was found
Problem Formulation Clarity Index (PFCI)
proposed · not validatedRated for your team or hiring process — not a personal self-check.
- Every optimization project has a written formulation document that lists the decision variables, objective function, and constraints, each with its definition, units, and business meaning.
- Each constraint and objective term in the formal model can be traced to a specific stakeholder requirement or real-world rule recorded in a traceability log.
- Stakeholders and modelers review and sign off on the stated assumptions, parameters, and scope boundaries before any model is built or solved.
Scale: 1–7 (Strongly Disagree → Strongly Agree), rated by an evaluator or the team. Average the items; treat ≤3 as a gap to close in the process.
Model Type Selection Appropriateness Index (MTSAI)
proposed · not validatedRated for your team or hiring process — not a personal self-check.
- The project documentation states the mathematical characteristics of the problem (linearity, convexity, integrality, stochasticity, network structure) and uses them to justify the chosen model class.
- Alternative model types (for example LP relaxation, MILP, NLP, or network flow formulations) are documented as considered, with reasons recorded for accepting or rejecting each.
- The selected model type is matched to a solver known to support it, and a test run confirms that the solver handles the model class at the required problem size and solve time.
Scale: 1–7 (Strongly Disagree → Strongly Agree), rated by an evaluator or the team. Average the items; treat ≤3 as a gap to close in the process.
Tool Implementation Quality Index (TIQI)
proposed · not validatedRated for your team or hiring process — not a personal self-check.
- Every implemented model is validated against the written formulation through automated tests on small instances with known optimal solutions, and the tests pass.
- Model code is version-controlled, peer-reviewed, and modular, with data input separated from model logic and with variables and constraints named consistently with the formulation document.
- Solve-time, memory use, and solution-quality benchmarks are recorded for representative instances, and solver settings and model reformulations are tuned and documented to meet performance targets.
Scale: 1–7 (Strongly Disagree → Strongly Agree), rated by an evaluator or the team. Average the items; treat ≤3 as a gap to close in the process.
Sources
- Operations Research for Social Good A Practitioners Introduction Using SAS® and Python — Summerville, NataliaPratt, Rob · A practical guide that teaches data scientists and operations research practitioners how to model and solve real-world social good problems using mathematical optimization with SAS and Python.
The cheat sheet
Everything, on one page
One key takeaway from each section, with links to read more.
- Problem Formulation ClarityWrite the decision, variables, constraints, and objective in plain language and get stakeholder sign-off before you open a modeling tool.
- Appropriate Model Type SelectionStart with the simplest model class that preserves the structure that matters and escalate only when the LP relaxation proves inadequate.
- Tool Implementation QualityAn optimal status proves nothing about whether you coded the right model, so test against hand-solved instances.
- Solution QualityJudge a solution on feasibility, a reported optimality gap, and delivery time, not on optimality alone.
- Decision-Making QualityAdoption, not optimality, is what converts a model into better decisions, so design for it from the start.
- Resource EfficiencyMeasure efficiency against a pre-adoption baseline from real operations, not against the model's own projection.
- Social ImpactEfficiency is not impact: encode access and equity in the model and check the distribution of benefits.
Publication details
Consult the sources listed in this guide for further reading. Edition 1 · Updated 2026-10-03.
Explore related books and profiles in the library.