{"summary":{"analyzed":true,"build_worthy":false,"build_worthy_family_key":"site-builder-qa","build_worthy_family_name":"agency visual QA and update safety","build_worthy_reason":"This row is supporting evidence for the linked opportunity family; use the family card, not this row, for the build decision.","build_worthy_scope":"opportunity_family","comments_returned":0,"commercial_card_missing_count":0,"commercial_card_status":"complete","commercial_context_status":"linked_opportunity","commercial_context_status_label":"Evidence linked to opportunity","evidence_context_status":"linked_opportunity","evidence_context_status_label":"Evidence linked to opportunity","evidence_role":"supports_opportunity_family","evidence_role_label":"Evidence supporting opportunity family","evidence_role_reason":"This row is supporting evidence for the linked opportunity family; use the family card, not this row, for the build decision.","intelligence_role":"supporting_evidence","intelligence_role_label":"Supporting evidence","is_build_worthy":false,"opportunity_context_status":"linked_opportunity","opportunity_context_status_label":"Evidence linked to opportunity","opportunity_decision_status":"supporting_evidence","opportunity_decision_status_label":"Supporting evidence","opportunity_relevance":0.91,"plugin_name":"WPEssential Icons","promotion_reason":"This row is supporting evidence linked to a commercial opportunity family, not the build-worthy opportunity itself.","promotion_status":"linked_opportunity","promotion_status_label":"Evidence linked to opportunity","recommendation_role":"evidence_input","recommendation_role_label":"Evidence input","reply_count":0,"row_is_build_worthy":false,"row_is_opportunity":false,"row_role":"supporting_evidence","row_role_label":"Supporting evidence","sentiment":"complaint","severity":"high","slug":"wpessential-icons","source":"support","source_link_count":2,"url":"https://wordpress.org/support/topic/call-to-a-member-function-desc-on-null/","worth_validating":false,"source_count":0,"source_evidence_summary":{"total":51,"source_evidence_rows":9,"source_link_rows":9,"source_count_only_rows":0,"missing_source_evidence_rows":42,"source_evidence_not_applicable_rows":0,"source_link_coverage_percent":17.6,"evidence_required_rows":0,"evidence_required_rows_missing_source_links":0,"build_worthy_rows_missing_source_links":0,"decision_rows_missing_source_links":0,"missing_source_examples":[]},"commercial_readiness":{"total":51,"validation_ready":0,"core_validation_ready_rows":0,"family_wide_validation_ready_rows":0,"core_only_validation_ready_rows":0,"validation_scope_status":"not_ready","validation_scope_label":"Not ready","validation_scope_warning":"","validation_scope_counts":[{"scope":"not_validation_ready","label":"Not validation-ready","count":51}],"blocker_count":55,"caution_count":1,"status_counts":[{"status":"needs_thesis_sharpening","label":"Needs thesis sharpening","count":51}],"blocker_counts":[{"label":"Commercial gate not complete: investigate pain","count":50},{"label":"Commercial gate not complete: Gate mostly supported","count":1},{"label":"Gate missing: Paid adjacent proof","count":1},{"label":"Gate missing: Competitor weakness or gap","count":1},{"label":"Gate weak: Paid adjacent proof","count":1},{"label":"Gate weak: Competitor weakness or gap","count":1}],"caution_counts":[{"label":"Some grouped markets still lack paid-adjacent proof.","count":1}],"ready_for_buyer_validation":0,"needs_external_proof":0,"needs_family_proof":0,"needs_report":0,"needs_thesis_detail":0,"needs_thesis_sharpening":51,"research_first":0,"research_only":0,"hold":0,"unclassified":0,"core_wedge_validation_ready_rows":0,"full_family_validation_ready_rows":0,"scope_limited_validation_rows":0,"full_family_claim_ready_rows":0,"validation_claim_scope_policy":"Core-only validation rows are worth buyer testing, but they must not be presented as full-family commercial opportunities until family_wide_validation_ready is true."},"commercial_readiness_summary":{"status":"needs_thesis_sharpening","label":"Needs thesis sharpening","validation_ready":false,"family_key":"site-builder-qa","family_name":"agency visual QA and update safety","decision_bucket":"investigate_pain","decision_bucket_label":"Investigate Pain","proof_status":"validated_family","proof_status_label":"Fully validated","commercial_gate_status":"mostly_supported","commercial_gate_label":"Gate mostly supported","commercial_gate_passed":5,"commercial_gate_total":7,"commercial_card_status":"complete","commercial_card_complete":true,"commercial_card_missing_count":0,"blockers":["Commercial gate not complete: Gate mostly supported","Gate missing: Paid adjacent proof","Gate missing: Competitor weakness or gap","Gate weak: Paid adjacent proof","Gate weak: Competitor weakness or gap"],"blocker_count":5,"cautions":["Some grouped markets still lack paid-adjacent proof."],"caution_count":1,"next_action":"Sharpen the buyer, pain, and paid workflow around detect elementor layout regressions, widget breakage, and client-visible update issues; interview agencies maintaining client page-builder sites before validation.","dossier_url":"/opportunities/families/site-builder-qa/dossier","dossier_api_url":"/api/opportunities/families/site-builder-qa/dossier"},"readiness_summary":{"status":"needs_thesis_sharpening","label":"Needs thesis sharpening","validation_ready":false,"family_key":"site-builder-qa","family_name":"agency visual QA and update safety","decision_bucket":"investigate_pain","decision_bucket_label":"Investigate Pain","proof_status":"validated_family","proof_status_label":"Fully validated","commercial_gate_status":"mostly_supported","commercial_gate_label":"Gate mostly supported","commercial_gate_passed":5,"commercial_gate_total":7,"commercial_card_status":"complete","commercial_card_complete":true,"commercial_card_missing_count":0,"blockers":["Commercial gate not complete: Gate mostly supported","Gate missing: Paid adjacent proof","Gate missing: Competitor weakness or gap","Gate weak: Paid adjacent proof","Gate weak: Competitor weakness or gap"],"blocker_count":5,"cautions":["Some grouped markets still lack paid-adjacent proof."],"caution_count":1,"next_action":"Sharpen the buyer, pain, and paid workflow around detect elementor layout regressions, widget breakage, and client-visible update issues; interview agencies maintaining client page-builder sites before validation.","dossier_url":"/opportunities/families/site-builder-qa/dossier","dossier_api_url":"/api/opportunities/families/site-builder-qa/dossier"},"cache_source":"durable_research_stale","cache_age_seconds":8912,"payload_mode":"compact","full_payload_url":"/api/evidence/source?full=true&compact_schema=evidence-source-v2&url=https%3A//wordpress.org/support/topic/call-to-a-member-function-desc-on-null/&comment_limit=80&text_limit=12000","row_key":"rows","source_row_key":"rows","rows_shown":1,"comments_shown":0,"evidence_summary":{"total":1,"source_evidence_rows":0,"source_link_rows":1,"source_count_only_rows":0,"missing_source_evidence_rows":0,"source_evidence_not_applicable_rows":0,"source_link_coverage_percent":100.0,"evidence_required_rows":0,"evidence_required_rows_missing_source_links":0,"build_worthy_rows_missing_source_links":0,"decision_rows_missing_source_links":0,"missing_source_examples":[]}},"rows":[{"section":"source","row_type":"source","url":"https://wordpress.org/support/topic/call-to-a-member-function-desc-on-null/","slug":"wpessential-icons","plugin_name":"WPEssential Icons","source":"support","sentiment":"complaint","severity":"high","opportunity_relevance":0.91,"reply_count":0,"comments_returned":0,"analyzed":true,"source_link_count":2,"title":"Call to a member function desc() on null","author":"wpanatoliy","published_at":"2021-02-02T20:23:00+00:00","resolved":false,"collected_at":"2026-05-29T02:33:01+00:00","intent":"problem_report","affected_feature":"bugs","summary":"Call to a member function desc() on null: users show bugs, compatibility, setup pain that may indicate a product gap.","evidence_quote":"Call to a member function desc() on null PHP Fatal error: Uncaught Error: Call to a member function desc() on null in wp-content/plugins/wpessential-icons/wpessential-icons.php:29 ->desc( __( ‘Choosing the Wpessential product.","confidence":0.68,"analyzed_at":"2026-05-29T02:35:48+00:00","market_key":"elementor","market_name":"Elementor","market_url":"/markets/elementor","opportunity_url":"/opportunities/elementor","family_key":"site-builder-qa","family_name":"agency visual QA and update safety","opportunity_family_key":"site-builder-qa","opportunity_family_name":"agency visual QA and update safety","buyer":"site builders and agencies","what_to_build":"Elementor visual QA and update safety for preventing client-site regressions before updates or edits go live","urgent_problem":"Page-builder and editor changes can break layouts, CTAs, or client pages after updates.","problem":"Page-builder and editor changes can break layouts, CTAs, or client pages after updates.","competitor_gap":"Gap to test: can agencies maintaining client page-builder sites detect elementor layout regressions, widget breakage, and client-visible update issues before page-builder and editor changes can break layouts, CTAs, or client pages after updates? Tear down ECS – Ele Custom...","proof_support":"Proof base: outside proof that buyers already pay around the workflow, paid-adjacent plugin or pricing signals, repeated WordPress pain, and weak incumbent coverage around preventing client-site regressions before updates or edits go live.","needs_validation":"sharpen the buyer, pain, and paid workflow around detect elementor layout regressions, widget breakage, and client-visible update issues; interview agencies maintaining client page-builder sites before validation.","what_still_needs_validation":"sharpen the buyer, pain, and paid workflow around detect elementor layout regressions, widget breakage, and client-visible update issues; interview agencies maintaining client page-builder sites before validation.","commercial_attractiveness":"Commercial pull comes from agencies maintaining client page-builder sites: page-builder and editor changes can break layouts, CTAs, or client pages after updates. The first paid wedge is to detect elementor layout regressions, widget breakage, and client-visible update...","first_validation_wedge":"detect elementor layout regressions, widget breakage, and client-visible update issues","mvp_wedge":"detect elementor layout regressions, widget breakage, and client-visible update issues","decision_bucket":"investigate_pain","decision_bucket_label":"Investigate Pain","row_role":"supporting_evidence","recommendation_role":"evidence_input","evidence_role":"supports_opportunity_family","promotion_status":"linked_opportunity","promotion_status_label":"Evidence linked to opportunity","promotion_reason":"This row is supporting evidence linked to a commercial opportunity family, not the build-worthy opportunity itself.","is_build_worthy":false,"worth_validating":false,"build_worthy_scope":"opportunity_family","build_worthy_family_key":"site-builder-qa","opportunity_decision_status":"supporting_evidence","body_summary":"PHP Fatal error: Uncaught Error: Call to a member function desc() on null in wp-content/plugins/wpessential-icons/wpessential-icons.php:29 ->desc( __( ‘Choosing the Wpessential product. The installed plugin has...","issue_labels":["bugs","compatibility","setup"],"source_links":[{"source_url":"https://wordpress.org/support/topic/call-to-a-member-function-desc-on-null/","url":"https://wordpress.org/support/topic/call-to-a-member-function-desc-on-null/","original_url":"https://wordpress.org/support/topic/call-to-a-member-function-desc-on-null/","source_page_url":"/evidence/source?url=https%3A%2F%2Fwordpress.org%2Fsupport%2Ftopic%2Fcall-to-a-member-function-desc-on-null%2F","source_api_url":"/api/evidence/source?url=https%3A%2F%2Fwordpress.org%2Fsupport%2Ftopic%2Fcall-to-a-member-function-desc-on-null%2F"}]}],"plugin":{"active_installs":10,"api_url":"/api/plugins/wpessential-icons","downloaded":2351,"name":"WPEssential Icons","rating":100.0,"slug":"wpessential-icons","tags":["addons","elementor","fonts-icons"],"url":"/plugin/wpessential-icons"},"conversation":{"url":"https://wordpress.org/support/topic/call-to-a-member-function-desc-on-null/","slug":"wpessential-icons","source":"support","title":"Call to a member function desc() on null","author":"wpanatoliy","published_at":"2021-02-02T20:23:00+00:00","resolved":false,"reply_count":0,"collected_at":"2026-05-29T02:33:01+00:00","body_summary":"PHP Fatal error: Uncaught Error: Call to a member function desc() on null in wp-content/plugins/wpessential-icons/wpessential-icons.php:29 ->desc( __( ‘Choosing the Wpessential product. The installed plugin has required the WPEssential base plugin.’, ‘wpessential-blog-post’ ) )"},"analysis":{"affected_feature":"bugs","analyzed_at":"2026-05-29T02:35:48+00:00","complaint_types":["bugs","compatibility","setup"],"confidence":0.68,"conversation_url":"https://wordpress.org/support/topic/call-to-a-member-function-desc-on-null/","evidence_quote":"Call to a member function desc() on null PHP Fatal error: Uncaught Error: Call to a member function desc() on null in wp-content/plugins/wpessential-icons/wpessential-icons.php:29 ->desc( __( ‘Choosing the Wpessential product.","intent":"problem_report","issue_labels":["bugs","compatibility","setup"],"model":"heuristic-v1","opportunity_relevance":0.91,"praise_types":[],"sentiment":"complaint","severity":"high","slug":"wpessential-icons","source":"support","summary":"Call to a member function desc() on null: users show bugs, compatibility, setup pain that may indicate a product gap."},"source_links":[{"source_url":"https://wordpress.org/support/topic/call-to-a-member-function-desc-on-null/","url":"https://wordpress.org/support/topic/call-to-a-member-function-desc-on-null/","original_url":"https://wordpress.org/support/topic/call-to-a-member-function-desc-on-null/","source_page_url":"/evidence/source?url=https%3A%2F%2Fwordpress.org%2Fsupport%2Ftopic%2Fcall-to-a-member-function-desc-on-null%2F","source_api_url":"/api/evidence/source?url=https%3A%2F%2Fwordpress.org%2Fsupport%2Ftopic%2Fcall-to-a-member-function-desc-on-null%2F"},{"source_url":"https://wordpress.org/plugins/wpessential-icons/","url":"https://wordpress.org/plugins/wpessential-icons/","original_url":"https://wordpress.org/plugins/wpessential-icons/","source_page_url":"/plugin/wpessential-icons","source_api_url":"/api/plugins/wpessential-icons"}],"source_link_count":2,"market_key":"elementor","market_name":"Elementor","market_url":"/markets/elementor","opportunity_url":"/opportunities/elementor","opportunity_card":{"key":"site-builder-qa","name":"agency visual QA and update safety","family_key":"site-builder-qa","family_name":"agency visual QA and update safety","family_label":"agency visual QA and update safety","display_name":"agency visual QA and update safety","opportunity_name":"agency visual QA and update safety","opportunity_label":"agency visual QA and update safety","decision_bucket":"investigate_pain","commercial_readiness_status":"needs_thesis_sharpening","commercial_readiness_label":"Needs thesis sharpening","validation_ready":false,"is_build_worthy":false,"row_role":"opportunity_family","recommendation_role":"commercial_opportunity_candidate","buyer":"site builders and agencies","who_buys":"site builders and agencies","primary_buyer_segment":"agencies maintaining client page-builder sites","urgent_problem":"Page-builder and editor changes can break layouts, CTAs, or client pages after updates.","problem":"Page-builder and editor changes can break layouts, CTAs, or client pages after updates.","pain":"Page-builder and editor changes can break layouts, CTAs, or client pages after updates.","what_to_build":"Elementor visual QA and update safety for preventing client-site regressions before updates or edits go live","weak_competitor_names":["ECS – Ele Custom Skin for Elementor","Shortcodes and extra features for Phlox theme","Angie"],"competitor_teardown_targets":["ECS – Ele Custom Skin for Elementor","Shortcodes and extra features for Phlox theme","Angie"],"competitor_targets":["ECS – Ele Custom Skin for Elementor","Shortcodes and extra features for Phlox theme","Angie"],"weak_competitor_summary":"Weak competitor(s) to inspect: ECS – Ele Custom Skin for Elementor, Shortcodes and extra features for Phlox theme, and Angie.","competitor_target_summary":"Weak competitor(s) to inspect: ECS – Ele Custom Skin for Elementor, Shortcodes and extra features for Phlox theme, and Angie.","first_validation_wedge":"detect elementor layout regressions, widget breakage, and client-visible update issues","mvp_wedge":"detect elementor layout regressions, widget breakage, and client-visible update issues","wedge":"detect elementor layout regressions, widget breakage, and client-visible update issues","source_count":12,"source_link_count":12,"watchlist_caveats":["Some grouped markets still lack paid-adjacent proof."],"validation_warnings":["Some grouped markets still lack paid-adjacent proof."],"next_action":"Sharpen the buyer, pain, and paid workflow around detect elementor layout regressions, widget breakage, and client-visible update issues; interview agencies maintaining client page-builder sites before validation.","family_dossier_url":"/opportunities/families/site-builder-qa/dossier","opportunity_family_dossier_url":"/opportunities/families/site-builder-qa/dossier","family_dossier_api_url":"/api/opportunities/families/site-builder-qa/dossier","opportunity_family_dossier_api_url":"/api/opportunities/families/site-builder-qa/dossier","urls":{"dossier":"/opportunities/families/site-builder-qa/dossier","family":"/opportunities?family=site-builder-qa"},"api_urls":{"dossier":"/api/opportunities/families/site-builder-qa/dossier","family":"/api/opportunities/families?family=site-builder-qa"},"family_url":"/opportunities?family=site-builder-qa","opportunity_family_url":"/opportunities?family=site-builder-qa","opportunity_family_api_url":"/api/opportunities/families?family=site-builder-qa","commercial_gate_status":"mostly_supported","commercial_gate_label":"Gate mostly supported","commercial_card_status":"complete","commercial_card_missing_count":0},"commercial_card_summary":{"status":"complete","status_label":"complete","missing_count":0,"passed":9,"required":9,"summary":{}},"commercial_card_checklist":[{"key":"what_to_build","label":"What to build","passed":true,"status":"pass","detail":"Elementor visual QA and update safety for preventing client-site regressions before updates or edits go live"},{"key":"specific_buyer","label":"Specific buyer","passed":true,"status":"pass","detail":"site builders and agencies"},{"key":"urgent_problem","label":"Urgent problem","passed":true,"status":"pass","detail":"Page-builder and editor changes can break layouts, CTAs, or client pages after updates."},{"key":"competitor_gap","label":"Competitor gap","passed":true,"status":"pass","detail":"Gap to test: can buyers detect elementor layout regressions, widget breakage, and client-visible update issues before visual regression and update-safety risk. pain: builder, theme, or plugin update breakage, layout or c"}],"family_key":"site-builder-qa","family_name":"agency visual QA and update safety","opportunity_family_key":"site-builder-qa","opportunity_family_name":"agency visual QA and update safety","buyer":"site builders and agencies","what_to_build":"Elementor visual QA and update safety for preventing client-site regressions before updates or edits go live","urgent_problem":"Page-builder and editor changes can break layouts, CTAs, or client pages after updates.","problem":"Page-builder and editor changes can break layouts, CTAs, or client pages after updates.","competitor_gap":"Gap to test: can agencies maintaining client page-builder sites detect elementor layout regressions, widget breakage, and client-visible update issues before page-builder and editor changes can break layouts, CTAs, or client pages after updates? Tear down ECS – Ele Custom Skin for Elementor, Shortcodes and extra features for Phlox theme, Angie – Agentic AI (Beta) for that exact workflow. weak-incumbent signal volume: 290; teardown wedge: detect elementor layout regressions...","proof_support":"Proof base: outside proof that buyers already pay around the workflow, paid-adjacent plugin or pricing signals, repeated WordPress pain, and weak incumbent coverage around preventing client-site regressions before updates or edits go live.","needs_validation":"sharpen the buyer, pain, and paid workflow around detect elementor layout regressions, widget breakage, and client-visible update issues; interview agencies maintaining client page-builder sites before validation.","what_still_needs_validation":"sharpen the buyer, pain, and paid workflow around detect elementor layout regressions, widget breakage, and client-visible update issues; interview agencies maintaining client page-builder sites before validation.","commercial_attractiveness":"Commercial pull comes from agencies maintaining client page-builder sites: page-builder and editor changes can break layouts, CTAs, or client pages after updates. The first paid wedge is to detect elementor layout regressions, widget breakage, and client-visible update issues. Revenue can come from scheduled scans, visual regression snapshots, staging checks, multi-site portfolios, and client reports.","first_validation_wedge":"detect elementor layout regressions, widget breakage, and client-visible update issues","mvp_wedge":"detect elementor layout regressions, widget breakage, and client-visible update issues","decision_bucket":"investigate_pain","decision_bucket_label":"Investigate Pain","api_urls":{"evidence":"/api/evidence?slug=wpessential-icons","market":"/markets/elementor","opportunity":"/opportunities/elementor","plugin":"/api/plugins/wpessential-icons","source":"/api/evidence/source?url=https%3A%2F%2Fwordpress.org%2Fsupport%2Ftopic%2Fcall-to-a-member-function-desc-on-null%2F","wordpress":"https://wordpress.org/support/topic/call-to-a-member-function-desc-on-null/","family":"/api/opportunities/families?family=site-builder-qa","dossier":"/api/opportunities/families/site-builder-qa/dossier"},"commercial_readiness":{"total":51,"validation_ready":0,"core_validation_ready_rows":0,"family_wide_validation_ready_rows":0,"core_only_validation_ready_rows":0,"validation_scope_status":"not_ready","validation_scope_label":"Not ready","validation_scope_warning":"","validation_scope_counts":[{"scope":"not_validation_ready","label":"Not validation-ready","count":51}],"blocker_count":55,"caution_count":1,"status_counts":[{"status":"needs_thesis_sharpening","label":"Needs thesis sharpening","count":51}],"blocker_counts":[{"label":"Commercial gate not complete: investigate pain","count":50},{"label":"Commercial gate not complete: Gate mostly supported","count":1},{"label":"Gate missing: Paid adjacent proof","count":1},{"label":"Gate missing: Competitor weakness or gap","count":1},{"label":"Gate weak: Paid adjacent proof","count":1},{"label":"Gate weak: Competitor weakness or gap","count":1}],"caution_counts":[{"label":"Some grouped markets still lack paid-adjacent proof.","count":1}],"ready_for_buyer_validation":0,"needs_external_proof":0,"needs_family_proof":0,"needs_report":0,"needs_thesis_detail":0,"needs_thesis_sharpening":51,"research_first":0,"research_only":0,"hold":0,"unclassified":0,"core_wedge_validation_ready_rows":0,"full_family_validation_ready_rows":0,"scope_limited_validation_rows":0,"full_family_claim_ready_rows":0,"validation_claim_scope_policy":"Core-only validation rows are worth buyer testing, but they must not be presented as full-family commercial opportunities until family_wide_validation_ready is true."},"readiness_summary":{"total":51,"validation_ready":0,"core_validation_ready_rows":0,"family_wide_validation_ready_rows":0,"core_only_validation_ready_rows":0,"validation_scope_status":"not_ready","validation_scope_label":"Not ready","validation_scope_warning":"","validation_scope_counts":[{"scope":"not_validation_ready","label":"Not validation-ready","count":51}],"blocker_count":55,"caution_count":1,"status_counts":[{"status":"needs_thesis_sharpening","label":"Needs thesis sharpening","count":51}],"blocker_counts":[{"label":"Commercial gate not complete: investigate pain","count":50},{"label":"Commercial gate not complete: Gate mostly supported","count":1},{"label":"Gate missing: Paid adjacent proof","count":1},{"label":"Gate missing: Competitor weakness or gap","count":1},{"label":"Gate weak: Paid adjacent proof","count":1},{"label":"Gate weak: Competitor weakness or gap","count":1}],"caution_counts":[{"label":"Some grouped markets still lack paid-adjacent proof.","count":1}],"ready_for_buyer_validation":0,"needs_external_proof":0,"needs_family_proof":0,"needs_report":0,"needs_thesis_detail":0,"needs_thesis_sharpening":51,"research_first":0,"research_only":0,"hold":0,"unclassified":0,"core_wedge_validation_ready_rows":0,"full_family_validation_ready_rows":0,"scope_limited_validation_rows":0,"full_family_claim_ready_rows":0,"validation_claim_scope_policy":"Core-only validation rows are worth buyer testing, but they must not be presented as full-family commercial opportunities until family_wide_validation_ready is true."},"evidence_summary":{"total":1,"source_evidence_rows":0,"source_link_rows":1,"source_count_only_rows":0,"missing_source_evidence_rows":0,"source_evidence_not_applicable_rows":0,"source_link_coverage_percent":100.0,"evidence_required_rows":0,"evidence_required_rows_missing_source_links":0,"build_worthy_rows_missing_source_links":0,"decision_rows_missing_source_links":0,"missing_source_examples":[]},"cache":{"source":"durable_research_stale","generated_at":"2026-06-10T13:11:39+00:00","age_seconds":8912},"row_role":"supporting_evidence","recommendation_role":"evidence_input","evidence_role":"supports_opportunity_family","promotion_status":"linked_opportunity","promotion_status_label":"Evidence linked to opportunity","promotion_reason":"This row is supporting evidence linked to a commercial opportunity family, not the build-worthy opportunity itself.","is_build_worthy":false,"worth_validating":false,"build_worthy_scope":"opportunity_family","build_worthy_family_key":"site-builder-qa","opportunity_decision_status":"supporting_evidence"}