{
  "tool_id": "art-683-consolidation-cta-minority-interest",
  "note": "worked example (parity pin 29713a75d87ece357de41777c93e491acf3c752216ca9f4fbb3007b924f42c49 from CONSOLIDATION-CTA-BUILD-SPEC.md), the opposite-verdict vector (out-of-domain ownership 150 refused: CONSOLIDATION_REFUSED), a fractional rounding vector exercising 2dp half-up, a zero-CTA half split, and an everything-missing fail-closed refusal path. human_sign_off: PENDING.",
  "vectors": [
    {
      "name": "worked_example_parity",
      "policy_parameters": {
        "sub_equity_fc": 100000,
        "rate_current": 1.1,
        "rate_historical": 1,
        "parent_ownership_pct": 80
      },
      "output_payload": {
        "equity_at_current": 110000,
        "equity_at_historical": 100000,
        "cta": 10000,
        "parent_share": 88000,
        "minority_interest": 22000,
        "trace": "110000-100000=10000 CTA; split 80/20 of 110000",
        "overall": "CONSOLIDATION_COMPUTED"
      },
      "golden_hash": "29713a75d87ece357de41777c93e491acf3c752216ca9f4fbb3007b924f42c49"
    },
    {
      "name": "opposite_verdict_refused",
      "policy_parameters": {
        "sub_equity_fc": 100000,
        "rate_current": 1.1,
        "rate_historical": 1,
        "parent_ownership_pct": 150
      },
      "output_payload": {
        "equity_at_current": null,
        "equity_at_historical": null,
        "cta": null,
        "parent_share": null,
        "minority_interest": null,
        "trace": "fail-closed: parent_ownership_pct must be a finite number strictly between 0 and 100 (declared parent ownership percentage); no consolidation computed -- correct the named inputs and resubmit. Consolidation translation and split arithmetic over caller-declared synthetic inputs only: not accounting advice, not a framework-conformance determination, and not a filing.",
        "overall": "CONSOLIDATION_REFUSED",
        "domain_errors": [
          "INVALID_OWNERSHIP"
        ]
      },
      "golden_hash": "e48264e3a71370c5e9684e5eb5ee839f181041a6d2c9f992c0d0aee0dd3a0552"
    },
    {
      "name": "fractional_rounding",
      "policy_parameters": {
        "sub_equity_fc": 33333.335,
        "rate_current": 1.07,
        "rate_historical": 0.91,
        "parent_ownership_pct": 66.5
      },
      "output_payload": {
        "equity_at_current": 35666.67,
        "equity_at_historical": 30333.33,
        "cta": 5333.34,
        "parent_share": 23718.34,
        "minority_interest": 11948.33,
        "trace": "35666.67-30333.33=5333.34 CTA; split 66.5/33.5 of 35666.67",
        "overall": "CONSOLIDATION_COMPUTED"
      },
      "golden_hash": "649605247c10dd5aa5909ecbb72c5db2a00be002253f4542542fedeb9a9eb138"
    },
    {
      "name": "zero_cta_half_split",
      "policy_parameters": {
        "sub_equity_fc": 75000.5,
        "rate_current": 1,
        "rate_historical": 1,
        "parent_ownership_pct": 50
      },
      "output_payload": {
        "equity_at_current": 75000.5,
        "equity_at_historical": 75000.5,
        "cta": 0,
        "parent_share": 37500.25,
        "minority_interest": 37500.25,
        "trace": "75000.5-75000.5=0 CTA; split 50/50 of 75000.5",
        "overall": "CONSOLIDATION_COMPUTED"
      },
      "golden_hash": "a5fc7f93d3c42ecd70f9878a82db3a3e9c6943fa4ce8c1bf9d3f93646782b63e"
    },
    {
      "name": "fail_closed_empty_inputs",
      "policy_parameters": {},
      "output_payload": {
        "equity_at_current": null,
        "equity_at_historical": null,
        "cta": null,
        "parent_share": null,
        "minority_interest": null,
        "trace": "fail-closed: sub_equity_fc must be a finite number greater than 0 (subsidiary equity in functional currency); rate_current must be a finite number greater than 0 (declared current translation rate); rate_historical must be a finite number greater than 0 (declared historical translation rate); parent_ownership_pct must be a finite number strictly between 0 and 100 (declared parent ownership percentage); no consolidation computed -- correct the named inputs and resubmit. Consolidation translation and split arithmetic over caller-declared synthetic inputs only: not accounting advice, not a framework-conformance determination, and not a filing.",
        "overall": "CONSOLIDATION_REFUSED",
        "domain_errors": [
          "INVALID_SUB_EQUITY",
          "INVALID_RATE_CURRENT",
          "INVALID_RATE_HISTORICAL",
          "INVALID_OWNERSHIP"
        ]
      },
      "golden_hash": "f80367efae07796021d9b413c4df7d3f8569240f27a497353ee7c869a91db113"
    }
  ]
}
