{
    "ok": true,
    "_meta": {
        "validator": "oppl_complex_asset_json_validator",
        "validator_version": "1.1.20",
        "captured_at_utc": "2026-08-10T07:21:54+00:00",
        "captured_unix": 1786346514,
        "input_source": "url",
        "input_url": "https://oppl.ai/llms/runs/etf/IE00B3CNHJ55_strict_latest.json",
        "source_assessment_hash": "354cf6793173ce18c38e738605ecb77f25fa1fc0e6c0c23461c3438760cfe9a2",
        "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": "IE00B3CNHJ55",
    "classification": "complex",
    "policy_mode": "strict",
    "decision_rule_applied": "strict_etf_derivative_permission_complex_rule",
    "source_classification": "complex",
    "source_decision_rule_applied": "strict_etf_swap_complex_rule",
    "resolution": {
        "applied": true,
        "resolution_class": "deterministic_complex_basis_repair",
        "reason_code": "unsupported_source_decision_rule_with_supported_alternative_complex_basis",
        "source_classification": "complex",
        "source_decision_rule_applied": "strict_etf_swap_complex_rule",
        "resolved_classification": "complex",
        "resolved_decision_rule_applied": "strict_etf_derivative_permission_complex_rule",
        "trigger_signal": "swaps",
        "supported_replacement_basis": "derivative_permission",
        "supported_replacement_basis_type": "strict_supported_permission_or_ancillary_derivative_evidence",
        "overridden_unsupported_signals": [
            "complex_index",
            "swaps"
        ],
        "supported_hard_signals": [],
        "core_derivative_evidence_count": 0,
        "swap_evidence_count": 0,
        "reassessment_required": false,
        "publishable_resolution": true,
        "message": "The source assessment is correctly Complex, but decision_rule_applied=strict_etf_swap_complex_rule relies on unsupported swaps. The same product evidence independently supports Complex via derivative_permission, so the validator preserves classification=complex, replaces the effective decision rule with strict_etf_derivative_permission_complex_rule, and treats the unsupported source rule/flags as an evidence-hygiene repair rather than a classification failure."
    },
    "validator_verdict": "warn",
    "publishable": true,
    "confidence": 0.78,
    "issue_count": 1,
    "issues": [
        {
            "severity": "warn",
            "code": "source_complex_decision_rule_auto_repaired",
            "message": "The source assessment is correctly Complex, but decision_rule_applied=strict_etf_swap_complex_rule relies on unsupported swaps. The same product evidence independently supports Complex via derivative_permission, so the validator preserves classification=complex, replaces the effective decision rule with strict_etf_derivative_permission_complex_rule, and treats the unsupported source rule/flags as an evidence-hygiene repair rather than a classification failure."
        }
    ],
    "suggested_repairs": [
        "Repair the upstream source decision rule and remove unsupported source flags so the source assessment points to the Complex feature actually proven by the evidence. No further model rerun is required unless new contradictory evidence is found."
    ],
    "reassessment": {
        "required": false,
        "reason": "deterministic_resolution_applied"
    },
    "deterministic_review": {
        "ok": true,
        "validator_type": "deterministic",
        "validator_verdict": "warn",
        "publishable": true,
        "confidence": 0.78,
        "issues": [
            {
                "severity": "warn",
                "code": "source_complex_decision_rule_auto_repaired",
                "message": "The source assessment is correctly Complex, but decision_rule_applied=strict_etf_swap_complex_rule relies on unsupported swaps. The same product evidence independently supports Complex via derivative_permission, so the validator preserves classification=complex, replaces the effective decision rule with strict_etf_derivative_permission_complex_rule, and treats the unsupported source rule/flags as an evidence-hygiene repair rather than a classification failure."
            }
        ],
        "suggested_repairs": [
            "Repair the upstream source decision rule and remove unsupported source flags so the source assessment points to the Complex feature actually proven by the evidence. No further model rerun is required unless new contradictory evidence is found."
        ],
        "reassessment": {
            "required": false,
            "reason": "deterministic_resolution_applied"
        },
        "resolution": {
            "applied": true,
            "resolution_class": "deterministic_complex_basis_repair",
            "reason_code": "unsupported_source_decision_rule_with_supported_alternative_complex_basis",
            "source_classification": "complex",
            "source_decision_rule_applied": "strict_etf_swap_complex_rule",
            "resolved_classification": "complex",
            "resolved_decision_rule_applied": "strict_etf_derivative_permission_complex_rule",
            "trigger_signal": "swaps",
            "supported_replacement_basis": "derivative_permission",
            "supported_replacement_basis_type": "strict_supported_permission_or_ancillary_derivative_evidence",
            "overridden_unsupported_signals": [
                "complex_index",
                "swaps"
            ],
            "supported_hard_signals": [],
            "core_derivative_evidence_count": 0,
            "swap_evidence_count": 0,
            "reassessment_required": false,
            "publishable_resolution": true,
            "message": "The source assessment is correctly Complex, but decision_rule_applied=strict_etf_swap_complex_rule relies on unsupported swaps. The same product evidence independently supports Complex via derivative_permission, so the validator preserves classification=complex, replaces the effective decision rule with strict_etf_derivative_permission_complex_rule, and treats the unsupported source rule/flags as an evidence-hygiene repair rather than a classification failure."
        },
        "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": [],
            "supported_hard_signals": [],
            "unsupported_hard_signals": [],
            "checks": []
        },
        "derivative_materiality": {
            "checked": true,
            "policy_mode": "strict",
            "type": "ETF",
            "ucits": true,
            "physical_replication": true,
            "swaps_signal": false,
            "synthetic_replication": false,
            "derivatives_core_strategy": false,
            "derivatives_epm_only": null,
            "derivative_evidence_count": 2,
            "swap_evidence_count": 0,
            "permission_or_ancillary_evidence_count": 1,
            "core_derivative_evidence_count": 0,
            "only_permission_or_ancillary_derivative_evidence": false,
            "supported_independent_hard_signals": []
        },
        "source_decisive_signal_evidence": {
            "checked": true,
            "decision_rule_signal": "swaps",
            "decision_rule_signal_true": true,
            "decision_rule_signal_supported": false,
            "decision_rule_matching_evidence_count": 0,
            "decision_rule_matches": [],
            "true_hard_signals": [
                "complex_index"
            ],
            "supported_hard_signals": [],
            "unsupported_hard_signals": [
                "complex_index"
            ],
            "checks": {
                "complex_index": {
                    "signal_true": true,
                    "direct_evidence": false,
                    "matching_evidence_count": 0,
                    "decision_rule_uses_signal": false,
                    "matches": []
                },
                "swaps": {
                    "signal_true": true,
                    "direct_evidence": false,
                    "matching_evidence_count": 0,
                    "decision_rule_uses_signal": true,
                    "matches": []
                }
            }
        },
        "source_derivative_materiality": {
            "checked": true,
            "policy_mode": "strict",
            "type": "ETF",
            "ucits": true,
            "physical_replication": true,
            "swaps_signal": true,
            "synthetic_replication": false,
            "derivatives_core_strategy": false,
            "derivatives_epm_only": null,
            "derivative_evidence_count": 2,
            "swap_evidence_count": 0,
            "permission_or_ancillary_evidence_count": 1,
            "core_derivative_evidence_count": 0,
            "only_permission_or_ancillary_derivative_evidence": false,
            "supported_independent_hard_signals": []
        },
        "detected_features": {
            "helo_or_core_options_overlay": false,
            "physical_replication": true,
            "physical_replication_direct_evidence": true,
            "physical_replication_evidence_count": 1,
            "has_epm_only_evidence": false,
            "has_core_derivatives_evidence": false,
            "has_generic_fdi_permission_evidence": true,
            "has_option_overlay_evidence": false
        }
    },
    "agent_review": {
        "ok": true,
        "model": "gpt-4.1-mini",
        "temperature": 0,
        "max_tokens": 1800,
        "usage": {
            "prompt_tokens": 5595,
            "completion_tokens": 349,
            "total_tokens": 5944,
            "raw": {
                "prompt_tokens": 5595,
                "completion_tokens": 349,
                "total_tokens": 5944,
                "cost": 0.0022204,
                "is_byok": false,
                "prompt_tokens_details": {
                    "cached_tokens": 1920,
                    "cache_write_tokens": 0,
                    "audio_tokens": 0,
                    "video_tokens": 0
                },
                "cost_details": {
                    "upstream_inference_cost": 0.0022204,
                    "upstream_inference_prompt_cost": 0.001662,
                    "upstream_inference_completions_cost": 0.0005584
                },
                "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": 5595,
            "completion_tokens": 349,
            "total_tokens": 5944,
            "input_cost_usd": 0.001662,
            "output_cost_usd": 0.0005584,
            "estimated_cost_usd": 0.0022204,
            "pricing_basis": "openrouter_usage_cost"
        },
        "review": {
            "validator_verdict": "warn",
            "publishable": true,
            "confidence": 0.88,
            "summary": "The assessment is internally consistent with classification=complex supported by derivative permission/ancillary use evidence under strict policy mode. The original source decision rule relying on swaps was unsupported and has been deterministically repaired to a derivative permission-based complex rule. No direct product-specific swap or core derivative strategy evidence is present. The derivatives_epm_only flag is null, consistent with no EPM-only evidence. Physical replication is directly evidenced and correctly reflected. No conflict exists between derivatives_epm_only and derivatives_core_strategy flags. Supporting evidence quotes match their signal labels. The assessment is publishable as-is with a warning for unsupported swap signals removed by deterministic repair. Suggested repair is to update the source decision rule and remove unsupported swap flags to align with the evidence basis. Deterministic evidence resolution preserved classification=complex but replaced the unsupported source decision rule strict_etf_swap_complex_rule: its decision-driving swaps signal lacks direct evidence, while derivative_permission is independently supported. The effective decision rule is strict_etf_derivative_permission_complex_rule. Repair the upstream rule/flags; another model rerun is not required.",
            "issues": [
                {
                    "severity": "warn",
                    "code": "source_complex_decision_rule_auto_repaired",
                    "message": "The source assessment is correctly Complex, but decision_rule_applied=strict_etf_swap_complex_rule relies on unsupported swaps. The same product evidence independently supports Complex via derivative_permission, so the validator preserves classification=complex, replaces the effective decision rule with strict_etf_derivative_permission_complex_rule, and treats the unsupported source rule/flags as an evidence-hygiene repair rather than a classification failure."
                }
            ],
            "suggested_repairs": [
                "Repair the upstream source decision rule and remove unsupported source flags so the source assessment points to the Complex feature actually proven by the evidence. No further model rerun is required unless new contradictory evidence is found."
            ]
        }
    }
}