DESIGN — Proof of Good Care (PoGC) for ShipTime + Warehowz

Status: Prototype built (src/care-document.js, runs --demo) Date: 2026-06-01 Audience: Austin Lewis / PAID, Inc. (ShipTime + Warehowz) + Rich Wheeless (Rootz CFO)


1. The thesis in one sentence

After Montgomery v. Caribe Transport (9-0, May 14 2026), every party in a shipment owes a documentable duty of care, and the absence of a record is itself evidence of negligence — so the shipping document needs to stop being a label and start being a signed, court-ready proof of care that travels with the goods.

PAID, Inc. is one of the only companies positioned to issue that document, because it owns both ends of the lifecycle:

  • ShipTime sits at the carrier-selection + label moment → the broker liability surface.
  • Warehowz sits at the storage/custody moment → the warehouse bailment surface.
  • No one else in the SMB shipping market (Shippo, ShipStation, EasyPost) touches both. That overlap is the moat.


    2. The four duties of care (and the law behind each)

    freight.rootz.global already produces the selection receipt. PoGC extends it across all four:

    StageWho owes the dutyLegal authorityEvidence that discharges it
    Carrier selectionBrokerMontgomery v. Caribe 608 U.S. ___ (2026)FMCSA vetting record + risk score + timestamp + hash
    Custody / handlingCarrierCarmack Amendment, 49 U.S.C. §14706Condition at tender + at delivery (prima facie case)
    StorageWarehouseUCC Art. 7, §7-204 (reasonable care / bailment)Condition in + condition out + storage conditions
    DocumentationEveryoneMontgomery: "no record = evidence of negligence"A complete, unbroken, tamper-evident chain

    The existing vetting-record.js already covers row 1 perfectly. PoGC adds rows 2–4 and binds all four into one document.


    3. What we built

    src/care-document.js — a hash-chained duty-of-care ledger:

  • createCareDocument(shipment, parties, {vetting}) — opens the document (ShipTime, at label time). If a vetting-record.js result is passed, the Montgomery CARRIER_SELECTION event is seeded automatically.
  • appendCareEvent(doc, stage, entry) — adds a custody handoff. Each event stores its evidence + prev_hash and computes its own event_hash, so the ledger is a tamper-evident chain (same SHA-256 spine as attestation.js).
  • scoreCare(doc) — a 0–100 Care Score (Grade A–F): the at-a-glance number an insurer, court, or AI agent reads to answer "was this handled with documented care?"
  • verifyCareDocument(doc) — re-derives every hash. Anyone can verify with nothing but SHA-256 — no Rootz account, no API key, no trust in us.
  • renderCertificate(doc) — human-readable certificate (and the basis for the PDF/printed BOL addendum).
  • The demo runs a $48K reefer load of strawberries: brokered → tendered → picked up → warehoused (in/out) → delivered, scores 100/100 (Grade A), then proves the chain breaks the instant someone backdates the warehouse temperature.

    This mirrors what's already real in the codebase: the PWA captures condition photos, seals, temps, and VINs in the field; PoGC is the structure those captures sign into.


    4. How it plugs into PAID's stack

    `` SHIPPER ──┐ │ ShipTime quote + label (PAID Inc) ▼ ┌─────────────────────────────────────────────────────────┐ │ ShipTime label API │ │ → calls FreightProof createVettingRecord(carrierDOT) │ ← Montgomery defense │ → createCareDocument(shipment, parties, {vetting}) │ ← opens PoGC │ → prints PoGC QR + URL onto the shipping label │ └─────────────────────────────────────────────────────────┘ │ PWA (driver / dock) appendCareEvent: ORIGIN_TENDER, PICKUP_HANDOFF, DELIVERY │ ┌─────────────────────────────────────────────────────────┐ │ Warehowz deal (when a load is stored) │ │ → appendCareEvent: WAREHOUSE_IN / WAREHOUSE_OUT │ ← UCC §7-204 bailment │ → condition, seal, temp log, photos from the dock app │ └─────────────────────────────────────────────────────────┘ │ ▼ PoGC document, hash-chained + Care Score, anchored on Polygon Resolvable + verifiable at freight.rootz.global/care/{id} `

    Three integration points, smallest first:

  • Label-time hook (ShipTime) — one API call when a label is generated seeds the document with the Montgomery vetting record and stamps a QR on the label. This alone is a sellable product: every ShipTime label becomes a defensible carrier-selection receipt.
  • Dock capture (PWA, already built) — the existing inspection/photo/seal capture in pwa/ appends tender/pickup/delivery events. No new app — a new capture mode.
  • Warehowz custody (warehouse API) — Warehowz intake/outtake appends the bailment events. This is the piece only PAID can offer and the reason the document is end-to-end.

  • 5. Why each PAID stakeholder cares

  • ShipTime — turns a free label tool into a liability-defense product brokers and shippers will pay for. Differentiates vs. Shippo/ShipStation, who can't touch carrier vetting or warehouse care.
  • Warehowz — every storage deal now emits a UCC §7-204 bailment receipt automatically; reduces the warehouse operators' ("Howzers'") own exposure and is a selling point to "Shipperz."
  • PAID, Inc. (public co) — a data-intelligence product line (exactly the pivot Lance Healy's board appointment signals), with a verifiable, ownable trust layer underneath. Good Origin/IR story too.
  • Insurers — the Care Score is an underwriting signal: documented-care shipments are lower-risk claims. Opens a premium-share or referral model.

  • 6. Why Rootz, specifically

    The document is self-verifying — anyone re-runs SHA-256 and confirms it, no Rootz dependency. That is the whole point and the reason a court accepts it. Rootz's role:

  • Issue + anchor — open the document, hash-chain events, anchor the root on Polygon (reuse attestation.js root-hash + the PQ wallet's Merkle/epoch work).
  • Carrier truth — the 12.8M-record FMCSA database already behind FreightProof powers the selection event.
  • Portability — the PoGC is a data-wallet object: it belongs to the shipper, travels across any AI agent, and isn't locked to ShipTime. (Right-to-Encrypt thesis, applied to a shipment.)
  • This is the same Rootz pattern as Origin and the data wallet: we make the proof easy to create; the proof stands on its own without us.


    7. Build sequence

    PhaseWorkOutput
    0 — donecare-document.js ledger + score + verify + demoRunnable prototype
    1 — donecare_documents table, care-store.js, server routes (/care/:id HTML + .json, POST /api/care, /event, /verify, /demo`)Shareable, verifiable document — live
    2ShipTime label-time hook (vetting → PoGC → QR on label)Sellable selection-receipt product
    3PWA capture mode → appendCareEvent for tender/pickup/deliveryField-signed handoffs
    4Warehowz intake/outtake → WAREHOUSE_IN/OUT eventsEnd-to-end, PAID-only differentiator
    5Polygon anchor of chain_root (reuse attestation.js + PQ Merkle)Court-grade immutability
    6Insurer Care-Score feedUnderwriting / premium-share revenue


    8. The pitch line for the call

    > "ShipTime already prints the label. Warehowz already holds the goods. After Montgomery, the one thing missing is the proof that everyone in the chain took care — and you're the only shipping company that touches every point where that proof is made. We make that document, it travels with the freight, and it holds up in court because anyone can verify it without trusting us. Print it on the label you already print."