{
  "status": "ok",
  "verdict": "self_host_needs_throughput",
  "headline": "The API is cheaper below 88.8 million tokens a day. Above that, self-hosting wins only if the whole configuration (all GPUs together) delivers at least 2,056 tokens per second, input and output together, while serving at 50% utilization (1,028 if it were busy all the time).",
  "headline_kind": "break_even_and_required_throughput",
  "headline_values": {
    "prefix": null,
    "break_even_m": 88.8,
    "required_tps_at_utilization": 2056,
    "utilization_percent": 50,
    "required_tps_if_always_busy": 1028
  },
  "confidence": "none",
  "threshold_m_tokens_per_day": 88.81,
  "required_tokens_per_second": {
    "at_full_utilization": 1028,
    "at_utilization": 2055.9,
    "utilization_percent": 50
  },
  "break_even_utilization_percent": null,
  "utilization_percent": 50,
  "api": {
    "provider": "NanoGPT",
    "usd_per_m_tokens": 0.6999,
    "checked_at": "2026-10-31T17:51:46.103Z",
    "offers_compared": 4,
    "mix": {
      "source": "default_3_1",
      "input_share_percent": 75
    },
    "basis": "cheapest of 4 current standard offers for a 3:1 input:output mix (blended), promotions, unstable prices, off-peak prices without published hours and unverified prices far below those of the other providers excluded"
  },
  "model": {
    "id": "qwen/qwen2.5-vl-72b-instruct",
    "name": "Qwen: Qwen2.5 VL 72B Instruct",
    "params_b": 73.411,
    "kind": "dense",
    "active_params_b": null,
    "weights_gb": 73.41,
    "quantization": "fp8"
  },
  "configuration": {
    "vendor": "AMD",
    "throughput_evidence": "none",
    "engine_note": "We have no measured, derived or estimated throughput for this model on this card, and we have not assessed inference-engine support for it.",
    "gpu_id": "mi300x-192gb",
    "gpu_name": "MI300X 192GB",
    "gpus_needed": 1,
    "gpus_billed": 1,
    "provider": "DigitalOcean",
    "region": null,
    "tier": "guaranteed",
    "usd_per_gpu_hour": 2.59,
    "usd_per_hour": 2.59,
    "usd_per_day": 62.16,
    "vram_total_gb": 192,
    "weights_share": 0.382,
    "checked_at": "2026-10-31T18:22:19.014Z",
    "source_url": "https://www.digitalocean.com/pricing/gpu-droplets"
  },
  "weights_margin": {
    "used_percent": 70,
    "default_percent": 70,
    "explanation": "The weights may fill 70% of the GPU memory; the rest is the engine's reserve and the context cache (default 70%)."
  },
  "throughput": {
    "status": "unavailable",
    "reason": "unknown_bandwidth"
  },
  "scenarios": null,
  "volume_m_tokens_per_day": null,
  "assumptions": [
    "Hardware rental only: the hourly price the provider publishes for the machine. It does not count the engineering to deploy and run the model, monitoring, redundancy, start-up time, or storage and network costs billed separately.",
    "Configuration: we pick the cheapest one whose weights fit. If a configuration costing up to 25% more has a measured throughput, we pick it instead; failing that, one with a derived throughput; failing that, one with a published lower bound that settles the verdict; among equals, the cheaper. A configuration whose throughput is only a wide estimate is never preferred over the cheapest. This is our rule, not a technical requirement.",
    "Quantization fp8; guaranteed tier prices as published by the provider; utilization 50%.",
    "Throughput is aggregate (input and output tokens, 3:1). Published figures in generated tokens are converted with a prefill/generation speed ratio of 3 (prudent), 5 (median) and 8 (optimistic).",
    "Break-even = daily GPU cost / API price per million tokens (88.8 million tokens a day). Self-hosting is cheaper only if the average utilization you can sustain exceeds break-even / raw capacity (the break-even utilization of each scenario), whatever the number of GPUs."
  ],
  "fetched_at": "2026-10-31T19:38:03.424Z"
}