{
    "ok": true,
    "_meta": {
        "validator": "oppl_complex_asset_json_validator",
        "validator_version": "1.1.9",
        "captured_at_utc": "2026-08-09T12:01:26+00:00",
        "captured_unix": 1786276886,
        "input_source": "url",
        "input_url": "https://oppl.ai/llms/runs/etf/IE0003XI1PW0_balanced_latest.json",
        "source_assessment_hash": "32b294636faeac5922cb1fac9aebc4e4a2425179fb435331cc10962e99b673f2",
        "agent_enabled": true,
        "agent_provider": "openrouter",
        "agent_model": "gpt-4.1-mini",
        "agent_temperature": 0,
        "agent_max_tokens": 1800,
        "warn_short_agent": true,
        "validator_modes": {
            "deterministic": "executed",
            "agent": "executed"
        }
    },
    "isin": "IE0003XI1PW0",
    "classification": "complex",
    "policy_mode": "balanced",
    "decision_rule_applied": "balanced_etf_swap_complex_rule",
    "validator_verdict": "warn",
    "publishable": true,
    "confidence": 0.78,
    "issue_count": 3,
    "issues": [
        {
            "severity": "warn",
            "code": "core_derivatives_true_without_core_evidence",
            "message": "derivatives_core_strategy=true but no derivatives_core_strategy evidence item is present."
        },
        {
            "severity": "warn",
            "code": "non_decisive_hard_signal_without_direct_evidence_synthetic_replication",
            "message": "signals.synthetic_replication=true but no supporting_evidence quote directly substantiates that hard-complex feature. The signal is not used by decision_rule_applied and classification=complex is independently supported by: commodity_futures_roll, swaps."
        },
        {
            "severity": "warn",
            "code": "non_decisive_hard_signal_without_direct_evidence_contango_backwardation",
            "message": "signals.contango_backwardation=true but no supporting_evidence quote directly substantiates that hard-complex feature. The signal is not used by decision_rule_applied and classification=complex is independently supported by: commodity_futures_roll, swaps."
        }
    ],
    "suggested_repairs": [
        "Add supporting_evidence with signal=derivatives_core_strategy quoting the relevant strategy language.",
        "Remove or downgrade unsupported synthetic_replication, or add product-specific evidence for it. This is an evidence-quality repair and does not invalidate an independently supported complex classification.",
        "Remove or downgrade unsupported contango_backwardation, or add product-specific evidence for it. This is an evidence-quality repair and does not invalidate an independently supported complex classification.",
        "Add a supporting_evidence item with signal='derivatives_core_strategy' quoting relevant product-specific strategy language to substantiate the derivatives_core_strategy signal.",
        "Either remove or downgrade the synthetic_replication signal or add direct product-specific evidence supporting synthetic replication to improve evidence quality.",
        "Either remove or downgrade the contango_backwardation signal or add direct product-specific evidence supporting contango/backwardation to improve evidence quality."
    ],
    "deterministic_review": {
        "ok": true,
        "validator_type": "deterministic",
        "validator_verdict": "warn",
        "publishable": true,
        "confidence": 0.78,
        "issues": [
            {
                "severity": "warn",
                "code": "core_derivatives_true_without_core_evidence",
                "message": "derivatives_core_strategy=true but no derivatives_core_strategy evidence item is present."
            },
            {
                "severity": "warn",
                "code": "non_decisive_hard_signal_without_direct_evidence_synthetic_replication",
                "message": "signals.synthetic_replication=true but no supporting_evidence quote directly substantiates that hard-complex feature. The signal is not used by decision_rule_applied and classification=complex is independently supported by: commodity_futures_roll, swaps."
            },
            {
                "severity": "warn",
                "code": "non_decisive_hard_signal_without_direct_evidence_contango_backwardation",
                "message": "signals.contango_backwardation=true but no supporting_evidence quote directly substantiates that hard-complex feature. The signal is not used by decision_rule_applied and classification=complex is independently supported by: commodity_futures_roll, swaps."
            }
        ],
        "suggested_repairs": [
            "Add supporting_evidence with signal=derivatives_core_strategy quoting the relevant strategy language.",
            "Remove or downgrade unsupported synthetic_replication, or add product-specific evidence for it. This is an evidence-quality repair and does not invalidate an independently supported complex classification.",
            "Remove or downgrade unsupported contango_backwardation, or add product-specific evidence for it. This is an evidence-quality repair and does not invalidate an independently supported complex classification."
        ],
        "decisive_signal_evidence": {
            "checked": true,
            "decision_rule_signal": "swaps",
            "decision_rule_signal_true": true,
            "decision_rule_signal_supported": true,
            "decision_rule_matching_evidence_count": 2,
            "decision_rule_matches": [
                {
                    "index": 0,
                    "source": "KIID",
                    "evidence_signal": "synthetic_replication",
                    "quote": "The Fund will gain indirect exposure to the index components through the use of swaps."
                },
                {
                    "index": 1,
                    "source": "KIID",
                    "evidence_signal": "swaps",
                    "quote": "By entering into swap agreements with one or more banks whereby the Fund receives payments from the bank when the Index goes up and the Fund makes payments to the bank when the Index goes down."
                }
            ],
            "true_hard_signals": [
                "synthetic_replication",
                "commodity_futures_roll",
                "contango_backwardation"
            ],
            "supported_hard_signals": [
                "commodity_futures_roll"
            ],
            "unsupported_hard_signals": [
                "synthetic_replication",
                "contango_backwardation"
            ],
            "checks": {
                "synthetic_replication": {
                    "signal_true": true,
                    "direct_evidence": false,
                    "matching_evidence_count": 0,
                    "decision_rule_uses_signal": false,
                    "matches": []
                },
                "commodity_futures_roll": {
                    "signal_true": true,
                    "direct_evidence": true,
                    "matching_evidence_count": 1,
                    "decision_rule_uses_signal": false,
                    "matches": [
                        {
                            "index": 4,
                            "source": "FACTSHEET",
                            "evidence_signal": "contango_backwardation",
                            "quote": "The performance of commodity futures based indices may differ significantly from commodity spot prices."
                        }
                    ]
                },
                "contango_backwardation": {
                    "signal_true": true,
                    "direct_evidence": false,
                    "matching_evidence_count": 0,
                    "decision_rule_uses_signal": false,
                    "matches": []
                },
                "swaps": {
                    "signal_true": true,
                    "direct_evidence": true,
                    "matching_evidence_count": 2,
                    "decision_rule_uses_signal": true,
                    "matches": [
                        {
                            "index": 0,
                            "source": "KIID",
                            "evidence_signal": "synthetic_replication",
                            "quote": "The Fund will gain indirect exposure to the index components through the use of swaps."
                        },
                        {
                            "index": 1,
                            "source": "KIID",
                            "evidence_signal": "swaps",
                            "quote": "By entering into swap agreements with one or more banks whereby the Fund receives payments from the bank when the Index goes up and the Fund makes payments to the bank when the Index goes down."
                        }
                    ]
                }
            }
        },
        "derivative_materiality": {
            "checked": true,
            "policy_mode": "balanced",
            "type": "ETF",
            "ucits": true,
            "physical_replication": false,
            "swaps_signal": true,
            "synthetic_replication": true,
            "derivatives_core_strategy": true,
            "derivatives_epm_only": false,
            "derivative_evidence_count": 2,
            "swap_evidence_count": 2,
            "permission_or_ancillary_evidence_count": 0,
            "core_derivative_evidence_count": 1,
            "only_permission_or_ancillary_derivative_evidence": false,
            "supported_independent_hard_signals": [
                "commodity_futures_roll"
            ]
        },
        "detected_features": {
            "helo_or_core_options_overlay": false,
            "physical_replication": false,
            "has_epm_only_evidence": false,
            "has_core_derivatives_evidence": false,
            "has_generic_fdi_permission_evidence": false,
            "has_option_overlay_evidence": false
        }
    },
    "agent_review": {
        "ok": true,
        "model": "gpt-4.1-mini",
        "temperature": 0,
        "max_tokens": 1800,
        "usage": {
            "prompt_tokens": 4238,
            "completion_tokens": 480,
            "total_tokens": 4718,
            "raw": {
                "prompt_tokens": 4238,
                "completion_tokens": 480,
                "total_tokens": 4718,
                "cost": 0.0024632,
                "is_byok": false,
                "prompt_tokens_details": {
                    "cached_tokens": 0,
                    "cache_write_tokens": 0,
                    "audio_tokens": 0,
                    "video_tokens": 0
                },
                "cost_details": {
                    "upstream_inference_cost": 0.0024632,
                    "upstream_inference_prompt_cost": 0.0016952,
                    "upstream_inference_completions_cost": 0.000768
                },
                "completion_tokens_details": {
                    "reasoning_tokens": 0,
                    "image_tokens": 0,
                    "audio_tokens": 0
                }
            }
        },
        "cost": {
            "estimated": false,
            "actual_provider_cost_available": true,
            "model": "gpt-4.1-mini",
            "prompt_tokens": 4238,
            "completion_tokens": 480,
            "total_tokens": 4718,
            "input_cost_usd": 0.0016952,
            "output_cost_usd": 0.000768,
            "estimated_cost_usd": 0.0024632,
            "pricing_basis": "openrouter_usage_cost"
        },
        "review": {
            "validator_verdict": "warn",
            "publishable": true,
            "confidence": 0.88,
            "summary": "The classification as complex under the balanced_etf_swap_complex_rule is supported by direct product-specific swap evidence and commodity futures roll evidence. However, the derivatives_core_strategy signal is true but lacks direct supporting evidence, and two additional hard-complex signals (synthetic_replication and contango_backwardation) are unsupported by direct quotes. These unsupported signals are not used by the decision rule and do not invalidate the classification but should be addressed for evidence hygiene. No conflict exists between derivatives_epm_only and derivatives_core_strategy flags. The product is a UCITS ETF with synthetic replication and swap usage, consistent with balanced mode policy. The JSON is client-publishable as-is but would benefit from minor repairs.",
            "issues": [
                {
                    "severity": "warn",
                    "code": "core_derivatives_true_without_core_evidence",
                    "message": "derivatives_core_strategy=true but no supporting_evidence quote directly substantiates this signal."
                },
                {
                    "severity": "warn",
                    "code": "non_decisive_hard_signal_without_direct_evidence_synthetic_replication",
                    "message": "signals.synthetic_replication=true but no supporting_evidence quote directly substantiates this feature. The signal is not used by decision_rule_applied and classification=complex is independently supported by swaps and commodity_futures_roll."
                },
                {
                    "severity": "warn",
                    "code": "non_decisive_hard_signal_without_direct_evidence_contango_backwardation",
                    "message": "signals.contango_backwardation=true but no supporting_evidence quote directly substantiates this feature. The signal is not used by decision_rule_applied and classification=complex is independently supported by swaps and commodity_futures_roll."
                }
            ],
            "suggested_repairs": [
                "Add a supporting_evidence item with signal='derivatives_core_strategy' quoting relevant product-specific strategy language to substantiate the derivatives_core_strategy signal.",
                "Either remove or downgrade the synthetic_replication signal or add direct product-specific evidence supporting synthetic replication to improve evidence quality.",
                "Either remove or downgrade the contango_backwardation signal or add direct product-specific evidence supporting contango/backwardation to improve evidence quality."
            ]
        }
    }
}