{
    "ok": true,
    "_meta": {
        "validator": "oppl_complex_asset_json_validator",
        "validator_version": "1.1.9",
        "captured_at_utc": "2026-08-09T11:59:07+00:00",
        "captured_unix": 1786276747,
        "input_source": "url",
        "input_url": "https://oppl.ai/llms/runs/etf/IE00B3WMTH43_balanced_latest.json",
        "source_assessment_hash": "dcaa29d21c0a2607ec139550e94f06632c6c3c5a729709593fbc277e48dde472",
        "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": "IE00B3WMTH43",
    "classification": "complex",
    "policy_mode": "balanced",
    "decision_rule_applied": "balanced_etf_swap_complex_rule",
    "validator_verdict": "warn",
    "publishable": true,
    "confidence": 0.78,
    "issue_count": 1,
    "issues": [
        {
            "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": [
        "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.",
        "Remove or downgrade unsupported synthetic_replication signal, or add product-specific evidence directly substantiating synthetic replication. This is an evidence-quality repair and does not invalidate the complex classification based on swaps."
    ],
    "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_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": [
            "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": 2,
            "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."
                }
            ],
            "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": 2,
                    "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."
                        }
                    ]
                }
            }
        },
        "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": 2,
            "permission_or_ancillary_evidence_count": 0,
            "core_derivative_evidence_count": 2,
            "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": 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": 3834,
            "completion_tokens": 322,
            "total_tokens": 4156,
            "raw": {
                "prompt_tokens": 3834,
                "completion_tokens": 322,
                "total_tokens": 4156,
                "cost": 0.0020488,
                "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.0020488,
                    "upstream_inference_prompt_cost": 0.0015336,
                    "upstream_inference_completions_cost": 0.0005152
                },
                "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": 3834,
            "completion_tokens": 322,
            "total_tokens": 4156,
            "input_cost_usd": 0.0015336,
            "output_cost_usd": 0.0005152,
            "estimated_cost_usd": 0.0020488,
            "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. The decision-driving hard-complex signal 'swaps' is directly evidenced by two supporting quotes referencing swap agreements. The derivatives_core_strategy signal is supported by product-specific evidence. However, the synthetic_replication signal is true but lacks direct supporting evidence and is not used by the decision rule, making it an unsupported additional hard signal. There is no conflict between derivatives_epm_only (false) and derivatives_core_strategy (true). No HELO or option overlay evidence is present, so no reclassification or relabelling is needed. The client-facing JSON is publishable as-is but would benefit from removing or downgrading the unsupported synthetic_replication signal to improve evidence hygiene.",
            "issues": [
                {
                    "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": [
                "Remove or downgrade unsupported synthetic_replication signal, or add product-specific evidence directly substantiating synthetic replication. This is an evidence-quality repair and does not invalidate the complex classification based on swaps."
            ]
        }
    }
}