{
    "ok": true,
    "_meta": {
        "validator": "oppl_complex_asset_json_validator",
        "validator_version": "1.1.1",
        "captured_at_utc": "2026-08-08T12:28:33+00:00",
        "captured_unix": 1786192113,
        "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": "fail",
    "publishable": false,
    "confidence": 0.92,
    "issue_count": 4,
    "issues": [
        {
            "severity": "fail",
            "code": "hard_complex_signal_without_direct_evidence_commodity_futures_roll",
            "message": "signals.commodity_futures_roll=true but no supporting_evidence quote directly substantiates that hard-complex feature."
        },
        {
            "severity": "fail",
            "code": "hard_complex_signal_without_direct_evidence_complex_index",
            "message": "signals.complex_index=true but no supporting_evidence quote directly substantiates that hard-complex feature."
        },
        {
            "severity": "fail",
            "code": "hard_complex_signal_without_direct_evidence_commodity_futures_roll",
            "message": "signals.commodity_futures_roll=true but no supporting_evidence quote directly substantiates that hard-complex feature.",
            "source": "agent"
        },
        {
            "severity": "fail",
            "code": "hard_complex_signal_without_direct_evidence_complex_index",
            "message": "signals.complex_index=true but no supporting_evidence quote directly substantiates that hard-complex feature.",
            "source": "agent"
        }
    ],
    "suggested_repairs": [
        "Remove or downgrade unsupported commodity_futures_roll, or add product-specific evidence that directly proves the feature before using it as a hard complex trigger.",
        "Remove or downgrade unsupported complex_index, or add product-specific evidence that directly proves the feature before using it as a hard complex trigger.",
        "Remove or downgrade unsupported commodity_futures_roll signal, or add product-specific evidence that directly proves the feature before using it as a hard complex trigger.",
        "Remove or downgrade unsupported complex_index signal, or add product-specific evidence that directly proves the feature before using it as a hard complex trigger."
    ],
    "deterministic_review": {
        "ok": true,
        "validator_type": "deterministic",
        "validator_verdict": "fail",
        "publishable": false,
        "confidence": 0.92,
        "issues": [
            {
                "severity": "fail",
                "code": "hard_complex_signal_without_direct_evidence_commodity_futures_roll",
                "message": "signals.commodity_futures_roll=true but no supporting_evidence quote directly substantiates that hard-complex feature."
            },
            {
                "severity": "fail",
                "code": "hard_complex_signal_without_direct_evidence_complex_index",
                "message": "signals.complex_index=true but no supporting_evidence quote directly substantiates that hard-complex feature."
            }
        ],
        "suggested_repairs": [
            "Remove or downgrade unsupported commodity_futures_roll, or add product-specific evidence that directly proves the feature before using it as a hard complex trigger.",
            "Remove or downgrade unsupported complex_index, or add product-specific evidence that directly proves the feature before using it as a hard complex trigger."
        ],
        "decisive_signal_evidence": {
            "checked": true,
            "decision_rule_signal": null,
            "decision_rule_signal_true": null,
            "decision_rule_signal_supported": null,
            "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": []
                }
            }
        },
        "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": 3361,
            "completion_tokens": 329,
            "total_tokens": 3690,
            "raw": {
                "prompt_tokens": 3361,
                "completion_tokens": 329,
                "total_tokens": 3690,
                "cost": 0.0018708,
                "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.0018708,
                    "upstream_inference_prompt_cost": 0.0013444,
                    "upstream_inference_completions_cost": 0.0005264
                },
                "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": 3361,
            "completion_tokens": 329,
            "total_tokens": 3690,
            "input_cost_usd": 0.0013444,
            "output_cost_usd": 0.0005264,
            "estimated_cost_usd": 0.0018708,
            "pricing_basis": "openrouter_usage_cost"
        },
        "review": {
            "validator_verdict": "fail",
            "publishable": false,
            "confidence": 0.92,
            "summary": "The assessment is internally consistent and derivative evidence supports the core synthetic replication and swap usage signals. However, two hard-complex signals, commodity_futures_roll and complex_index, lack direct product-specific supporting evidence quotes, violating policy requirements for decisive hard-complex signals. There is no conflict between derivatives_epm_only and derivatives_core_strategy flags. The derivative wording properly evidences core synthetic replication and swap exposure. No HELO or option overlay strategy is present, so no reclassification needed. The assessment is not publishable as-is due to unsupported hard-complex signals.",
            "issues": [
                {
                    "severity": "fail",
                    "code": "hard_complex_signal_without_direct_evidence_commodity_futures_roll",
                    "message": "signals.commodity_futures_roll=true but no supporting_evidence quote directly substantiates that hard-complex feature."
                },
                {
                    "severity": "fail",
                    "code": "hard_complex_signal_without_direct_evidence_complex_index",
                    "message": "signals.complex_index=true but no supporting_evidence quote directly substantiates that hard-complex feature."
                }
            ],
            "suggested_repairs": [
                "Remove or downgrade unsupported commodity_futures_roll signal, or add product-specific evidence that directly proves the feature before using it as a hard complex trigger.",
                "Remove or downgrade unsupported complex_index signal, or add product-specific evidence that directly proves the feature before using it as a hard complex trigger."
            ]
        }
    }
}