{
  "schema_version": "1.3.0",
  "slug": "what-distinguishes-compounding-fee-bases-when-fee-cascades-are-percentage-of-percentage",
  "title": "What distinguishes compounding fee bases when fee cascades are percentage-of-percentage?",
  "date_of_record": "2026 November 2",
  "scope": "Applies to fee structures where multiple percentage fees are stacked (advisory fee on principal, performance fee on gains, transaction fee on trade value, administration fee on assets under management) and each fee's base may or may not include fees already charged. Does not apply to flat-fee structures or single-fee structures.",
  "projections": {
    "unified_markdown_uri": "https://corpusfetch.com/c/what-distinguishes-compounding-fee-bases-when-fee-cascades-are-percentage-of-percentage.md",
    "method_python_slice_uri": "https://corpusfetch.com/c/what-distinguishes-compounding-fee-bases-when-fee-cascades-are-percentage-of-percentage.py",
    "remnant_warrant_slice_uri": "https://corpusfetch.com/c/what-distinguishes-compounding-fee-bases-when-fee-cascades-are-percentage-of-percentage.warrant.json"
  },
  "token_profile": {
    "full_markdown_tokens": 1058,
    "python_slice_tokens": 145,
    "warrant_slice_tokens": 220
  },
  "remnant_summary": {
    "core_distinction": "The distinction is between **fee base = principal only** and **fee base = principal + accumulated fees**. Both are legitimate; they produce different totals. A fee structure that does not state its base is ambiguous, and the parties can apply different bases and both be correct. **Invariant.** The cascade is agreed if and only if for every fee `f_i`, the bas...",
    "what_was_observed": "**Signature.** Total fees differing between parties by an amount that scales with the number of fee layers. Each individual fee computation is checked and correct. The discrepancy appears only at the total, and it correlates with the number of stacked percentage fees, not with any single fee. **Trace.** Principal $100M. Advisory fee 1% → $1M. Gains $10M. Performance fee 20%. If performance fee is on gains gross of ad...",
    "condition_of_validity": "The instance must ensure at least one holds before it treats a fee cascade as agreed: 1. **Must state the base per fee.** Every fee in the cascade states its base explicitly, from the taxonomy `{principal_only, principal_plus_prior_fees, gross_of_all_fees}`; \"fees are deducted from gains\" is not sufficient. 2. **Must state the cascade order.** The order in w...",
    "decision_boundary": "- Every fee base explicit, cascade order explicit: agreed. - Bases explicit, cascade order not: partially agreed; the total is order-dependent and the parties may apply different orders. - Bases not explicit: not agreed; each party applies its own reasonable interpretation. - Cascade has only one fee: no ambiguity; base selection is irrelevant to the cascade...",
    "operational_effect": "The invariant couples the sum of percentage fees to a base selection that is often implicit. The instance's correct posture is to state each fee's base and the cascade order at contract execution, and to compute against the stated bases, not against reasonable defaults. **Trap.** Compute performance fees net of advisory fees because it is \"fairer\". Fairer is..."
  },
  "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": "514cbda883f57dd9a2f6f5a1434243eb5d3f87ed42a64e431e9abd4d66193e65",
    "verified_classes": [
      "CompoundingBaseError",
      "FeeCascadeGate"
    ],
    "verified_functions": [
      "dispatch_fee_mode",
      "verify"
    ],
    "verified_functions_count": 2,
    "defensive_guards_count": 3,
    "raised_exceptions": [
      "CompoundingBaseError"
    ],
    "sample_fail_closed_invariants": [
      "fee sets differ between instance and counterparty"
    ],
    "stdlib_dependencies": [
      "dataclasses",
      "typing"
    ],
    "observation_mode": "EMPIRICAL_BOUNDARY_CAPTURE",
    "zero_external_deps": true
  }
}
