{
    "ok": true,
    "_meta": {
        "validator": "oppl_complex_asset_json_validator",
        "validator_version": "1.1.9",
        "captured_at_utc": "2026-08-09T12:10:11+00:00",
        "captured_unix": 1786277411,
        "input_source": "url",
        "input_url": "https://oppl.ai/llms/runs/etf/IE00B5MTWD60_balanced_latest.json",
        "source_assessment_hash": "86a63e66fa3c5827cbb5019e49784bba18bcb7a39971bc36ac482b306ab7cd71",
        "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": "IE00B5MTWD60",
    "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": "core_derivatives_true_without_core_evidence",
            "message": "derivatives_core_strategy=true but no derivatives_core_strategy evidence item is present."
        },
        {
            "severity": "warn",
            "code": "non_decisive_hard_signal_without_direct_evidence_synthetic_replication",
            "message": "signals.synthetic_replication=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: swaps."
        }
    ],
    "suggested_repairs": [
        "Add supporting_evidence with signal=derivatives_core_strategy quoting the relevant strategy language.",
        "Remove or downgrade unsupported synthetic_replication, or add product-specific evidence for it. This is an evidence-quality repair and does not invalidate an independently supported complex classification.",
        "Add supporting_evidence with signal=derivatives_core_strategy quoting the relevant strategy language to substantiate the core derivative strategy signal.",
        "Remove or downgrade the unsupported synthetic_replication signal or add product-specific evidence for it to improve evidence quality."
    ],
    "deterministic_review": {
        "ok": true,
        "validator_type": "deterministic",
        "validator_verdict": "warn",
        "publishable": true,
        "confidence": 0.78,
        "issues": [
            {
                "severity": "warn",
                "code": "core_derivatives_true_without_core_evidence",
                "message": "derivatives_core_strategy=true but no derivatives_core_strategy evidence item is present."
            },
            {
                "severity": "warn",
                "code": "non_decisive_hard_signal_without_direct_evidence_synthetic_replication",
                "message": "signals.synthetic_replication=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: swaps."
            }
        ],
        "suggested_repairs": [
            "Add supporting_evidence with signal=derivatives_core_strategy quoting the relevant strategy language.",
            "Remove or downgrade unsupported synthetic_replication, 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": 3,
            "decision_rule_matches": [
                {
                    "index": 0,
                    "source": "PRIIPS_KID",
                    "evidence_signal": "synthetic_replication",
                    "quote": "To achieve the objective the Fund will use unfunded swaps (\"Swaps\"). These Swaps are an agreement between the Fund and an approved counterparty to exchange one stream of cash flows against another stream... The performance of the Index is swapped from the counterparty to the Fund in exchange for the performance of equities and equity related securities held by the Fund."
                },
                {
                    "index": 1,
                    "source": "FACTSHEET",
                    "evidence_signal": "swaps",
                    "quote": "The fund might purchase securities that are not contained in the reference index and will enter into swap agreements to exchange the performance of those securities for the performance of the reference index."
                },
                {
                    "index": 2,
                    "source": "PRIIPS_KID",
                    "evidence_signal": "counterparty_risk",
                    "quote": "The Fund\u2019s ability to track the Index performance is reliant on the counterparties to continuously deliver the performance of the Index in line with the swap agreements. The insolvency of any institutions acting as counterparty to derivatives or other instruments, may expose the Fund to financial loss."
                }
            ],
            "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": []
                },
                "swaps": {
                    "signal_true": true,
                    "direct_evidence": true,
                    "matching_evidence_count": 3,
                    "decision_rule_uses_signal": true,
                    "matches": [
                        {
                            "index": 0,
                            "source": "PRIIPS_KID",
                            "evidence_signal": "synthetic_replication",
                            "quote": "To achieve the objective the Fund will use unfunded swaps (\"Swaps\"). These Swaps are an agreement between the Fund and an approved counterparty to exchange one stream of cash flows against another stream... The performance of the Index is swapped from the counterparty to the Fund in exchange for the performance of equities and equity related securities held by the Fund."
                        },
                        {
                            "index": 1,
                            "source": "FACTSHEET",
                            "evidence_signal": "swaps",
                            "quote": "The fund might purchase securities that are not contained in the reference index and will enter into swap agreements to exchange the performance of those securities for the performance of the reference index."
                        },
                        {
                            "index": 2,
                            "source": "PRIIPS_KID",
                            "evidence_signal": "counterparty_risk",
                            "quote": "The Fund\u2019s ability to track the Index performance is reliant on the counterparties to continuously deliver the performance of the Index in line with the swap agreements. The insolvency of any institutions acting as counterparty to derivatives or other instruments, may expose the Fund to financial loss."
                        }
                    ]
                }
            }
        },
        "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": 3,
            "permission_or_ancillary_evidence_count": 0,
            "core_derivative_evidence_count": 1,
            "only_permission_or_ancillary_derivative_evidence": false,
            "supported_independent_hard_signals": []
        },
        "detected_features": {
            "helo_or_core_options_overlay": false,
            "physical_replication": false,
            "has_epm_only_evidence": false,
            "has_core_derivatives_evidence": false,
            "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": 4116,
            "completion_tokens": 388,
            "total_tokens": 4504,
            "raw": {
                "prompt_tokens": 4116,
                "completion_tokens": 388,
                "total_tokens": 4504,
                "cost": 0.0022672,
                "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.0022672,
                    "upstream_inference_prompt_cost": 0.0016464,
                    "upstream_inference_completions_cost": 0.0006208
                },
                "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": 4116,
            "completion_tokens": 388,
            "total_tokens": 4504,
            "input_cost_usd": 0.0016464,
            "output_cost_usd": 0.0006208,
            "estimated_cost_usd": 0.0022672,
            "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 swap evidence and counterparty risk language. However, the derivatives_core_strategy signal is true without any supporting evidence item explicitly labeled as such, and the synthetic_replication signal is true but lacks direct supporting evidence and is not used by the decision rule. There is no conflict between derivatives_epm_only and derivatives_core_strategy flags. The derivative wording proves actual synthetic swap exposure and counterparty risk, consistent with a core derivative strategy in balanced mode. HELO or option overlay strategies are not present, so no reclassification is needed. The client-facing JSON is publishable as-is but would benefit from adding explicit derivatives_core_strategy evidence and either removing or substantiating the synthetic_replication signal to improve evidence hygiene.",
            "issues": [
                {
                    "severity": "warn",
                    "code": "core_derivatives_true_without_core_evidence",
                    "message": "derivatives_core_strategy=true but no supporting_evidence quote explicitly labeled with signal=derivatives_core_strategy is present."
                },
                {
                    "severity": "warn",
                    "code": "non_decisive_hard_signal_without_direct_evidence_synthetic_replication",
                    "message": "signals.synthetic_replication=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 swaps."
                }
            ],
            "suggested_repairs": [
                "Add supporting_evidence with signal=derivatives_core_strategy quoting the relevant strategy language to substantiate the core derivative strategy signal.",
                "Remove or downgrade the unsupported synthetic_replication signal or add product-specific evidence for it to improve evidence quality."
            ]
        }
    }
}