{
  "kind": "bdp-knee",
  "title": "Throughput saturates before the buffer fills",
  "description": "Two panels: modeled Mbps and RTT milliseconds versus offered inflight bytes. Mark BDP 500,000 bytes and admitted limit 1,000,000 bytes; label excess separately.",
  "data": {
    "provenance": "Computed from the executed local Python illustration. Synthetic inputs and assumptions; not paper benchmark results or production measurements.",
    "panels": [
      {
        "title": "Delivery rate",
        "x_label": "Offered inflight",
        "x_unit": "bytes",
        "y_label": "Delivery rate",
        "y_unit": "Mbps",
        "series": [
          {
            "name": "Delivery rate",
            "x": [
              125000,
              500000,
              750000,
              1500000
            ],
            "y": [
              25.0,
              100.0,
              100.0,
              100.0
            ]
          }
        ],
        "annotations": [
          {
            "x": 500000,
            "label": "BDP"
          },
          {
            "x": 1000000,
            "label": "BDP + buffer"
          }
        ]
      },
      {
        "title": "Round-trip time",
        "x_label": "Offered inflight",
        "x_unit": "bytes",
        "y_label": "Round-trip time",
        "y_unit": "milliseconds",
        "series": [
          {
            "name": "Round-trip time",
            "x": [
              125000,
              500000,
              750000,
              1500000
            ],
            "y": [
              40.0,
              40.0,
              60.0,
              80.0
            ]
          }
        ],
        "annotations": [
          {
            "x": 500000,
            "label": "BDP"
          },
          {
            "x": 1000000,
            "label": "BDP + buffer"
          }
        ]
      },
      {
        "title": "Queued data",
        "x_label": "Offered inflight",
        "x_unit": "bytes",
        "y_label": "Queued data",
        "y_unit": "bytes",
        "series": [
          {
            "name": "Queued data",
            "x": [
              125000,
              500000,
              750000,
              1500000
            ],
            "y": [
              0.0,
              0.0,
              250000.0,
              500000.0
            ]
          }
        ],
        "annotations": [
          {
            "x": 500000,
            "label": "BDP"
          },
          {
            "x": 1000000,
            "label": "BDP + buffer"
          }
        ]
      },
      {
        "title": "Capacity-excess data",
        "x_label": "Offered inflight",
        "x_unit": "bytes",
        "y_label": "Capacity-excess data",
        "y_unit": "bytes",
        "series": [
          {
            "name": "Capacity-excess data",
            "x": [
              125000,
              500000,
              750000,
              1500000
            ],
            "y": [
              0,
              0,
              0,
              500000.0
            ]
          }
        ],
        "annotations": [
          {
            "x": 500000,
            "label": "BDP"
          },
          {
            "x": 1000000,
            "label": "BDP + buffer"
          }
        ]
      }
    ]
  }
}
