{
  "id": "price-ceiling",
  "name": "Price ceiling (maximum price)",
  "unit": "micro",
  "unitName": "Unit 2 · Microeconomics",
  "topic": "Government intervention",
  "hl": false,
  "description": "A maximum price set below equilibrium creates a shortage (excess demand), a welfare loss and the conditions for a parallel (black) market.",
  "keywords": [
    "price ceiling",
    "maximum price",
    "rent control",
    "shortage",
    "excess demand",
    "parallel market",
    "black market",
    "rationing",
    "welfare loss"
  ],
  "schemaUrl": "https://graphs.lectere.com/api/v1/templates/price-ceiling",
  "previewUrl": "https://graphs.lectere.com/thumbs/price-ceiling.svg",
  "editorUrl": "https://graphs.lectere.com/graph/price-ceiling/",
  "params": [
    {
      "key": "pmax",
      "label": "Maximum price",
      "default": 3.4,
      "group": "Policy",
      "type": "number",
      "min": 1.5,
      "max": 4.6,
      "step": 0.1
    },
    {
      "key": "shortage",
      "label": "Mark the shortage",
      "default": true,
      "type": "boolean"
    },
    {
      "key": "dwl",
      "label": "Shade welfare loss",
      "default": true,
      "type": "boolean"
    },
    {
      "key": "welfare",
      "label": "Shade consumer and producer surplus after the ceiling",
      "default": false,
      "type": "boolean"
    },
    {
      "key": "parallel",
      "label": "Show the parallel (black) market price",
      "default": false,
      "type": "boolean"
    },
    {
      "key": "dSlope",
      "label": "Demand steepness",
      "default": 0.8,
      "group": "Shape",
      "type": "number",
      "min": 0.3,
      "max": 2.5,
      "step": 0.05
    },
    {
      "key": "sSlope",
      "label": "Supply steepness",
      "default": 0.8,
      "group": "Shape",
      "type": "number",
      "min": 0.3,
      "max": 2.5,
      "step": 0.05
    }
  ],
  "defaults": {
    "pmax": 3.4,
    "shortage": true,
    "dwl": true,
    "welfare": false,
    "parallel": false,
    "dSlope": 0.8,
    "sSlope": 0.8
  },
  "panels": [
    {
      "id": "main",
      "title": null,
      "xLabel": "Quantity",
      "yLabel": "Price",
      "xRange": [
        0,
        10
      ],
      "yRange": [
        0,
        10
      ],
      "axisKeys": {
        "x": "main:x",
        "y": "main:y"
      }
    }
  ],
  "labels": [
    {
      "key": "main:y",
      "default": "Price",
      "hint": "Vertical axis",
      "panel": "main"
    },
    {
      "key": "main:x",
      "default": "Quantity",
      "hint": "Horizontal axis",
      "panel": "main"
    },
    {
      "key": "main.dwl",
      "default": "WL",
      "hint": "Shaded area",
      "panel": "main"
    },
    {
      "key": "main.d",
      "default": "D",
      "hint": "Curve",
      "panel": "main"
    },
    {
      "key": "main.s",
      "default": "S",
      "hint": "Curve",
      "panel": "main"
    },
    {
      "key": "main.ceiling",
      "default": "Price ceiling",
      "hint": "Curve",
      "panel": "main"
    },
    {
      "key": "main.pmax",
      "default": "P_{max}",
      "hint": "Axis mark",
      "panel": "main"
    },
    {
      "key": "main.e:y",
      "default": "P_e",
      "hint": "Vertical-axis value",
      "panel": "main"
    },
    {
      "key": "main.e:x",
      "default": "Q_e",
      "hint": "Horizontal-axis value",
      "panel": "main"
    },
    {
      "key": "main.qs:x",
      "default": "Q_s",
      "hint": "Horizontal-axis value",
      "panel": "main"
    },
    {
      "key": "main.qd:x",
      "default": "Q_d",
      "hint": "Horizontal-axis value",
      "panel": "main"
    },
    {
      "key": "main.shortage",
      "default": "shortage",
      "hint": "Arrow / line",
      "panel": "main"
    }
  ],
  "elements": [
    {
      "key": "main.dwl",
      "kind": "area",
      "label": "WL"
    },
    {
      "key": "main.d",
      "kind": "curve",
      "label": "D"
    },
    {
      "key": "main.s",
      "kind": "curve",
      "label": "S"
    },
    {
      "key": "main.ceiling",
      "kind": "curve",
      "label": "Price ceiling"
    },
    {
      "key": "main.pmax",
      "kind": "tick",
      "label": "P_{max}"
    },
    {
      "key": "main.e",
      "kind": "point"
    },
    {
      "key": "main.qs",
      "kind": "point"
    },
    {
      "key": "main.qd",
      "kind": "point"
    },
    {
      "key": "main.shortage",
      "kind": "line",
      "label": "shortage"
    }
  ],
  "stats": null,
  "example": {
    "template": "price-ceiling",
    "params": {
      "pmax": 3.4,
      "shortage": true,
      "dwl": true,
      "welfare": false,
      "parallel": false,
      "dSlope": 0.8,
      "sSlope": 0.8
    }
  }
}