{
  "meta": {
    "id": "pdf-performance-index-2026",
    "title": "Toolminator PDF Performance Index 2026",
    "revision": "2026-06",
    "operationCount": 7,
    "disclaimer": "Illustrative client-side processing bands for planning—not a live telemetry feed. Actual time and size depend on device CPU, browser, and file complexity. Files never leave your browser on Toolminator PDF/image tools.",
    "methodologyUrl": "/method/",
    "trustUrl": "/trust/how-files-work/",
    "license": "CC BY 4.0 with attribution to Toolminator and link to methodology."
  },
  "generatedAt": "2026-06-17T11:52:26.171Z",
  "sources": [
    {
      "id": "client-benchmarks",
      "label": "Curated ranges from browser-based pdf-lib / canvas workflows (lab samples)",
      "accessed": "2026-06"
    }
  ],
  "operations": [
    {
      "id": "compress",
      "label": "PDF compress",
      "toolSlug": "pdf-compress",
      "inputUnit": "MB",
      "typicalInputMb": {
        "p25": 2,
        "p50": 5,
        "p75": 12
      },
      "sizeReductionPercent": {
        "p25": 12,
        "p50": 32,
        "p75": 52
      },
      "elapsedMs": {
        "p25": 600,
        "p50": 2200,
        "p75": 7500
      }
    },
    {
      "id": "merge",
      "label": "PDF merge (3 files)",
      "toolSlug": "pdf-merge",
      "inputUnit": "MB total",
      "typicalInputMb": {
        "p25": 3,
        "p50": 8,
        "p75": 18
      },
      "sizeReductionPercent": {
        "p25": -5,
        "p50": 0,
        "p75": 2
      },
      "elapsedMs": {
        "p25": 400,
        "p50": 1400,
        "p75": 4500
      }
    },
    {
      "id": "split",
      "label": "PDF split",
      "toolSlug": "pdf-split",
      "inputUnit": "MB",
      "typicalInputMb": {
        "p25": 2,
        "p50": 6,
        "p75": 15
      },
      "sizeReductionPercent": {
        "p25": 0,
        "p50": 0,
        "p75": 0
      },
      "elapsedMs": {
        "p25": 350,
        "p50": 1200,
        "p75": 3800
      }
    },
    {
      "id": "rotate",
      "label": "PDF rotate",
      "toolSlug": "pdf-rotate",
      "inputUnit": "MB",
      "typicalInputMb": {
        "p25": 1,
        "p50": 4,
        "p75": 10
      },
      "sizeReductionPercent": {
        "p25": 0,
        "p50": 1,
        "p75": 3
      },
      "elapsedMs": {
        "p25": 300,
        "p50": 900,
        "p75": 2800
      }
    },
    {
      "id": "to-jpg",
      "label": "PDF to JPG",
      "toolSlug": "pdf-to-jpg",
      "inputUnit": "MB",
      "typicalInputMb": {
        "p25": 1,
        "p50": 3,
        "p75": 8
      },
      "sizeReductionPercent": {
        "p25": -20,
        "p50": 5,
        "p75": 40
      },
      "elapsedMs": {
        "p25": 800,
        "p50": 2800,
        "p75": 9000
      }
    },
    {
      "id": "protect",
      "label": "PDF password protect",
      "toolSlug": "pdf-protect",
      "inputUnit": "MB",
      "typicalInputMb": {
        "p25": 1,
        "p50": 4,
        "p75": 12
      },
      "sizeReductionPercent": {
        "p25": 0,
        "p50": 2,
        "p75": 5
      },
      "elapsedMs": {
        "p25": 250,
        "p50": 800,
        "p75": 2400
      }
    },
    {
      "id": "image-compress",
      "label": "Image compress (JPEG)",
      "toolSlug": "image-compressor",
      "inputUnit": "MB",
      "typicalInputMb": {
        "p25": 0.8,
        "p50": 2.5,
        "p75": 6
      },
      "sizeReductionPercent": {
        "p25": 25,
        "p50": 45,
        "p75": 65
      },
      "elapsedMs": {
        "p25": 120,
        "p50": 400,
        "p75": 1200
      }
    }
  ]
}
