{
    "ok": true,
    "_meta": {
        "validator": "oppl_complex_asset_json_validator",
        "validator_version": "1.1.9",
        "captured_at_utc": "2026-08-09T12:05:56+00:00",
        "captured_unix": 1786277156,
        "input_source": "url",
        "input_url": "https://oppl.ai/llms/runs/etf/IE00BFXR6159_balanced_latest.json",
        "source_assessment_hash": "a72f220b6643da0c089a60f0451fc49825b18152e574c270c691fef55a266b0c",
        "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": "IE00BFXR6159",
    "classification": "complex",
    "policy_mode": "balanced",
    "decision_rule_applied": "balanced_etf_swap_complex_rule",
    "validator_verdict": "warn",
    "publishable": true,
    "confidence": 0.78,
    "issue_count": 2,
    "issues": [
        {
            "severity": "warn",
            "code": "non_decisive_hard_signal_without_direct_evidence_commodity_futures_roll",
            "message": "signals.commodity_futures_roll=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: synthetic_replication, contango_backwardation, swaps."
        },
        {
            "severity": "warn",
            "code": "non_decisive_hard_signal_without_direct_evidence_complex_index",
            "message": "signals.complex_index=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: synthetic_replication, contango_backwardation, swaps."
        }
    ],
    "suggested_repairs": [
        "Remove or downgrade unsupported commodity_futures_roll, 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 complex_index, 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 commodity_futures_roll signal, or add product-specific evidence for it to improve evidence quality.",
        "Remove or downgrade unsupported complex_index signal, or add product-specific evidence for it to improve evidence quality."
    ],
    "deterministic_review": {
        "ok": true,
        "validator_type": "deterministic",
        "validator_verdict": "warn",
        "publishable": true,
        "confidence": 0.78,
        "issues": [
            {
                "severity": "warn",
                "code": "non_decisive_hard_signal_without_direct_evidence_commodity_futures_roll",
                "message": "signals.commodity_futures_roll=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: synthetic_replication, contango_backwardation, swaps."
            },
            {
                "severity": "warn",
                "code": "non_decisive_hard_signal_without_direct_evidence_complex_index",
                "message": "signals.complex_index=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: synthetic_replication, contango_backwardation, swaps."
            }
        ],
        "suggested_repairs": [
            "Remove or downgrade unsupported commodity_futures_roll, 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 complex_index, 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": 6,
            "decision_rule_matches": [
                {
                    "index": 0,
                    "source": "PRIIPS_KID",
                    "evidence_signal": "synthetic_replication",
                    "quote": "The Fund achieves exposure to the performance of the Index primarily through the use of financial derivative instruments, in particular total return swap agreements."
                },
                {
                    "index": 1,
                    "source": "FACTSHEET",
                    "evidence_signal": "synthetic_replication",
                    "quote": "Replication method: Synthetic - unfunded swap backed by collateral"
                },
                {
                    "index": 2,
                    "source": "KIID",
                    "evidence_signal": "swaps",
                    "quote": "the Company will primarily enter into \"total return swap\" agreements with one or more \"swap counterparties\""
                },
                {
                    "index": 3,
                    "source": "KIID",
                    "evidence_signal": "unfunded_swap",
                    "quote": "The swap arrangements are \"unfunded\" which means that the Fund retains all investor subscription money (rather than transferring it to the swap counterparty) and invests it in a diversified portfolio of low risk assets."
                },
                {
                    "index": 4,
                    "source": "KIID",
                    "evidence_signal": "derivatives_core_strategy",
                    "quote": "In order to provide the Share Class with exposure to the Index, the Company will primarily enter into \"total return swap\" agreements with one or more \"swap counterparties\""
                },
                {
                    "index": 8,
                    "source": "KIID",
                    "evidence_signal": "counterparty_risk",
                    "quote": "If a swap counterparty is no longer willing or able to continue entering into swaps with the Fund, the Fund may not be able to continue tracking the Index and may need to close."
                }
            ],
            "true_hard_signals": [
                "synthetic_replication",
                "commodity_futures_roll",
                "contango_backwardation",
                "complex_index"
            ],
            "supported_hard_signals": [
                "synthetic_replication",
                "contango_backwardation"
            ],
            "unsupported_hard_signals": [
                "commodity_futures_roll",
                "complex_index"
            ],
            "checks": {
                "synthetic_replication": {
                    "signal_true": true,
                    "direct_evidence": true,
                    "matching_evidence_count": 1,
                    "decision_rule_uses_signal": false,
                    "matches": [
                        {
                            "index": 1,
                            "source": "FACTSHEET",
                            "evidence_signal": "synthetic_replication",
                            "quote": "Replication method: Synthetic - unfunded swap backed by collateral"
                        }
                    ]
                },
                "commodity_futures_roll": {
                    "signal_true": true,
                    "direct_evidence": false,
                    "matching_evidence_count": 0,
                    "decision_rule_uses_signal": false,
                    "matches": []
                },
                "contango_backwardation": {
                    "signal_true": true,
                    "direct_evidence": true,
                    "matching_evidence_count": 2,
                    "decision_rule_uses_signal": false,
                    "matches": [
                        {
                            "index": 6,
                            "source": "KIID",
                            "evidence_signal": "contango_backwardation",
                            "quote": "Barclays Backwardation Tilt Multi-Strategy Capped Total Return Index"
                        },
                        {
                            "index": 7,
                            "source": "KIID",
                            "evidence_signal": "complex_index",
                            "quote": "Barclays Backwardation Tilt Multi-Strategy Capped Total Return Index"
                        }
                    ]
                },
                "complex_index": {
                    "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": 6,
                    "decision_rule_uses_signal": true,
                    "matches": [
                        {
                            "index": 0,
                            "source": "PRIIPS_KID",
                            "evidence_signal": "synthetic_replication",
                            "quote": "The Fund achieves exposure to the performance of the Index primarily through the use of financial derivative instruments, in particular total return swap agreements."
                        },
                        {
                            "index": 1,
                            "source": "FACTSHEET",
                            "evidence_signal": "synthetic_replication",
                            "quote": "Replication method: Synthetic - unfunded swap backed by collateral"
                        },
                        {
                            "index": 2,
                            "source": "KIID",
                            "evidence_signal": "swaps",
                            "quote": "the Company will primarily enter into \"total return swap\" agreements with one or more \"swap counterparties\""
                        },
                        {
                            "index": 3,
                            "source": "KIID",
                            "evidence_signal": "unfunded_swap",
                            "quote": "The swap arrangements are \"unfunded\" which means that the Fund retains all investor subscription money (rather than transferring it to the swap counterparty) and invests it in a diversified portfolio of low risk assets."
                        },
                        {
                            "index": 4,
                            "source": "KIID",
                            "evidence_signal": "derivatives_core_strategy",
                            "quote": "In order to provide the Share Class with exposure to the Index, the Company will primarily enter into \"total return swap\" agreements with one or more \"swap counterparties\""
                        },
                        {
                            "index": 8,
                            "source": "KIID",
                            "evidence_signal": "counterparty_risk",
                            "quote": "If a swap counterparty is no longer willing or able to continue entering into swaps with the Fund, the Fund may not be able to continue tracking the Index and may need to close."
                        }
                    ]
                }
            }
        },
        "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": 6,
            "swap_evidence_count": 6,
            "permission_or_ancillary_evidence_count": 0,
            "core_derivative_evidence_count": 3,
            "only_permission_or_ancillary_derivative_evidence": false,
            "supported_independent_hard_signals": [
                "synthetic_replication",
                "contango_backwardation"
            ]
        },
        "detected_features": {
            "helo_or_core_options_overlay": false,
            "physical_replication": false,
            "has_epm_only_evidence": false,
            "has_core_derivatives_evidence": true,
            "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": 5095,
            "completion_tokens": 452,
            "total_tokens": 5547,
            "raw": {
                "prompt_tokens": 5095,
                "completion_tokens": 452,
                "total_tokens": 5547,
                "cost": 0.0027612,
                "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.0027612,
                    "upstream_inference_prompt_cost": 0.002038,
                    "upstream_inference_completions_cost": 0.0007232
                },
                "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": 5095,
            "completion_tokens": 452,
            "total_tokens": 5547,
            "input_cost_usd": 0.002038,
            "output_cost_usd": 0.0007232,
            "estimated_cost_usd": 0.0027612,
            "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 well supported by direct product-specific evidence of swaps and synthetic replication, which are the decision-driving hard-complex signals. The derivatives_core_strategy signal is directly proven by multiple swap-related quotes. There is no conflict between derivatives_epm_only (false) and derivatives_core_strategy (true). The derivative wording proves actual/material exposure and a core derivative strategy, consistent with balanced mode policy. HELO or option overlay strategies are not present, so no reclassification needed. However, two additional hard-complex signals (commodity_futures_roll and complex_index) lack direct supporting evidence and are not used by the decision rule, resulting in warnings. These unsupported signals do not invalidate the classification but should be repaired by removing or substantiating them. The supporting evidence signal labels correctly match their quotes. The JSON is internally consistent and client-publishable as-is.",
            "issues": [
                {
                    "severity": "warn",
                    "code": "non_decisive_hard_signal_without_direct_evidence_commodity_futures_roll",
                    "message": "signals.commodity_futures_roll=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: synthetic_replication, contango_backwardation, swaps."
                },
                {
                    "severity": "warn",
                    "code": "non_decisive_hard_signal_without_direct_evidence_complex_index",
                    "message": "signals.complex_index=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: synthetic_replication, contango_backwardation, swaps."
                }
            ],
            "suggested_repairs": [
                "Remove or downgrade unsupported commodity_futures_roll signal, or add product-specific evidence for it to improve evidence quality.",
                "Remove or downgrade unsupported complex_index signal, or add product-specific evidence for it to improve evidence quality."
            ]
        }
    }
}