{
  "schema_version": "1.3.0",
  "slug": "what-invariants-prevent-a-liquidated-damages-cap-from-undercompensating-actual-loss",
  "title": "What invariants prevent a liquidated-damages cap from undercompensating actual loss?",
  "date_of_record": "2026 November 2",
  "scope": "Applies to contracts with stipulated-damages clauses where the cap is fixed at signing and harm is realized later. Does not apply to actual-damages-only remedies, or caps verified to exceed p99 foreseeable harm at breach time.",
  "projections": {
    "unified_markdown_uri": "https://corpusfetch.com/c/what-invariants-prevent-a-liquidated-damages-cap-from-undercompensating-actual-loss.md",
    "method_python_slice_uri": "https://corpusfetch.com/c/what-invariants-prevent-a-liquidated-damages-cap-from-undercompensating-actual-loss.py",
    "remnant_warrant_slice_uri": "https://corpusfetch.com/c/what-invariants-prevent-a-liquidated-damages-cap-from-undercompensating-actual-loss.warrant.json"
  },
  "token_profile": {
    "full_markdown_tokens": 892,
    "python_slice_tokens": 99,
    "warrant_slice_tokens": 220
  },
  "remnant_summary": {
    "core_distinction": "Stipulated damages serve two purposes: to simplify proof of loss, and to cap the breaching party's exposure. An instance that treats the cap as authoritative at breach time cannot detect when the cap has become smaller than the harm the non-breaching party will actually suffer. **Invariant.** The cap is adequate if and only if `liquidated_damages_cap >= fore...",
    "what_was_observed": "**Signature.** Recovery payment visibly smaller than the harm flowing from breach. The non-breaching party's post-breach financials show a gap that correlates with volume growth or dependency depth since signing, not with breach magnitude. **Trace.** Cap set at signing to $100,000 against p99 = $20,000 per breach and expected 3 breaches per year. At breach time, volume has doubled and latency tolerance tightened: har...",
    "condition_of_validity": "The instance must ensure at least one holds before it treats the cap as adequate: 1. **Must re-evaluate at breach time.** The cap is compared against the p99 of the harm distribution at breach, not the distribution at signing. 2. **Must record drift.** The `harm-distribution-drift-signature` is maintained, and any shift beyond the contract's tolerance band t...",
    "decision_boundary": "- `cap >= harm_p99 * expected_count` at breach time: adequate. - `cap < required` but drift within tolerance: undercompensation is bounded, cap holds. - `cap < required` and drift has crossed tolerance: the instance must escalate for renegotiation or accept the gap as priced risk. - Adequacy has never been re-evaluated since signing: unknown; check before re...",
    "operational_effect": "The invariant couples a figure set at signing to a distribution that moves continuously. The instance's correct posture is to treat the cap as an upper bound on recovery, not a measure of adequacy, and to re-derive adequacy at each breach. **Trap.** Increase the cap at signing. That addresses the projected distribution, not the actual one — a larger cap set ..."
  },
  "matched_failure_symptoms": [
    "DUPLICATE_MUTATION_OR_BILLING"
  ],
  "composition_edges": {
    "primary_domain": "epistemic_provenance_and_federation_routing",
    "upstream_precondition_residuals": [
      "https://corpusfetch.com/c/according-to-what-precedence-hierarchy-must-an-instance-resolve-contradictory-directives-across-system-developer-and-user-tiers.md",
      "https://corpusfetch.com/c/how-should-an-instance-decide-that-a-stored-conclusion-has-gone-stale-without-a-new-observation.md"
    ],
    "downstream_consequence_residuals": [
      "https://corpusfetch.com/c/by-what-checkpoint-and-compaction-boundaries-must-an-instance-externalize-working-state-to-prevent-context-window-drift-and-truncation-amnesia.md",
      "https://corpusfetch.com/c/across-what-additive-schema-and-unknown-field-preservation-boundaries-must-an-instance-evolve-wire-contracts-to-prevent-rolling-deploy-deserialization-crashes.md"
    ],
    "co_occurring_sibling_residuals": [
      "https://corpusfetch.com/c/how-can-an-instance-capture-implicit-user-preferences-without-storing-private-data.md",
      "https://corpusfetch.com/c/how-can-an-instance-compress-long-reasoning-traces-into-binding-conclusions.md"
    ]
  },
  "empirical_verification_warrant": {
    "status": "AST_AND_INVARIANT_VERIFIED",
    "syntax_valid": true,
    "code_sha256": "1477464e2c52a3c214ed1369ffde66a84804fec96fb45c950c4481134ff17875",
    "verified_classes": [
      "UndercompensationCapError",
      "DamagesCapGate"
    ],
    "verified_functions": [
      "dispatch_recovery_mode",
      "verify"
    ],
    "verified_functions_count": 2,
    "defensive_guards_count": 1,
    "raised_exceptions": [
      "UndercompensationCapError"
    ],
    "sample_fail_closed_invariants": [],
    "stdlib_dependencies": [
      "dataclasses"
    ],
    "observation_mode": "EMPIRICAL_BOUNDARY_CAPTURE",
    "zero_external_deps": true
  }
}
