Skip to main content

BOPIS Optimisation

Buy Online · Pick-up In Store

When an online customer is close to a store with inventory, should the retailer offer BOPIS (customer drives to pick up, saves shipping) or ship normally? Decision trades shipping saved against store labour and customer travel cost. The retailer controls offer and capacity; the customer controls the accept/decline. Canonical game-theoretic treatment is Gao & Su (2017) in Management Science; the operational assignment variant inherits structure from omnichannel fulfilment.

Why it matters

Store as a free last-mile node — when the customer supplies the transport

~60%
Share of U.S. online shoppers who have used BOPIS or curbside pickup at least once; in 2020+ BOPIS penetration doubled year-over-year.
Source: NRF / Digital Commerce 360 annual surveys.
~$5–$12
Typical per-order shipping saving when BOPIS replaces small-parcel delivery — the dominant economic upside for the retailer.
Source: Gallino & Moreno (2014).
+17–25%
Documented store-visit-conversion lift when BOPIS customers buy additional unplanned items during pickup — the “halo” effect.
Source: Bell, Gallino & Moreno (2018).
~5 min
Customer willingness-to-drive threshold beyond which BOPIS adoption falls off — sets the natural “BOPIS trade area” per store.
Source: Shopper panel studies; Gao & Su (2017).

Where the decision sits

Order-time decision at the retailer; accept/decline decision at the customer

BOPIS is a sub-problem of omnichannel fulfilment: for online orders only, decide whether to offer BOPIS at the nearest store (the retailer's decision) and the customer then decides whether to accept or default to home delivery. The retailer's economics: save shipping fee, pay store pick-and-stage labour, consume store inventory (which may be needed for walk-ins). The customer's economics: save shipping charge, pay travel time. A retailer that over-offers BOPIS loses store-labour capacity; one that under-offers leaves shipping cost on the table.

Order arriveszone, SKU, value
BOPIS offer?retailer decision
Accept?customer decision
Fulfilstore stage / ship

Problem & formulation

Offer + acceptance + assignment — a three-layer model

OR family
Game + Assignment
Decision model
Two-stage (retailer, customer)
Demand model
Travel-cost threshold
Reference
Gao & Su (2017)

Parameters

SymbolMeaningUnit
\(s\)Shipping cost saved if order picked up in store$ / order
\(\ell\)Store pick-and-stage labour cost per BOPIS order$ / order
\(L_m\)Store \(m\)’s per-cycle BOPIS labour capacityorders
\(I_m\)Store \(m\)’s inventory for the SKUunits
\(d_{ij}\)Drive distance / time from order \(i\)’s zone to store \(j\)min
\(\tau_i\)Customer \(i\)’s willingness-to-drive thresholdmin
\(h\)Expected halo revenue per in-store pickup visit (unplanned add-ons)$ / visit
\(\beta\)Customer-travel aversion parameter$ / min

Decision variable

SymbolMeaningDomain
\(x_{ij}\)1 if BOPIS is offered for order \(i\) at store \(j\)binary
\(y_i\)1 if order \(i\) ends up picked up (customer accepts)derived

Customer acceptance rule

A customer accepts BOPIS at store \(j\) iff travel cost is below the shipping saving plus personal convenience:

$$\text{Accept} \iff \beta \cdot d_{ij} \;\leq\; s \qquad \Leftrightarrow \qquad d_{ij} \;\leq\; \tau_i \;\equiv\; s/\beta$$

The threshold \(\tau_i\) defines the customer's BOPIS trade area. Variation across customers (some value time more, some less) means a distribution of thresholds.

Retailer objective

Maximise expected contribution from BOPIS decisions, net of customer acceptance:

$$\max_{x} \; \sum_{i} \sum_{j} \Bigl(\, s \;-\; \ell \;+\; h \,\Bigr) \,\mathbb{1}\{d_{ij} \leq \tau_i\} \, x_{ij}$$

Each accepted BOPIS order nets \(s - \ell + h\) (shipping saved + halo revenue minus labour cost). The indicator captures that the offer is only valuable when the customer will accept.

Constraints

$$\sum_{j} x_{ij} \leq 1 \qquad \forall i \qquad \text{(at most one BOPIS offer per order)}$$ $$\sum_{i} \mathbb{1}\{d_{ij} \leq \tau_i\} \, x_{ij} \leq L_j \qquad \forall j \qquad \text{(store labour capacity)}$$ $$\sum_{i} \mathbb{1}\{d_{ij} \leq \tau_i\} \, x_{ij} \leq I_j \qquad \forall j \qquad \text{(store inventory)}$$

Simplification: greedy offer rule

For each online order \(i\), compute the nearest in-stock store \(j^{\ast}(i)\). If \(d_{ij^{\ast}} \leq \tau_i\) and store \(j^{\ast}\) has labour and inventory, offer BOPIS there. If not, ship normally. Scan orders in decreasing contribution \(s - \ell + h\) (identical here, so order is arbitrary) — greedy is optimal when contributions are uniform; otherwise sort by marginal value.

Interactive solver

Greedy BOPIS-offer policy with store capacity and customer thresholds

BOPIS policy solver
20 online orders · 4 stores · customer-acceptance modelled
★★★ Greedy (optimal for uniform margin)
Total contribution ($)
BOPIS accepted / total
Shipping saved ($)
Halo revenue ($)
Labour cost ($)
Lift vs ship-all baseline
Store (size = labour capacity) BOPIS accepted (order → store) BOPIS offered but too far No BOPIS (ships normally)

Under the hood

The scenario generator places 4 stores uniformly in a 100×100 zone and \(n\) online-order destinations. Each customer \(i\) gets a random willingness-to-drive \(\tau_i \sim \mathrm{Uniform}(5, \tau^{\max})\) minutes (higher \(\tau\) = more patient). For each order, the solver computes distance to every store, sorts ascending, and offers BOPIS at the nearest store with (a) labour capacity left, (b) inventory left, and (c) \(d \leq \tau_i\). If no store qualifies, the order ships normally. Contribution per BOPIS accepted = \(s - \ell + h\). Ship-all baseline: offer no BOPIS — contribution is zero (just shipping cost paid). Lift % reports the gain over ship-all.

Reading the solution

Three patterns to watch for

  • Store trade areas emerge. Each store attracts the orders whose zones are within its customers' drive-time thresholds — you can see the BOPIS catchment on the canvas.
  • Store capacity binds before shipping savings are exhausted. Labour capacity is the typical bottleneck; when capacity runs out, orders that would prefer BOPIS default to shipping.
  • Patient customers (high \(\tau_i\)) subsidise impatient ones. Orders with small \(\tau_i\) only work if their nearest store is very close; orders with large \(\tau_i\) contribute to further stores.

Sensitivity questions

  • What if labour cost doubles (union deal)? — contribution per accepted BOPIS drops; some orders flip to shipping; store capacity loosens.
  • What if halo revenue is zero (customers just grab and leave)? — BOPIS only wins when shipping saving exceeds labour cost; adoption shrinks.
  • What if drive-time threshold distribution is tighter (everyone wants 5 min)? — only customers near a store use BOPIS; capacity is the wrong bottleneck.

Model extensions

Strategic pricing + BOPIS

Gao & Su 2017 analyse the joint price-and-BOPIS-offer decision under heterogeneous customers. Optimal price weakly decreases when BOPIS is enabled.

Curbside vs in-store pickup

Curbside has lower halo but lower labour. Optimal to offer curbside for low-value orders, in-store for high-value.

Joint BOPIS + inventory

Stores that share inventory with online pool face trade-off: serve more BOPIS vs keep stock for walk-ins. Coupled (s,S) + BOPIS policy.

Store replenishment →
Dynamic BOPIS offer

Offer BOPIS only when store inventory is above a threshold; close BOPIS during peak hours. Queueing-theoretic formulation.

Strategic consumer anticipation

Customers know BOPIS is sometimes unavailable; they delay purchase or substitute. Equilibrium game.

Omnichannel fulfilment

BOPIS is one of several fulfilment options (ship-from-store, DC, dark store). Full multi-option decision.

Omnichannel fulfilment →
Ship-from-store alternative

When BOPIS is declined, customer default is home delivery — which can itself be ship-from-store.

Ship-from-store →
Returns & BORIS

Buy Online, Return In Store (BORIS). Symmetric to BOPIS: customer returns, store absorbs handling, reverse-logistics cost reduced.

Returns management →

Key references

Gao, F. & Su, X. (2017).
Omnichannel retail operations with buy-online-and-pick-up-in-store.
Management Science 63(8): 2478–2492. doi:10.1287/mnsc.2016.2473 (The canonical game-theoretic BOPIS model.)
Gallino, S. & Moreno, A. (2014).
Integration of online and offline channels in retail: The impact of sharing reliable inventory availability information.
Management Science 60(6): 1434–1451. doi:10.1287/mnsc.2014.1951
Bell, D. R., Gallino, S. & Moreno, A. (2018).
Offline showrooms in omnichannel retail.
Management Science 64(4): 1629–1651. doi:10.1287/mnsc.2016.2684
Cao, J. & Zhang, M. (2022).
BOPIS and halo effects on in-store revenue.
Journal of Retailing. (Cross-sectional evidence on halo lifts.)
Jin, M., Li, B. & Xiong, Y. (2022).
Buy-online-pickup-in-store under strategic consumer behaviour.
European Journal of Operational Research. (Strategic wait analysis.)
Ishfaq, R., Defee, C. C., Gibson, B. J. & Raja, U. (2016).
Realignment of the physical distribution process in omni-channel fulfillment.
International Journal of Physical Distribution & Logistics Management 46(6/7): 543–561.
Kumar, A., Mehra, A. & Kumar, S. (2019).
Why do stores drive online sales? Evidence of underlying mechanisms from a multichannel retailer.
Information Systems Research 30(1): 319–338.
(EJOR 2022).
The revival of retail stores via omnichannel operations: A literature review and research framework.
European Journal of Operational Research. doi:10.1016/j.ejor.2021.12.001

Back to the retail domain

BOPIS sits in the Place × Operational cell — the sub-problem that turns stores into last-mile nodes when the customer supplies the transport.

Open Retail Landing
Educational solver · uniform customer-willingness distribution and single-cycle assignment · validate against real BOPIS acceptance rates before scaling.