{% extends "otree/Page.html" %} {% block title %} Newsvendor Model Explained {% endblock %} {% block styles %} {% endblock %} {% block content %}

Understanding the Newsvendor Decision

The Newsvendor model helps you pick a one-time order quantity when demand for the product is uncertain and you cannot reorder within the selling period. You trade off two risks: ordering too few (lost sales) versus ordering too many (leftover units). The goal is to choose the quantity that maximizes expected profit for this single period.

Key inputs (what you'll be given)

What you decide

Order quantity Q for this single selling period.

The core trade-off, in one line

Critical fractile = Cu / (Cu + Co) = (p − c) / [(p − c) + (c − v)]

The optimal order quantity Q* is the demand quantile at this probability. Intuitively, you order enough so that demand is below your order quantity with probability equal to the critical fractile.

How to find Q*

Profit for one round

Where D is realized demand:

Profit = (p × Sales) − (c × Q) + (v × Leftovers)

You only earn revenue on units sold, you pay for all units ordered, and you recover v for each leftover unit.

Quick example

Suppose p = 10, c = 6, v = 2. Then Cu = 10 − 6 = 4 and Co = 6 − 2 = 4, so the critical fractile is 4 / (4 + 4) = 0.5. If demand is symmetric (e.g., Normal), Q* is the median of demand. If μ = 100 and σ = 20 (Normal), the 50th percentile is μ, so Q* ≈ 100.

If demand were discrete with cumulative probabilities crossing 0.5 at Q = 100, you'd choose Q = 100.

Common pitfalls

1-minute recipe you can use here

  1. Note p, c, and v. Compute Cu = p − c and Co = c − v.
  2. Compute the critical fractile: Cu / (Cu + Co).
  3. Use the demand info to find the corresponding quantile (Normal: z-lookup; discrete: cumulative ≥ fractile).
  4. Set Q to that quantile. Round to a feasible integer if required by the interface.

What you'll do in this experiment

Please read the information above. The 'Next' button will be enabled shortly.

{% endblock %} {% block scripts %} {% endblock %}