{
    "ok": true,
    "_meta": {
        "validator": "oppl_complex_asset_json_validator",
        "validator_version": "1.1.17",
        "captured_at_utc": "2026-08-09T19:23:41+00:00",
        "captured_unix": 1786303421,
        "input_source": "url",
        "input_url": "https://oppl.ai/llms/runs/etf/IE00B58HMN42_ucits_default_latest.json",
        "source_assessment_hash": "45879e857119915efd91c5c28e4b5460cfca6e43431bacd2045de96f4827debf",
        "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": "IE00B58HMN42",
    "classification": "non-complex",
    "policy_mode": "ucits_default",
    "decision_rule_applied": "etf_ucits_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": 1,
    "issues": [
        {
            "severity": "warn",
            "code": "unsubstantiated_hard_signal_on_non_complex_commodity_futures_roll",
            "message": "signals.commodity_futures_roll=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."
        }
    ],
    "suggested_repairs": [
        "Remove or downgrade unsupported commodity_futures_roll, or add product-specific evidence for it. Until supported, treat it as an evidence-quality flag rather than a classification contradiction."
    ],
    "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_commodity_futures_roll",
                "message": "signals.commodity_futures_roll=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."
            }
        ],
        "suggested_repairs": [
            "Remove or downgrade unsupported commodity_futures_roll, or add product-specific evidence for it. Until supported, treat it as an evidence-quality flag rather than a classification contradiction."
        ],
        "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",
                "commodity_futures_roll"
            ],
            "supported_hard_signals": [
                "synthetic_replication"
            ],
            "unsupported_hard_signals": [
                "commodity_futures_roll"
            ],
            "checks": {
                "synthetic_replication": {
                    "signal_true": true,
                    "direct_evidence": true,
                    "matching_evidence_count": 1,
                    "decision_rule_uses_signal": false,
                    "matches": [
                        {
                            "index": 0,
                            "source": "FACTSHEET",
                            "evidence_signal": "synthetic_replication",
                            "quote": "The fund synthetically replicates the index performance by investing in a swap."
                        }
                    ]
                },
                "commodity_futures_roll": {
                    "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": false,
            "swaps_signal": true,
            "synthetic_replication": true,
            "derivatives_core_strategy": true,
            "derivatives_epm_only": false,
            "derivative_evidence_count": 4,
            "swap_evidence_count": 2,
            "permission_or_ancillary_evidence_count": 0,
            "core_derivative_evidence_count": 2,
            "only_permission_or_ancillary_derivative_evidence": false,
            "supported_independent_hard_signals": [
                "synthetic_replication"
            ]
        },
        "source_decisive_signal_evidence": null,
        "source_derivative_materiality": null,
        "detected_features": {
            "helo_or_core_options_overlay": false,
            "physical_replication": false,
            "physical_replication_direct_evidence": false,
            "physical_replication_evidence_count": 0,
            "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": 4489,
            "completion_tokens": 359,
            "total_tokens": 4848,
            "raw": {
                "prompt_tokens": 4489,
                "completion_tokens": 359,
                "total_tokens": 4848,
                "cost": 0.001794,
                "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.001794,
                    "upstream_inference_prompt_cost": 0.0012196,
                    "upstream_inference_completions_cost": 0.0005744
                },
                "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": 4489,
            "completion_tokens": 359,
            "total_tokens": 4848,
            "input_cost_usd": 0.0012196,
            "output_cost_usd": 0.0005744,
            "estimated_cost_usd": 0.001794,
            "pricing_basis": "openrouter_usage_cost"
        },
        "review": {
            "validator_verdict": "warn",
            "publishable": true,
            "confidence": 0.78,
            "summary": "The assessment is internally consistent and coherent with the ucits_default policy mode. The classification as non-complex under the etf_ucits_no_complex_override_rule is supported by synthetic replication evidence and core derivative strategy evidence. However, the commodity_futures_roll signal is unsubstantiated by direct product-specific evidence and is not used by the decision rule, resulting in a warning. There is no conflict between derivatives_epm_only (false) and derivatives_core_strategy (true), and the core derivative strategy is supported by evidence. The synthetic replication and swap evidence directly support the core derivative strategy signal. The supporting evidence quotes correctly match their signal labels. No HELO or option overlay strategy is present, so no reclassification is needed. The client-facing JSON is publishable as-is with a hygiene warning on the unsupported commodity_futures_roll signal. Suggested repair is to remove or add evidence for the commodity_futures_roll signal to improve evidence hygiene.",
            "issues": [
                {
                    "severity": "warn",
                    "code": "unsubstantiated_hard_signal_on_non_complex_commodity_futures_roll",
                    "message": "signals.commodity_futures_roll=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."
                }
            ],
            "suggested_repairs": [
                "Remove or downgrade unsupported commodity_futures_roll, or add product-specific evidence for it. Until supported, treat it as an evidence-quality flag rather than a classification contradiction."
            ]
        }
    }
}