{"id":"calibration-coverage","title":"Calibration certificate vs intended use: range, uncertainty and validity","description":"Checks whether an instrument's calibration certificate covers an intended measurement, for an agent about to rely on a reading or accept a calibrated device. Three checks: the intended range [min, max] lies inside the calibrated ranges (touching or overlapping ranges are joined); the stated expanded uncertainty of every calibrated range used is no larger than the required uncertainty; the calibration is current on the caller's `asOf` date (due date = validUntil, or calibratedOn plus intervalMonths, clamped to month end) and on `usedOn` when given. Units must be identical (no conversion is attempted). A missing uncertainty when one is required, or no due date, returns unknown. The reference instant is always supplied by the caller. Does not assess traceability, the accreditation of the laboratory or drift between calibrations.","roi":"A calibration that stops at 100 units does not cover a 150-unit reading, and one that expired last month covers nothing. Each condition is checked from the certificate's own numbers.","audience":"business","package":"money-math-kit","channels":["x402","mcp"],"endpoint":{"method":"POST","url":"https://agents.writerslogic.com/api/v1/calibration-coverage","path":"/api/v1/calibration-coverage","contentType":"application/json"},"price":{"amount":"0.005","currency":"USDC","network":"base","perCall":true,"failedCallsCharged":false},"inputSchema":{"type":"object","additionalProperties":false,"required":["certificate","use","asOf"],"properties":{"certificate":{"type":"object","required":["unit","ranges","calibratedOn"],"properties":{"unit":{"type":"string","minLength":1,"maxLength":24},"ranges":{"type":"array","minItems":1,"maxItems":50,"items":{"type":"object","required":["min","max"],"properties":{"min":{"type":"string","pattern":"^-?\\d{1,15}(\\.\\d{1,12})?$","maxLength":30,"description":"Decimal string such as \"-12.50\" (up to 15 integer and 12 fraction digits). JSON numbers are not accepted: they are binary floats."},"max":{"type":"string","pattern":"^-?\\d{1,15}(\\.\\d{1,12})?$","maxLength":30,"description":"Decimal string such as \"-12.50\" (up to 15 integer and 12 fraction digits). JSON numbers are not accepted: they are binary floats."},"uncertainty":{"type":"string","pattern":"^-?\\d{1,15}(\\.\\d{1,12})?$","maxLength":30,"description":"Expanded uncertainty over this range, absolute, in `unit`."}},"additionalProperties":false}},"calibratedOn":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Calendar date YYYY-MM-DD."},"validUntil":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Due date on the certificate, inclusive."},"intervalMonths":{"type":"integer","minimum":1,"maximum":120,"description":"Calibration interval when no due date is printed."}},"additionalProperties":false},"use":{"type":"object","required":["min","max","unit"],"properties":{"min":{"type":"string","pattern":"^-?\\d{1,15}(\\.\\d{1,12})?$","maxLength":30,"description":"Decimal string such as \"-12.50\" (up to 15 integer and 12 fraction digits). JSON numbers are not accepted: they are binary floats."},"max":{"type":"string","pattern":"^-?\\d{1,15}(\\.\\d{1,12})?$","maxLength":30,"description":"Decimal string such as \"-12.50\" (up to 15 integer and 12 fraction digits). JSON numbers are not accepted: they are binary floats."},"unit":{"type":"string","minLength":1,"maxLength":24},"requiredUncertainty":{"type":"string","pattern":"^-?\\d{1,15}(\\.\\d{1,12})?$","maxLength":30,"description":"Largest acceptable expanded uncertainty, absolute, in `unit`."},"usedOn":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Date of the measurement, when different from asOf."}},"additionalProperties":false},"asOf":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"The reference date for validity; required, never defaulted to today."}}},"resultSchema":{"type":"object","properties":{"status":{"type":"string","enum":["pass","fail","unknown","unsupported"],"description":"pass: every rule held. fail: a rule was violated (see witnesses). unknown: the input lacks the evidence to decide. unsupported: outside what this engine covers. Missing evidence is never a pass."},"rangeCovered":{"type":"boolean"},"uncoveredSegments":{"type":"array","items":{"type":"object","properties":{"min":{"type":"string"},"max":{"type":"string"}}}},"worstUncertainty":{"type":"string","description":"Largest uncertainty among the calibrated ranges that overlap the intended use."},"dueDate":{"type":"string","description":"Date the calibration lapses (inclusive)."},"validOnAsOf":{"type":"boolean"},"validOnUse":{"type":"boolean"},"witnesses":{"type":"array","items":{"type":"object","properties":{"ruleId":{"type":"string"},"detail":{"type":"string"},"path":{"type":"string","description":"JSON pointer or dotted path into the input."},"offset":{"type":"integer"},"index":{"type":"integer"},"expected":{"description":"What the rule required."},"actual":{"description":"What the input had."}}}},"versions":{"type":"object","description":"Every semantic dependency of this answer (engine, tables and their as-of dates, tokenizer, calendar, rounding profile)."},"limits":{"type":"array","items":{"type":"string"}},"deterministic":{"type":"boolean","description":"Always true: pure code, no model."}}},"outputSchema":{"type":"object","properties":{"data":{"type":"object","properties":{"status":{"type":"string","enum":["pass","fail","unknown","unsupported"],"description":"pass: every rule held. fail: a rule was violated (see witnesses). unknown: the input lacks the evidence to decide. unsupported: outside what this engine covers. Missing evidence is never a pass."},"rangeCovered":{"type":"boolean"},"uncoveredSegments":{"type":"array","items":{"type":"object","properties":{"min":{"type":"string"},"max":{"type":"string"}}}},"worstUncertainty":{"type":"string","description":"Largest uncertainty among the calibrated ranges that overlap the intended use."},"dueDate":{"type":"string","description":"Date the calibration lapses (inclusive)."},"validOnAsOf":{"type":"boolean"},"validOnUse":{"type":"boolean"},"witnesses":{"type":"array","items":{"type":"object","properties":{"ruleId":{"type":"string"},"detail":{"type":"string"},"path":{"type":"string","description":"JSON pointer or dotted path into the input."},"offset":{"type":"integer"},"index":{"type":"integer"},"expected":{"description":"What the rule required."},"actual":{"description":"What the input had."}}}},"versions":{"type":"object","description":"Every semantic dependency of this answer (engine, tables and their as-of dates, tokenizer, calendar, rounding profile)."},"limits":{"type":"array","items":{"type":"string"}},"deterministic":{"type":"boolean","description":"Always true: pure code, no model."}}},"_provenance":{"type":"object","description":"C2PA-aligned manifest and W3C VC 2.0 (eddsa-jcs-2022) issued by the hub DID; verify at POST /api/v1/verify-provenance"}},"required":["data","_provenance"]},"example":{"certificate":{"unit":"bar","ranges":[{"min":"0","max":"100","uncertainty":"0.05"},{"min":"100","max":"200","uncertainty":"0.15"}],"calibratedOn":"2026-02-28","intervalMonths":12},"use":{"min":"20","max":"150","unit":"bar","requiredUncertainty":"0.2","usedOn":"2026-10-01"},"asOf":"2026-11-04"},"openapiOperation":{"operationId":"calibration_coverage","summary":"Calibration certificate vs intended use: range, uncertainty and validity","description":"Checks whether an instrument's calibration certificate covers an intended measurement, for an agent about to rely on a reading or accept a calibrated device. Three checks: the intended range [min, max] lies inside the calibrated ranges (touching or overlapping ranges are joined); the stated expanded uncertainty of every calibrated range used is no larger than the required uncertainty; the calibration is current on the caller's `asOf` date (due date = validUntil, or calibratedOn plus intervalMonths, clamped to month end) and on `usedOn` when given. Units must be identical (no conversion is attempted). A missing uncertainty when one is required, or no due date, returns unknown. The reference instant is always supplied by the caller. Does not assess traceability, the accreditation of the laboratory or drift between calibrations.\n\nPrice: 0.005 USDC on Base (x402).","x-x402-price-usdc":"0.005","x-x402-amount":"5000","x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.005"}},"x-audience":"business","x-sample-url":"https://agents.writerslogic.com/api/v1/samples/calibration-coverage","security":[{"x402":[]},{"apiKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["certificate","use","asOf"],"properties":{"certificate":{"type":"object","required":["unit","ranges","calibratedOn"],"properties":{"unit":{"type":"string","minLength":1,"maxLength":24},"ranges":{"type":"array","minItems":1,"maxItems":50,"items":{"type":"object","required":["min","max"],"properties":{"min":{"type":"string","pattern":"^-?\\d{1,15}(\\.\\d{1,12})?$","maxLength":30,"description":"Decimal string such as \"-12.50\" (up to 15 integer and 12 fraction digits). JSON numbers are not accepted: they are binary floats."},"max":{"type":"string","pattern":"^-?\\d{1,15}(\\.\\d{1,12})?$","maxLength":30,"description":"Decimal string such as \"-12.50\" (up to 15 integer and 12 fraction digits). JSON numbers are not accepted: they are binary floats."},"uncertainty":{"type":"string","pattern":"^-?\\d{1,15}(\\.\\d{1,12})?$","maxLength":30,"description":"Expanded uncertainty over this range, absolute, in `unit`."}},"additionalProperties":false}},"calibratedOn":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Calendar date YYYY-MM-DD."},"validUntil":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Due date on the certificate, inclusive."},"intervalMonths":{"type":"integer","minimum":1,"maximum":120,"description":"Calibration interval when no due date is printed."}},"additionalProperties":false},"use":{"type":"object","required":["min","max","unit"],"properties":{"min":{"type":"string","pattern":"^-?\\d{1,15}(\\.\\d{1,12})?$","maxLength":30,"description":"Decimal string such as \"-12.50\" (up to 15 integer and 12 fraction digits). JSON numbers are not accepted: they are binary floats."},"max":{"type":"string","pattern":"^-?\\d{1,15}(\\.\\d{1,12})?$","maxLength":30,"description":"Decimal string such as \"-12.50\" (up to 15 integer and 12 fraction digits). JSON numbers are not accepted: they are binary floats."},"unit":{"type":"string","minLength":1,"maxLength":24},"requiredUncertainty":{"type":"string","pattern":"^-?\\d{1,15}(\\.\\d{1,12})?$","maxLength":30,"description":"Largest acceptable expanded uncertainty, absolute, in `unit`."},"usedOn":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Date of the measurement, when different from asOf."}},"additionalProperties":false},"asOf":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"The reference date for validity; required, never defaulted to today."}}},"example":{"certificate":{"unit":"bar","ranges":[{"min":"0","max":"100","uncertainty":"0.05"},{"min":"100","max":"200","uncertainty":"0.15"}],"calibratedOn":"2026-02-28","intervalMonths":12},"use":{"min":"20","max":"150","unit":"bar","requiredUncertainty":"0.2","usedOn":"2026-10-01"},"asOf":"2026-11-04"}}}},"responses":{"200":{"description":"Paid result with provenance","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"status":{"type":"string","enum":["pass","fail","unknown","unsupported"],"description":"pass: every rule held. fail: a rule was violated (see witnesses). unknown: the input lacks the evidence to decide. unsupported: outside what this engine covers. Missing evidence is never a pass."},"rangeCovered":{"type":"boolean"},"uncoveredSegments":{"type":"array","items":{"type":"object","properties":{"min":{"type":"string"},"max":{"type":"string"}}}},"worstUncertainty":{"type":"string","description":"Largest uncertainty among the calibrated ranges that overlap the intended use."},"dueDate":{"type":"string","description":"Date the calibration lapses (inclusive)."},"validOnAsOf":{"type":"boolean"},"validOnUse":{"type":"boolean"},"witnesses":{"type":"array","items":{"type":"object","properties":{"ruleId":{"type":"string"},"detail":{"type":"string"},"path":{"type":"string","description":"JSON pointer or dotted path into the input."},"offset":{"type":"integer"},"index":{"type":"integer"},"expected":{"description":"What the rule required."},"actual":{"description":"What the input had."}}}},"versions":{"type":"object","description":"Every semantic dependency of this answer (engine, tables and their as-of dates, tokenizer, calendar, rounding profile)."},"limits":{"type":"array","items":{"type":"string"}},"deterministic":{"type":"boolean","description":"Always true: pure code, no model."}}},"_provenance":{"type":"object","description":"C2PA-aligned manifest and W3C VC 2.0 (eddsa-jcs-2022) issued by the hub DID; verify at POST /api/v1/verify-provenance"}},"required":["data","_provenance"]}}}},"400":{"description":"Invalid request (no payment consumed)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"401":{"description":"Invalid X-API-KEY","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"402":{"description":"Payment required or invalid","content":{"application/json":{"schema":{"type":"object","description":"x402 v2 PaymentRequired (also base64 in the PAYMENT-REQUIRED header)","properties":{"x402Version":{"type":"integer"},"error":{"type":"string"},"code":{"type":"string"},"resource":{"type":"object"},"accepts":{"type":"array","items":{"type":"object"}},"extensions":{"type":"object"}}}}}},"502":{"description":"Upstream failure; the payment is released or not settled","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}}}},"links":{"docs":"https://agents.writerslogic.com/docs/calibration-coverage/","docsJson":"https://agents.writerslogic.com/docs/calibration-coverage.json","sample":"https://agents.writerslogic.com/api/v1/samples/calibration-coverage","openapi":"https://agents.writerslogic.com/openapi.json","catalog":"https://agents.writerslogic.com/api/v1/catalog","verifyProvenance":"https://agents.writerslogic.com/api/v1/verify-provenance","index":"https://agents.writerslogic.com/docs/index.json"}}