{% extends "base.html" %} {% block title %}Opportunity Queue{% endblock %} {% block content %}
From evidence to accountable action

Opportunity Queue

Filter and challenge recommendations. Every row exposes the metrics, rule and owner behind the proposed action.
{% if weeks %}{% endif %}
Prototype assumptions: replenishment decisions combine stock cover, sell-through and relative conversion. Thresholds require expert validation before production use.
{{ rows|length }} visible products
{% for r in rows %}{% else %}{% endfor %}
PriorityProductAction and rationaleOwnerCVRSell-throughCoverStockReturnsIndicative exposure
{{ r.priority_band }} · {{ r.priority_score }}
{{ r.product_name }}
{{ r.brand }} · {{ r.category }}
{{ r.recommended_action }}
{{ r.reason }}
{{ r.confidence }} evidence · Rule {{ r.rule_id }}
{{ r.owner }}{{ '%.1f'|format(r.effective_cvr) }}%{{ '%.1f'|format(r.sell_through_pct) }}%{{ '%.1f'|format(r.cover) }} wks{{ r.units_remaining|int }}{{ '%.1f'|format(r.returns_pct) }}%£{{ '{:,.0f}'.format(r.value_proxy) }}
{% if selected_week %}No products match the selected filters.{% else %}Upload a workbook to generate the Opportunity Queue.{% endif %}

Decision-rule assumptions

Visible thresholds make the logic auditable.

Urgent replenishment: ≤ {{ rule_thresholds.urgent_cover_weeks }} weeks cover, ≥ {{ rule_thresholds.strong_sell_through_pct|int }}% sell-through and strong relative CVR
Replenishment review: ≤ {{ rule_thresholds.review_cover_weeks }} weeks cover and ≥ {{ rule_thresholds.review_sell_through_pct|int }}% sell-through
Aged stock: ≥ {{ rule_thresholds.aged_cover_weeks|int }} weeks cover, < {{ rule_thresholds.aged_sell_through_pct|int }}% sell-through and > {{ rule_thresholds.aged_stock_units|int }} units
Returns review: above {{ rule_thresholds.returns_review_pct|int }}%
Priority blend: {{ (priority_weights.weighted_score*100)|int }}% weighted score, {{ (priority_weights.rule_urgency*100)|int }}% urgency, {{ (priority_weights.evidence_strength*100)|int }}% evidence strength

Customer demand signals

Search behaviour supporting assortment decisions.

{% for r in search_rows %}{% else %}{% endfor %}
Search termSearchesZero resultsCVR
{{ r.search_term }}{{ r.total_searches|int }}{{ '%.1f'|format(r.zero_result_rate) }}%{{ '%.1f'|format(r.avg_cvr) }}%
No search evidence is available.

Regional context

Supporting evidence retained below the main decision workflow.

{% for r in regional_rows %}{% else %}{% endfor %}
RegionRevenueSessionsCVR
{{ r.region }}£{{ '{:,.0f}'.format(r.revenue_ga4) }}{{ r.sessions|int }}{{ '%.1f'|format(r.cvr) }}%
No regional evidence is available.
{% endblock %}