{"id":"storage-charge-clock","title":"Storage, demurrage or detention charge: free-time end date, chargeable days and tiered amount","description":"Counts days between a received date and a released date for storage, demurrage, detention or parking charges: you state whether the receipt day and the release day count, how free days are counted (calendar or business days on a named or caller calendar), and a tiered per-day rate schedule by chargeable day number; returns the last free day, chargeable days, a per-tier breakdown and the total in minor units, and checks an asserted total. It applies exactly the counting you declare and does not know any carrier's or warehouse's tariff, grace periods or caps; amounts are integer minor units with no tax or FX.","roi":"Whether the first day counts, whether weekends are free and where the rate steps up change the invoice; stating them makes the number checkable.","audience":"business","package":"calendar-deadline-kit","channels":["x402","mcp"],"endpoint":{"method":"POST","url":"https://agents.writerslogic.com/api/v1/storage-charge-clock","path":"/api/v1/storage-charge-clock","contentType":"application/json"},"price":{"amount":"0.005","currency":"USDC","network":"base","perCall":true,"failedCallsCharged":false},"inputSchema":{"type":"object","additionalProperties":false,"required":["receivedOn","releasedOn","receiptDayCounts","releaseDayCounts","freeDays","freeCounting","chargeCounting","tiers","currency"],"properties":{"receivedOn":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","maxLength":10},"releasedOn":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","maxLength":10},"receiptDayCounts":{"type":"boolean","description":"Whether the day of receipt is day 1."},"releaseDayCounts":{"type":"boolean","description":"Whether the release day is counted."},"freeDays":{"type":"integer","minimum":0,"maximum":3650},"freeCounting":{"type":"string","enum":["calendar","business"]},"chargeCounting":{"type":"string","enum":["calendar","business"],"description":"Whether chargeable days skip weekends/holidays."},"tiers":{"type":"array","minItems":1,"maxItems":20,"items":{"type":"object","required":["fromDay","rateMinor"],"properties":{"fromDay":{"type":"integer","minimum":1,"maximum":3650,"description":"Chargeable day number (1 = first day after free time) at which this rate starts; the first tier must start at 1."},"rateMinor":{"type":"integer","minimum":0,"maximum":1000000000,"description":"Charge per day in minor units (cents)."}}}},"currency":{"type":"string","pattern":"^[A-Z]{3}$","maxLength":3},"calendar":{"type":"string","enum":["us-federal","us-federal-reserve","nyse","us-equities-settlement","uk-england-and-wales","uk-scotland","uk-northern-ireland","weekends-only","caller"],"description":"Named holiday calendar with a source and supported date range (outside it the answer is unsupported), weekends-only (Saturday/Sunday only), or caller (only the holidays you list)."},"holidays":{"type":"array","maxItems":400,"items":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","maxLength":10},"description":"Extra non-business dates YYYY-MM-DD (company closures, a calendar we do not carry)."},"weekend":{"type":"array","maxItems":6,"items":{"type":"integer","minimum":0,"maximum":6},"description":"Non-business weekdays, 0=Sunday..6=Saturday. Default [0, 6]; use [5, 6] for a Friday/Saturday weekend."},"claimedChargeMinor":{"type":"integer","minimum":0,"maximum":9007199254740991}}},"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."},"lastFreeDay":{"type":"string"},"countedDays":{"type":"integer"},"chargeableDays":{"type":"integer"},"breakdown":{"type":"array","items":{"type":"object","properties":{"fromDay":{"type":"integer"},"toDay":{"type":"integer"},"days":{"type":"integer"},"rateMinor":{"type":"integer"},"amountMinor":{"type":"integer"}}}},"totalMinor":{"type":"integer"},"currency":{"type":"string"},"reason":{"type":"string"},"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."},"lastFreeDay":{"type":"string"},"countedDays":{"type":"integer"},"chargeableDays":{"type":"integer"},"breakdown":{"type":"array","items":{"type":"object","properties":{"fromDay":{"type":"integer"},"toDay":{"type":"integer"},"days":{"type":"integer"},"rateMinor":{"type":"integer"},"amountMinor":{"type":"integer"}}}},"totalMinor":{"type":"integer"},"currency":{"type":"string"},"reason":{"type":"string"},"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":{"receivedOn":"2026-11-02","releasedOn":"2026-11-20","receiptDayCounts":false,"releaseDayCounts":true,"freeDays":5,"freeCounting":"business","chargeCounting":"calendar","tiers":[{"fromDay":1,"rateMinor":7500},{"fromDay":6,"rateMinor":15000}],"currency":"USD","calendar":"us-federal"},"openapiOperation":{"operationId":"storage_charge_clock","summary":"Storage, demurrage or detention charge: free-time end date, chargeable days and tiered amount","description":"Counts days between a received date and a released date for storage, demurrage, detention or parking charges: you state whether the receipt day and the release day count, how free days are counted (calendar or business days on a named or caller calendar), and a tiered per-day rate schedule by chargeable day number; returns the last free day, chargeable days, a per-tier breakdown and the total in minor units, and checks an asserted total. It applies exactly the counting you declare and does not know any carrier's or warehouse's tariff, grace periods or caps; amounts are integer minor units with no tax or FX.\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/storage-charge-clock","security":[{"x402":[]},{"apiKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["receivedOn","releasedOn","receiptDayCounts","releaseDayCounts","freeDays","freeCounting","chargeCounting","tiers","currency"],"properties":{"receivedOn":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","maxLength":10},"releasedOn":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","maxLength":10},"receiptDayCounts":{"type":"boolean","description":"Whether the day of receipt is day 1."},"releaseDayCounts":{"type":"boolean","description":"Whether the release day is counted."},"freeDays":{"type":"integer","minimum":0,"maximum":3650},"freeCounting":{"type":"string","enum":["calendar","business"]},"chargeCounting":{"type":"string","enum":["calendar","business"],"description":"Whether chargeable days skip weekends/holidays."},"tiers":{"type":"array","minItems":1,"maxItems":20,"items":{"type":"object","required":["fromDay","rateMinor"],"properties":{"fromDay":{"type":"integer","minimum":1,"maximum":3650,"description":"Chargeable day number (1 = first day after free time) at which this rate starts; the first tier must start at 1."},"rateMinor":{"type":"integer","minimum":0,"maximum":1000000000,"description":"Charge per day in minor units (cents)."}}}},"currency":{"type":"string","pattern":"^[A-Z]{3}$","maxLength":3},"calendar":{"type":"string","enum":["us-federal","us-federal-reserve","nyse","us-equities-settlement","uk-england-and-wales","uk-scotland","uk-northern-ireland","weekends-only","caller"],"description":"Named holiday calendar with a source and supported date range (outside it the answer is unsupported), weekends-only (Saturday/Sunday only), or caller (only the holidays you list)."},"holidays":{"type":"array","maxItems":400,"items":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","maxLength":10},"description":"Extra non-business dates YYYY-MM-DD (company closures, a calendar we do not carry)."},"weekend":{"type":"array","maxItems":6,"items":{"type":"integer","minimum":0,"maximum":6},"description":"Non-business weekdays, 0=Sunday..6=Saturday. Default [0, 6]; use [5, 6] for a Friday/Saturday weekend."},"claimedChargeMinor":{"type":"integer","minimum":0,"maximum":9007199254740991}}},"example":{"receivedOn":"2026-11-02","releasedOn":"2026-11-20","receiptDayCounts":false,"releaseDayCounts":true,"freeDays":5,"freeCounting":"business","chargeCounting":"calendar","tiers":[{"fromDay":1,"rateMinor":7500},{"fromDay":6,"rateMinor":15000}],"currency":"USD","calendar":"us-federal"}}}},"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."},"lastFreeDay":{"type":"string"},"countedDays":{"type":"integer"},"chargeableDays":{"type":"integer"},"breakdown":{"type":"array","items":{"type":"object","properties":{"fromDay":{"type":"integer"},"toDay":{"type":"integer"},"days":{"type":"integer"},"rateMinor":{"type":"integer"},"amountMinor":{"type":"integer"}}}},"totalMinor":{"type":"integer"},"currency":{"type":"string"},"reason":{"type":"string"},"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/storage-charge-clock/","docsJson":"https://agents.writerslogic.com/docs/storage-charge-clock.json","sample":"https://agents.writerslogic.com/api/v1/samples/storage-charge-clock","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"}}