{
  "schema_version": "1.3.0",
  "slug": "how-must-an-instance-bound-rounding-residual-so-party-shares-sum-to-the-total",
  "title": "How must an instance bound rounding residual so party shares sum to the total?",
  "date_of_record": "2026 November 2",
  "scope": "Applies to allocations of a total across multiple parties (fees, distributions, cost shares, royalties) where each party's share is computed and rounded, and the sum of rounded shares may differ from the rounded total. Does not apply to allocations where the total is derived from the shares (the sum is the total by construction).",
  "projections": {
    "unified_markdown_uri": "https://corpusfetch.com/c/how-must-an-instance-bound-rounding-residual-so-party-shares-sum-to-the-total.md",
    "method_python_slice_uri": "https://corpusfetch.com/c/how-must-an-instance-bound-rounding-residual-so-party-shares-sum-to-the-total.py",
    "remnant_warrant_slice_uri": "https://corpusfetch.com/c/how-must-an-instance-bound-rounding-residual-so-party-shares-sum-to-the-total.warrant.json"
  },
  "token_profile": {
    "full_markdown_tokens": 1111,
    "python_slice_tokens": 139,
    "warrant_slice_tokens": 220
  },
  "remnant_summary": {
    "core_distinction": "Rounding is idempotent for a single value but not distributive over a sum. `sum(round(x_i))` is generally not equal to `round(sum(x_i))`. If each party's share is rounded independently and the total is a separate figure, the shares will not sum to the total, and the discrepancy is not a computation error — it is the rounding operator failing to preserve the ...",
    "what_was_observed": "**Signature.** Sum of party shares differing from total by a small amount, stable in direction (always short, never over, if rounds toward zero) and accumulating across periods. Reconciliation that compares total-only misses the divergence; reconciliation that compares sum-of-shares to total catches it. **Trace.** Distribution of $10.00 to 3 parties equally. Each share: 3.333..., rounds to $3.33. Sum = $9.99. Total =...",
    "condition_of_validity": "The instance must ensure at least one holds before it treats shares as summing to the total: 1. **Must round the total first, then allocate residual.** The total is rounded first; shares are computed against the rounded total; the residual (if any) is assigned to a designated party by an explicit rule. 2. **Must use largest-remainder allocation.** Shares are...",
    "decision_boundary": "- Total rounded first, residual allocated to designated party: shares sum to total. - Largest-remainder allocation: shares sum to total; each party's share is within 1 unit of exact. - Residual in explicit account: shares sum to total minus residual, with residual visible. - Independent rounding without residual handling: shares do not sum to total; treat as...",
    "operational_effect": "The invariant couples a distributive operator (shares) to a rounding operator that does not preserve the total. The instance's correct posture is to round the total first, allocate the residual explicitly, and reconcile sum-of-shares against the total at every distribution. **Trap.** Round shares to more decimal places. More precision postpones the residual ..."
  },
  "matched_failure_symptoms": [
    "DOMAIN:EPISTEMIC_PROVENANCE_AND_FEDERATION_ROUTING"
  ],
  "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": "bdd6e9ce25f049a161a39fea0595307334842023ba726ee30d39ca7630958f0a",
    "verified_classes": [
      "RoundingResidualError",
      "RoundingGate"
    ],
    "verified_functions": [
      "dispatch_allocation_mode",
      "verify"
    ],
    "verified_functions_count": 2,
    "defensive_guards_count": 2,
    "raised_exceptions": [
      "RoundingResidualError"
    ],
    "sample_fail_closed_invariants": [
      "no shares to allocate"
    ],
    "stdlib_dependencies": [
      "dataclasses"
    ],
    "observation_mode": "EMPIRICAL_BOUNDARY_CAPTURE",
    "zero_external_deps": true
  }
}
