{
    "ok": true,
    "_meta": {
        "validator": "oppl_complex_asset_json_validator",
        "validator_version": "1.1.19",
        "captured_at_utc": "2026-08-10T06:53:26+00:00",
        "captured_unix": 1786344806,
        "input_source": "url",
        "input_url": "https://oppl.ai/llms/runs/etf/IE00BG88WH84_ucits_default_latest.json",
        "source_assessment_hash": "a66b128842d086a4e47dd9e0aa18e8a40a840923122bd3572a549503019d3d3a",
        "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": "IE00BG88WH84",
    "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": 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": "ucits_default_commodity_futures_features_retained_under_baseline",
            "message": "Product-specific commodity-futures / roll features are directly evidenced (commodity_futures_roll, contango_backwardation), but ucits_default ETF policy retains the UCITS non-complex baseline rather than treating those features as universal hard overrides. Balanced/strict remain stricter and ETC commodity-futures policy is unchanged."
        },
        {
            "severity": "warn",
            "code": "ucits_default_core_derivatives_retained_under_baseline",
            "message": "derivatives_core_strategy=true is backed by product-specific core-derivative evidence, but ucits_default intentionally retains the UCITS non-complex baseline unless a supported hard override applies. This is mode-specific policy context, not a classification contradiction."
        }
    ],
    "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.",
        "No classification change is required solely for commodity_futures_roll / contango_backwardation in a ucits_default UCITS ETF. Confirm ucits_default is the intended mode; balanced/strict remain stricter.",
        "No classification change is required solely for evidenced core-derivative strategy in ucits_default. Confirm ucits_default is the intended policy mode; balanced/strict apply a stricter derivative override."
    ],
    "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": "ucits_default_commodity_futures_features_retained_under_baseline",
                "message": "Product-specific commodity-futures / roll features are directly evidenced (commodity_futures_roll, contango_backwardation), but ucits_default ETF policy retains the UCITS non-complex baseline rather than treating those features as universal hard overrides. Balanced/strict remain stricter and ETC commodity-futures policy is unchanged."
            },
            {
                "severity": "warn",
                "code": "ucits_default_core_derivatives_retained_under_baseline",
                "message": "derivatives_core_strategy=true is backed by product-specific core-derivative evidence, but ucits_default intentionally retains the UCITS non-complex baseline unless a supported hard override applies. This is mode-specific policy context, not a classification contradiction."
            }
        ],
        "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.",
            "No classification change is required solely for commodity_futures_roll / contango_backwardation in a ucits_default UCITS ETF. Confirm ucits_default is the intended mode; balanced/strict remain stricter.",
            "No classification change is required solely for evidenced core-derivative strategy in ucits_default. Confirm ucits_default is the intended policy mode; balanced/strict apply a stricter derivative override."
        ],
        "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",
                "contango_backwardation"
            ],
            "supported_hard_signals": [
                "commodity_futures_roll",
                "contango_backwardation"
            ],
            "unsupported_hard_signals": [
                "synthetic_replication"
            ],
            "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": 2,
                    "decision_rule_uses_signal": false,
                    "matches": [
                        {
                            "index": 3,
                            "source": "PRIIPS_KID",
                            "evidence_signal": "commodity_futures_roll",
                            "quote": "The Index provides broad, diversified exposure to commodity futures using a multi -factor strategy and aims to maximise the roll yield ."
                        },
                        {
                            "index": 4,
                            "source": "PRIIPS_KID",
                            "evidence_signal": "contango_backwardation",
                            "quote": "On a daily basis, the Index applies a systematic factor -based weighting overlay to overweight or underweight each commodity (excluding gold and silver) within defined caps and floors, based on three key factors : roll yield (backwardation), slope momentum, and price momentum ."
                        }
                    ]
                },
                "contango_backwardation": {
                    "signal_true": true,
                    "direct_evidence": true,
                    "matching_evidence_count": 1,
                    "decision_rule_uses_signal": false,
                    "matches": [
                        {
                            "index": 4,
                            "source": "PRIIPS_KID",
                            "evidence_signal": "contango_backwardation",
                            "quote": "On a daily basis, the Index applies a systematic factor -based weighting overlay to overweight or underweight each commodity (excluding gold and silver) within defined caps and floors, based on three key factors : roll yield (backwardation), slope momentum, and price momentum ."
                        }
                    ]
                }
            }
        },
        "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": 3,
            "swap_evidence_count": 3,
            "permission_or_ancillary_evidence_count": 0,
            "core_derivative_evidence_count": 3,
            "only_permission_or_ancillary_derivative_evidence": false,
            "supported_independent_hard_signals": [
                "commodity_futures_roll",
                "contango_backwardation"
            ]
        },
        "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": 5281,
            "completion_tokens": 637,
            "total_tokens": 5918,
            "raw": {
                "prompt_tokens": 5281,
                "completion_tokens": 637,
                "total_tokens": 5918,
                "cost": 0.0031316,
                "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.0031316,
                    "upstream_inference_prompt_cost": 0.0021124,
                    "upstream_inference_completions_cost": 0.0010192
                },
                "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": 5281,
            "completion_tokens": 637,
            "total_tokens": 5918,
            "input_cost_usd": 0.0021124,
            "output_cost_usd": 0.0010192,
            "estimated_cost_usd": 0.0031316,
            "pricing_basis": "openrouter_usage_cost"
        },
        "review": {
            "validator_verdict": "warn",
            "publishable": true,
            "confidence": 0.78,
            "summary": "The assessment is internally consistent and publishable under ucits_default mode. The classification as non-complex with decision_rule_applied 'etf_ucits_no_complex_override_rule' is coherent given the policy mode. The derivatives_core_strategy signal is directly supported by product-specific evidence, but ucits_default mode retains the non-complex baseline despite this. The synthetic_replication signal is unsubstantiated by direct evidence and should be treated as an evidence-quality flag only. No conflict exists between derivatives_epm_only (false) and derivatives_core_strategy (true). All supporting_evidence signal labels match their quotes. No HELO or option overlay evidence is present, so no re-labelling of derivatives_epm_only is needed. Commodity futures roll and contango/backwardation features are evidenced and retained as product facts with warnings only, consistent with policy. The counterparty_risk signal is supported by evidence and warnings are appropriate. No repair is strictly required, but removal or downgrading of unsupported synthetic_replication signal is recommended for evidence hygiene. Under ucits_default, product-specific core derivative strategy evidence is retained as a product fact but does not by itself override the UCITS non-complex baseline; balanced/strict apply a stricter derivative override. Under ucits_default ETF policy, directly evidenced commodity-futures / roll and contango/backwardation features are retained as product facts but are not universal hard overrides of the UCITS non-complex baseline; balanced/strict and ETC treatment remain stricter.",
            "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": "ucits_default_core_derivatives_retained_under_baseline",
                    "message": "derivatives_core_strategy=true is backed by product-specific core-derivative evidence, but ucits_default intentionally retains the UCITS non-complex baseline unless a supported hard override applies. This is mode-specific policy context, not a classification contradiction."
                }
            ],
            "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.",
                "No classification change is required solely for commodity_futures_roll / contango_backwardation in a ucits_default UCITS ETF. Confirm ucits_default is the intended mode; balanced/strict remain stricter.",
                "No classification change is required solely for evidenced core-derivative strategy in ucits_default. Confirm ucits_default is the intended policy mode; balanced/strict apply a stricter derivative override."
            ]
        }
    }
}