{
    "ok": true,
    "_meta": {
        "validator": "oppl_complex_asset_json_validator",
        "validator_version": "1.1.9",
        "captured_at_utc": "2026-08-09T12:14:27+00:00",
        "captured_unix": 1786277667,
        "input_source": "url",
        "input_url": "https://oppl.ai/llms/runs/etf/IE00B53H0131_balanced_latest.json",
        "source_assessment_hash": "9b8e7a94842e35799b3b11069f826619eaf9cf163a533cbc038a22527cc5cc94",
        "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": "IE00B53H0131",
    "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_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: synthetic_replication, commodity_futures_roll, 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, commodity_futures_roll, swaps."
        }
    ],
    "suggested_repairs": [
        "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.",
        "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."
    ],
    "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_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: synthetic_replication, commodity_futures_roll, 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, commodity_futures_roll, swaps."
            }
        ],
        "suggested_repairs": [
            "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.",
            "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": 1,
            "decision_rule_matches": [
                {
                    "index": 0,
                    "source": "FACTSHEET",
                    "evidence_signal": "synthetic_replication",
                    "quote": "The fund synthetically replicates the index performance by investing in a swap."
                }
            ],
            "true_hard_signals": [
                "synthetic_replication",
                "commodity_futures_roll",
                "contango_backwardation",
                "complex_index"
            ],
            "supported_hard_signals": [
                "synthetic_replication",
                "commodity_futures_roll"
            ],
            "unsupported_hard_signals": [
                "contango_backwardation",
                "complex_index"
            ],
            "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": true,
                    "matching_evidence_count": 1,
                    "decision_rule_uses_signal": false,
                    "matches": [
                        {
                            "index": 4,
                            "source": "FACTSHEET",
                            "evidence_signal": "contango_backwardation",
                            "quote": "...can also minimize exposure to negative roll yield, making the index more representative of the underlying market price movements."
                        }
                    ]
                },
                "contango_backwardation": {
                    "signal_true": true,
                    "direct_evidence": false,
                    "matching_evidence_count": 0,
                    "decision_rule_uses_signal": false,
                    "matches": []
                },
                "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": 1,
                    "decision_rule_uses_signal": true,
                    "matches": [
                        {
                            "index": 0,
                            "source": "FACTSHEET",
                            "evidence_signal": "synthetic_replication",
                            "quote": "The fund synthetically replicates the index performance by investing in a swap."
                        }
                    ]
                }
            }
        },
        "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": 3,
            "swap_evidence_count": 1,
            "permission_or_ancillary_evidence_count": 0,
            "core_derivative_evidence_count": 2,
            "only_permission_or_ancillary_derivative_evidence": false,
            "supported_independent_hard_signals": [
                "synthetic_replication",
                "commodity_futures_roll"
            ]
        },
        "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": 4238,
            "completion_tokens": 489,
            "total_tokens": 4727,
            "raw": {
                "prompt_tokens": 4238,
                "completion_tokens": 489,
                "total_tokens": 4727,
                "cost": 0.0024776,
                "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.0024776,
                    "upstream_inference_prompt_cost": 0.0016952,
                    "upstream_inference_completions_cost": 0.0007824
                },
                "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": 489,
            "total_tokens": 4727,
            "input_cost_usd": 0.0016952,
            "output_cost_usd": 0.0007824,
            "estimated_cost_usd": 0.0024776,
            "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 evidence of synthetic replication and swap usage, which are core derivative strategy signals. The decision-driving hard-complex signal 'swaps' is directly proven by product-specific evidence. There is no conflict between derivatives_epm_only (false) and derivatives_core_strategy (true). The derivative wording supports actual material exposure and core derivative strategy, consistent with balanced mode policy. HELO or option overlay strategies are not present, so no reclassification needed. Two additional hard-complex signals (contango_backwardation and complex_index) lack direct supporting evidence and are not used by the decision rule; these are non-decisive and generate warnings but do not invalidate the classification or publishability. Supporting evidence signal labels match their quotes. The JSON is client-publishable as-is. Suggested repairs include removing or downgrading unsupported contango_backwardation and complex_index signals or adding direct evidence for them to improve evidence hygiene.",
            "issues": [
                {
                    "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: synthetic_replication, commodity_futures_roll, 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, commodity_futures_roll, swaps."
                }
            ],
            "suggested_repairs": [
                "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.",
                "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."
            ]
        }
    }
}