{"name":"Quantum Expectation Tool","modelVersion":"5.0.0","description":"Given a 2-qubit gate error rate p, qubit count n, and circuit depth d, returns formulas, assumptions, current SOTA hardware, and the historic improvement trend so an agent can derive realistic expectations for whether (and when) the circuit can run on quantum hardware.","endpoints":{"POST /api/expectation":"Compute one scenario. Send the input as JSON in the body.","GET /api/expectation":"Returns this schema document.","GET /api/expectation?qubitErrorRate=...&numQubits=...&compDepth=...":"Compute one scenario via query parameters. Returns the same JSON as POST. Cacheable."},"input":{"qubitErrorRate":{"type":"number","required":"iff hardwareId is not supplied","bounds":{"exclusiveMin":0,"max":0.1},"description":"Per-gate 2-qubit depolarizing error rate (p). Supply exactly one of qubitErrorRate or hardwareId."},"hardwareId":{"type":"string","required":"iff qubitErrorRate is not supplied","enum":["trapped-ion","superconducting","neutral-atom"],"description":"Alias for qubitErrorRate: resolves to the 2-qubit error rate of the given SOTA hardware entry from the Current Quantum Computers table. Supply exactly one of qubitErrorRate or hardwareId. When supplied, the response's result block also includes minimumClockRuntimeSeconds — a lower bound on wall-clock runtime derived from that platform's gate-cycle timings."},"connectivity":{"type":"string","required":false,"enum":["all-to-all","reconfigurable","2d-lattice"],"default":"the hardware entry's class when hardwareId is supplied, else all-to-all","description":"Two-qubit connectivity of the device. Without error correction a 2d-lattice is charged as a routing multiplier on depth (see formulas.routingOverhead and result.routingOverheadFactor); all-to-all and reconfigurable devices are not. Ignored with error correction, whose fits already assume a 2D lattice."},"numQubits":{"type":"integer","required":true,"bounds":{"min":1,"max":1000000},"description":"Number of qubits (n)."},"compDepth":{"type":"integer","required":true,"bounds":{"min":1,"max":10000000000000},"description":"Circuit depth (d) — number of sequential 2-qubit gate layers."},"verbose":{"type":"boolean","required":false,"default":true,"description":"When false, the response is limited to modelVersion, scenario, and result. The hardwareContext, formulas, assumptions, caveats, glossary, examples, and exampleProblems blocks are omitted. Use for parameter sweeps where that context would repeat unchanged."},"useErrorCorrection":{"type":"boolean","required":false,"default":false,"description":"When true, apply error correction with the code specified by errorCorrectionCode (default: surface code)."},"distanceSurfaceCode":{"type":"integer","required":"iff useErrorCorrection is true and errorCorrectionCode is \"surface\"","bounds":{"min":3,"max":31,"oddOnly":true},"description":"Surface code distance (odd integer). Required for the surface code; ignored for BB codes."},"errorCorrectionCode":{"type":"string","required":false,"default":"surface","description":"Error correction code to use. \"surface\" for the surface code (default), or a qLDPC code ID from the catalog below. \"surface-code\" is accepted as an alias for \"surface\".","enum":["surface","bb-144-12-12","bb-288-12-18"],"qldpcCodeCatalog":[{"id":"bb-144-12-12","label":"[[144, 12, 12]]","family":"Bivariate Bicycle","n":144,"k":12,"d":12,"circuitLevelDistance":10,"checkAncillasPerBlock":144,"logicAncillasPerBlock":90,"roundsPerLogicalOp":11,"threshold":0.0065,"fitCoefficients":{"c0":18.04,"c1":1337,"c2":-96007},"logicalErrorExponent":5,"source":"https://doi.org/10.1038/s41586-024-07107-7","logicalOpSource":"https://arxiv.org/abs/2506.03094","nickname":"Gross code","attribution":"Bravyi et al., Nature 2024 (IBM)","provenance":{"threshold":"Bravyi et al. 2024, Table 1 (pseudo-threshold p₀ of [[144,12,12]])","circuitLevelDistance":"Bravyi et al. 2024, Table 1 (d_circ ≤ 10); exponent α = d_circ / 2 per the §3 fitting form","fitCoefficients":"Bravyi et al. 2024, Table 6 (c₀, c₁, c₂ for [[144,12,12]]; arXiv:2308.07915 numbering)","checkAncillasPerBlock":"Bravyi et al. 2024, abstract (\"requires n ancillary qubits\") and Table 1 caption (2n physical in total)","logicAncillasPerBlock":"Yoder et al. 2025 (Tour de gross), Table 1 and Fig. 7(b) (LPU u = 90)","roundsPerLogicalOp":"Yoder et al. 2025 (Tour de gross), §2.3 (C = 10 deformation cycles + 1 return cycle)"},"caveats":[]},{"id":"bb-288-12-18","label":"[[288, 12, 18]]","family":"Bivariate Bicycle","n":288,"k":12,"d":18,"circuitLevelDistance":18,"checkAncillasPerBlock":288,"logicAncillasPerBlock":158,"roundsPerLogicalOp":19,"threshold":0.0069,"fitCoefficients":{"c0":32.04,"c1":3522,"c2":-294482},"logicalErrorExponent":9,"source":"https://doi.org/10.1038/s41586-024-07107-7","logicalOpSource":"https://arxiv.org/abs/2506.03094","nickname":"Two-gross code","attribution":"Bravyi et al., Nature 2024 (IBM)","provenance":{"threshold":"Bravyi et al. 2024, Table 1 (pseudo-threshold p₀ of [[288,12,18]])","circuitLevelDistance":"Bravyi et al. 2024, Table 1 (d_circ ≤ 18, stated by the authors as unlikely to be tight); exponent α = d_circ / 2 per the §3 fitting form","fitCoefficients":"Bravyi et al. 2024, Table 6 (c₀, c₁, c₂ for [[288,12,18]]; arXiv:2308.07915 numbering)","checkAncillasPerBlock":"Bravyi et al. 2024, Table 1 caption (\"requires 2n physical qubits in total\")","logicAncillasPerBlock":"Yoder et al. 2025 (Tour de gross), Table 1 and Fig. 7(c) (LPU u = 158)","roundsPerLogicalOp":"Yoder et al. 2025 (Tour de gross), §2.3 (C = 18 deformation cycles + 1 return cycle)"},"caveats":["The suppression exponent uses the circuit-level distance bound d_circ ≤ 18, which the source itself says \"is unlikely to be tight and this affects the fit and extrapolations\". If the true d_circ is larger, the code suppresses errors faster than this entry predicts.","The fit's value at p = 0.001, 2.07e-12 (Table 1 rounds it to 2e-12), should be read as fit-supported rather than directly sampled. The source states its values were \"computed numerically for p ≥ 10⁻³ and extrapolated to lower error rates\" (Table 1 caption) and that \"all data points except for those with the smallest error rate accumulated at least 100 logical errors\" (§8 of the arXiv version, arXiv:2308.07915; section and table numbers follow the preprint); a direct estimate at 2e-12 would need on the order of 10^12 sampled syndrome cycles.","The two sources disagree on the two-gross memory rate at p = 0.001 by about 2.5e8: Bravyi et al. give 2e-12 per syndrome cycle, Tour de gross fits 10^-20.1 per idle instruction with its failure-spectrum ansatz (Table 2), and Tour de gross defines the idle instruction as one syndrome cycle (§2.2), so the two figures are like-for-like. This entry follows Bravyi et al., the same source and method as the gross-code entry. Tour de gross marks its two-gross logical-measurement rates as \"assumed without data\" (Table 2, square brackets), so no simulation yet backs a per-operation rate for this code; the derived per-op figure here (19 rounds × 2.07e-12 ≈ 3.9e-11 per block) is within a factor of four of the 1e-11 Tour de gross assumes."]}],"qldpcCatalogUnits":"fitCoefficients define P_L_cycle = p^logicalErrorExponent * exp(c0 + c1*p + c2*p^2) for p <= threshold, PER BLOCK (all k logical qubits jointly) PER SYNDROME CYCLE, not per logical gate. Above threshold the curve continues as a power law anchored at P_L_cycle(threshold) (see formulas.qldpcCodeLogicalError). The per-logical-operation conversion is roundsPerLogicalOp * P_L_cycle * ceil(n_logical / k) / n_logical (see formulas.qldpcCodeLogicalErrorPerOp)."}},"outputTopLevelKeys":{"modelVersion":"String identifier of the noise model. Bumped when the model itself changes.","scenario":"Echo of the validated input.","result":"Computed numbers: effectiveErrorRate, successProbability, routingOverheadFactor and routedDepth (the connectivity multiplier applied to compDepth without EC; 1 and compDepth otherwise), and (if EC) logicalErrorRatePerGate (per logical operation — what the effective-error formula consumes), logicalErrorRatePerCycle (per syndrome cycle — the quantity the calibration papers report; NOTE its attribution differs by code: per logical QUBIT for the surface code, per BLOCK — all k logical qubits jointly — for qLDPC codes, so do not compare it across code families without normalizing), physicalQubitsPerLogicalQubit, totalPhysicalQubits. When hardwareId was supplied on input, also includes minimumClockRuntimeSeconds — a lower bound on wall-clock runtime derived from compDepth and that platform's gate-cycle timings (see formulas.minimumClockRuntime for assumptions).","formulas":"Every formula used, with variable definitions and the named constants the math actually executed (no drift).","assumptions":"Plain-English list of what the model assumes (e.g. depolarizing noise, no leakage).","caveats":"Plain-English list of what the agent should communicate to the user when results are borderline.","methodology":"Rationale behind four choices agents commonly question: hardwareSelection (why so few current-hardware entries — universal gate-set, one real device per hardware type, best by quantum volume), noiseModel (why depolarizing — hardware-agnostic, standard QEC basis), vendorBenchmarks (why an independent first-principles model rather than QV/CLOPS — enables extrapolation), and qldpcCodeSelection (why so few qLDPC codes in the catalog — published threshold, logical universal gate set, and known P_L suppression fit).","glossary":"Short definitions of the terms used in formulas, assumptions, and caveats.","examples":"A worked example (request + expectedResult) so an agent can sanity-check its parsing on the first call.","hardwareContext":"Current SOTA quantum computers (each entry with its connectivity class and note, joined with its gate-cycle timings, a pre-computed Quantum Volume Rate whose `quantumVolume` is the model-defined no-EC square at the acceptable error rate, NOT the vendor QV benchmark; the entry carries a `note` saying so, and a `modelCapability` block: this model's prediction in QUOPS units) + latest record points + full historic improvement series (with source URLs) + hardwareTimings: a per-platform table of best-case demonstrated 2Q gate time and readout time in SI seconds (small-testbed values, not the joined devices; derived runtimes are optimistic lower bounds) + measuredCapabilityScores and capabilityTargets: the measured QUOPS scores per device and the utility-scale targets in the same unit (arXiv:2609.12146), the yardstick modelCapability is checked against.","exampleProblems":"Curated list of quantum algorithms with known resource estimates (qubits, gate count, source paper). Useful for comparing what algorithms need vs. what hardware can deliver. For the Toffoli-counted entries, compDepth is the Toffoli count consumed as sequential 2-qubit layers (one Toffoli is at least 6 CNOTs, so depth is understated ~6x in the model's own unit). Every entry carries a `provenance` field: 'published-circuit' means the figure can be independently reproduced from the source, 'attested-estimate' means the source withholds the circuit and the figure rests on the authors' attestation. Entries in the latter category also carry a `provenanceNote` spelling out exactly what is and is not attested. Quote that caveat whenever you quote the number.","exampleProblemProvenance":"Gloss for the `provenance` values used in exampleProblems, so the caveat travels with the data rather than living only in this documentation."},"outputCoreKeys":["modelVersion","scenario","result"],"workedExample":{"description":"Trivial sanity check: 10 qubits, depth 10, p=1e-3, no error correction. Use this to verify your parsing of the response shape.","request":{"qubitErrorRate":0.001,"numQubits":10,"compDepth":10,"useErrorCorrection":false},"expectedResult":{"effectiveErrorRate":0.0643264488016432,"successProbability":0.9356735511983568,"routingOverheadFactor":1,"routedDepth":10,"logicalErrorRatePerGate":null,"logicalErrorRatePerCycle":null,"physicalQubitsPerLogicalQubit":null,"totalPhysicalQubits":null}},"reservedQueryParams":{"include":"Reserved for future response slimming (e.g. ?include=core to omit historic series). Currently a no-op."},"discoverability":"/agent.txt — site-wide brief for AI agents.","forwardCompat":{"contract":"additive-only — top-level keys listed above are stable; new keys may be added without notice.","cors":"Access-Control-Allow-Origin: * on both GET and POST so user-built dashboards on arbitrary origins can call the endpoint without a proxy.","caching":"GET responses include Cache-Control and a content-hash ETag. Identical scenario URLs are served from the CDN edge."}}