{
    "ok": true,
    "_meta": {
        "validator": "oppl_complex_asset_json_validator",
        "validator_version": "1.1.17",
        "captured_at_utc": "2026-08-09T17:46:31+00:00",
        "captured_unix": 1786297591,
        "input_source": "url",
        "input_url": "https://oppl.ai/llms/runs/etf/IE00BD4TY451_ucits_default_latest.json",
        "source_assessment_hash": "5658a150c384253f04a8d5e5e60aaabb7e137718565e48408c7ae2e0320d5f22",
        "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": "IE00BD4TY451",
    "classification": "non-complex",
    "policy_mode": "ucits_default",
    "decision_rule_applied": "etf_ucits_physical_no_complex_override_rule",
    "source_classification": null,
    "source_decision_rule_applied": null,
    "resolution": {
        "applied": false
    },
    "validator_verdict": "warn",
    "publishable": true,
    "confidence": 0.78,
    "issue_count": 3,
    "issues": [
        {
            "severity": "warn",
            "code": "unsubstantiated_hard_signal_on_non_complex_synthetic_replication",
            "message": "signals.synthetic_replication=true but no supporting_evidence quote directly substantiates that hard-complex feature. Because the signal itself is not evidentially substantiated, it must not be used by the validator to overturn an otherwise coherent non-complex classification."
        },
        {
            "severity": "warn",
            "code": "unsubstantiated_swap_signal_on_non_complex",
            "message": "signals.swaps=true but no supporting evidence quote directly mentions a swap, TRS or CFD. Because the swap flag is unsubstantiated and is not used by decision_rule_applied, it must not be used to overturn an otherwise coherent non-complex classification."
        },
        {
            "severity": "warn",
            "code": "physical_rule_without_direct_physical_evidence",
            "message": "decision_rule_applied explicitly asserts physical replication, but no product-specific supporting evidence quote directly substantiates physical/direct replication. This is a rule-specificity evidence gap and does not by itself invalidate an otherwise coherent non-complex classification."
        }
    ],
    "suggested_repairs": [
        "Remove or downgrade unsupported synthetic_replication, or add product-specific evidence for it. Until supported, treat it as an evidence-quality flag rather than a classification contradiction.",
        "Remove or correct the unsupported signals.swaps=true flag, or add direct product-specific swap/TRS/CFD evidence. Until supported, treat it as an evidence-quality warning rather than a classification contradiction.",
        "Add product-specific physical/direct replication evidence, or use a more general UCITS no-complex-override rule that does not assert physical replication."
    ],
    "reassessment": {
        "required": false
    },
    "deterministic_review": {
        "ok": true,
        "validator_type": "deterministic",
        "validator_verdict": "warn",
        "publishable": true,
        "confidence": 0.78,
        "issues": [
            {
                "severity": "warn",
                "code": "unsubstantiated_hard_signal_on_non_complex_synthetic_replication",
                "message": "signals.synthetic_replication=true but no supporting_evidence quote directly substantiates that hard-complex feature. Because the signal itself is not evidentially substantiated, it must not be used by the validator to overturn an otherwise coherent non-complex classification."
            },
            {
                "severity": "warn",
                "code": "unsubstantiated_swap_signal_on_non_complex",
                "message": "signals.swaps=true but no supporting evidence quote directly mentions a swap, TRS or CFD. Because the swap flag is unsubstantiated and is not used by decision_rule_applied, it must not be used to overturn an otherwise coherent non-complex classification."
            },
            {
                "severity": "warn",
                "code": "physical_rule_without_direct_physical_evidence",
                "message": "decision_rule_applied explicitly asserts physical replication, but no product-specific supporting evidence quote directly substantiates physical/direct replication. This is a rule-specificity evidence gap and does not by itself invalidate an otherwise coherent non-complex classification."
            }
        ],
        "suggested_repairs": [
            "Remove or downgrade unsupported synthetic_replication, or add product-specific evidence for it. Until supported, treat it as an evidence-quality flag rather than a classification contradiction.",
            "Remove or correct the unsupported signals.swaps=true flag, or add direct product-specific swap/TRS/CFD evidence. Until supported, treat it as an evidence-quality warning rather than a classification contradiction.",
            "Add product-specific physical/direct replication evidence, or use a more general UCITS no-complex-override rule that does not assert physical replication."
        ],
        "reassessment": {
            "required": false
        },
        "resolution": {
            "applied": false
        },
        "decisive_signal_evidence": {
            "checked": true,
            "decision_rule_signal": null,
            "decision_rule_signal_true": null,
            "decision_rule_signal_supported": null,
            "decision_rule_matching_evidence_count": null,
            "decision_rule_matches": [],
            "true_hard_signals": [
                "synthetic_replication"
            ],
            "supported_hard_signals": [],
            "unsupported_hard_signals": [
                "synthetic_replication"
            ],
            "checks": {
                "synthetic_replication": {
                    "signal_true": true,
                    "direct_evidence": false,
                    "matching_evidence_count": 0,
                    "decision_rule_uses_signal": false,
                    "matches": []
                }
            }
        },
        "derivative_materiality": {
            "checked": true,
            "policy_mode": "ucits_default",
            "type": "ETF",
            "ucits": true,
            "physical_replication": true,
            "swaps_signal": true,
            "synthetic_replication": true,
            "derivatives_core_strategy": false,
            "derivatives_epm_only": true,
            "derivative_evidence_count": 1,
            "swap_evidence_count": 0,
            "permission_or_ancillary_evidence_count": 1,
            "core_derivative_evidence_count": 0,
            "only_permission_or_ancillary_derivative_evidence": true,
            "supported_independent_hard_signals": []
        },
        "source_decisive_signal_evidence": null,
        "source_derivative_materiality": null,
        "detected_features": {
            "helo_or_core_options_overlay": false,
            "physical_replication": true,
            "physical_replication_direct_evidence": false,
            "physical_replication_evidence_count": 0,
            "has_epm_only_evidence": true,
            "has_core_derivatives_evidence": false,
            "has_generic_fdi_permission_evidence": true,
            "has_option_overlay_evidence": false
        }
    },
    "agent_review": {
        "ok": true,
        "model": "gpt-4.1-mini",
        "temperature": 0,
        "max_tokens": 1800,
        "usage": {
            "prompt_tokens": 4353,
            "completion_tokens": 506,
            "total_tokens": 4859,
            "raw": {
                "prompt_tokens": 4353,
                "completion_tokens": 506,
                "total_tokens": 4859,
                "cost": 0.0019748,
                "is_byok": false,
                "prompt_tokens_details": {
                    "cached_tokens": 1920,
                    "cache_write_tokens": 0,
                    "audio_tokens": 0,
                    "video_tokens": 0
                },
                "cost_details": {
                    "upstream_inference_cost": 0.0019748,
                    "upstream_inference_prompt_cost": 0.0011652,
                    "upstream_inference_completions_cost": 0.0008096
                },
                "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": 4353,
            "completion_tokens": 506,
            "total_tokens": 4859,
            "input_cost_usd": 0.0011652,
            "output_cost_usd": 0.0008096,
            "estimated_cost_usd": 0.0019748,
            "pricing_basis": "openrouter_usage_cost"
        },
        "review": {
            "validator_verdict": "warn",
            "publishable": true,
            "confidence": 0.78,
            "summary": "However, there are evidence gaps: synthetic_replication and swaps signals are unsubstantiated by direct product-specific evidence, and the physical replication rule lacks direct supporting evidence. The derivatives_epm_only flag is supported by permission/ancillary evidence and correctly does not conflict with derivatives_core_strategy=false. No core derivative strategy evidence is present. These issues do not invalidate the classification but warrant warnings and suggested repairs to improve evidence hygiene and clarity. Deterministic evidence does not substantiate signals.swaps=true; treat that flag as an evidence-hygiene warning unless direct swap/TRS/CFD evidence is added. The applied decision rule asserts physical replication, but deterministic evidence does not directly substantiate physical/direct replication; treat this as a publishable rule-specificity evidence warning rather than a classification contradiction.",
            "issues": [
                {
                    "severity": "warn",
                    "code": "unsubstantiated_hard_signal_on_non_complex_synthetic_replication",
                    "message": "signals.synthetic_replication=true but no supporting_evidence quote directly substantiates that hard-complex feature. Because the signal itself is not evidentially substantiated, it must not be used by the validator to overturn an otherwise coherent non-complex classification."
                },
                {
                    "severity": "warn",
                    "code": "unsubstantiated_swap_signal_on_non_complex",
                    "message": "signals.swaps=true but no supporting evidence quote directly mentions a swap, TRS or CFD. Because the swap flag is unsubstantiated and is not used by decision_rule_applied, it must not be used to overturn an otherwise coherent non-complex classification."
                },
                {
                    "severity": "warn",
                    "code": "physical_rule_without_direct_physical_evidence",
                    "message": "decision_rule_applied explicitly asserts physical replication, but no product-specific supporting evidence quote directly substantiates physical/direct replication. This is a rule-specificity evidence gap and does not by itself invalidate an otherwise coherent non-complex classification."
                }
            ],
            "suggested_repairs": [
                "Remove or downgrade unsupported synthetic_replication, or add product-specific evidence for it. Until supported, treat it as an evidence-quality flag rather than a classification contradiction.",
                "Remove or correct the unsupported signals.swaps=true flag, or add direct product-specific swap/TRS/CFD evidence. Until supported, treat it as an evidence-quality warning rather than a classification contradiction.",
                "Add product-specific physical/direct replication evidence, or use a more general UCITS no-complex-override rule that does not assert physical replication."
            ]
        }
    }
}