> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vortexiq.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Amazon (Selling Partner) on Vortex IQ

> Monitor Amazon (Selling Partner) listings, account health and orders, and catch suppressions and sync problems before they cost sales.

export const CapabilityPage = ({data}) => {
  const d = data || ({});
  const [tab, setTab] = useState('overview');
  const [sel, setSel] = useState(null);
  const [q, setQ] = useState('');
  const [outcome, setOutcome] = useState('');
  const [status, setStatus] = useState('');
  const [limit, setLimit] = useState(8);
  const monitor = d.monitor || [];
  const audits = d.audits || [];
  const autos = d.autos || [];
  const outcomes = useMemo(() => {
    const s = new Set();
    monitor.forEach(m => s.add(m.o));
    audits.forEach(a => s.add(a.o));
    return [...s].sort();
  }, [monitor, audits]);
  const rows = useMemo(() => {
    const t = q.trim().toLowerCase();
    if (tab === 'monitor') {
      return monitor.filter(m => (!t || (m.n + ' ' + (m.d || '')).toLowerCase().includes(t)) && (!outcome || m.o === outcome));
    }
    if (tab === 'audit') {
      return audits.filter(a => (!t || (a.n + ' ' + (a.why || '')).toLowerCase().includes(t)) && (!outcome || a.o === outcome) && (!status || a.s === status));
    }
    if (tab === 'automate') {
      return autos.filter(w => !t || (w.n + ' ' + (w.d || '')).toLowerCase().includes(t));
    }
    return [];
  }, [tab, q, outcome, status, monitor, audits, autos]);
  const pill = (text, kind) => {
    const tone = kind === 'good' ? {
      color: '#1f9e54',
      borderColor: '#1f9e54',
      background: '#ecf8f110'
    } : kind === 'warn' ? {
      color: '#c07a17',
      borderColor: '#c07a17',
      background: '#fdf6e910'
    } : kind === 'bad' ? {
      color: '#c53527',
      borderColor: '#c53527',
      background: '#fdf0ee10'
    } : kind === 'brand' ? {
      color: '#5529d6',
      borderColor: '#5529d6'
    } : {
      color: 'inherit',
      borderColor: 'currentColor',
      opacity: 0.65
    };
    return <span key={text} style={{
      fontSize: '10.5px',
      fontFamily: 'ui-monospace, monospace',
      border: '1px solid',
      borderRadius: '999px',
      padding: '2px 8px',
      whiteSpace: 'nowrap',
      ...tone
    }}>
        {text}
      </span>;
  };
  const sevKind = s => s === 'critical' ? 'bad' : s === 'high' ? 'warn' : 'muted';
  const fixKind = s => s === 'Prepared fix' ? 'good' : s === 'Candidate remediation' ? 'warn' : 'muted';
  const card = (item, kind) => {
    const title = item.n;
    const badges = kind === 'monitor' ? [pill(item.o, 'brand'), pill(item.a === 'Watch only' || item.a === 'Merchant rule' ? item.a : `Alert ${item.a}`, 'muted')] : kind === 'audit' ? [pill(item.sev, sevKind(item.sev)), pill(item.s, fixKind(item.s))] : [pill(item.role, 'brand'), pill(item.ready, 'good')];
    const body = kind === 'monitor' ? item.nc ? 'Description pending editorial review; the signal is live.' : item.d : kind === 'audit' ? item.why : item.d;
    return <button key={title} onClick={() => setSel({
      kind,
      item
    })} style={{
      display: 'block',
      width: '100%',
      textAlign: 'left',
      border: '1px solid rgba(128,128,128,.28)',
      borderRadius: '10px',
      padding: '12px 14px',
      marginBottom: '8px',
      background: 'transparent',
      cursor: 'pointer',
      font: 'inherit',
      color: 'inherit'
    }}>
        <div style={{
      display: 'flex',
      gap: '10px',
      justifyContent: 'space-between',
      alignItems: 'flex-start',
      flexWrap: 'wrap'
    }}>
          <strong style={{
      fontSize: '14px'
    }}>{title}</strong>
          <span style={{
      display: 'flex',
      gap: '5px',
      flexWrap: 'wrap'
    }}>{badges}</span>
        </div>
        {body ? <div style={{
      fontSize: '12.5px',
      opacity: 0.72,
      marginTop: '4px'
    }}>{body}</div> : null}
      </button>;
  };
  const tabBtn = (id, label) => <button key={id} onClick={() => {
    setTab(id);
    setLimit(8);
    setQ('');
  }} style={{
    border: 0,
    background: 'none',
    font: 'inherit',
    fontWeight: 600,
    fontSize: '14px',
    padding: '9px 14px',
    cursor: 'pointer',
    color: tab === id ? '#5529d6' : 'inherit',
    opacity: tab === id ? 1 : 0.65,
    borderBottom: tab === id ? '2px solid #5529d6' : '2px solid transparent'
  }}>
      {label}
    </button>;
  const inputStyle = {
    border: '1px solid rgba(128,128,128,.3)',
    borderRadius: '999px',
    padding: '7px 13px',
    font: 'inherit',
    fontSize: '13px',
    background: 'transparent',
    color: 'inherit'
  };
  return <div style={{
    position: 'relative'
  }}>
      {}
      <div style={{
    display: 'grid',
    gridTemplateColumns: 'repeat(auto-fit,minmax(120px,1fr))',
    gap: '10px',
    margin: '18px 0'
  }}>
        {(d.stats || []).map(([v, l]) => <div key={l} style={{
    border: '1px solid rgba(128,128,128,.28)',
    borderRadius: '10px',
    padding: '11px 13px'
  }}>
            <div style={{
    fontSize: v.length > 6 ? '15px' : '21px',
    fontWeight: 700,
    letterSpacing: '-.02em',
    color: v.length > 6 ? '#5529d6' : 'inherit'
  }}>{v}</div>
            <div style={{
    fontSize: '11px',
    opacity: 0.66
  }}>{l}</div>
          </div>)}
      </div>

      <div style={{
    display: 'flex',
    gap: '4px',
    borderBottom: '1px solid rgba(128,128,128,.25)',
    marginBottom: '16px',
    flexWrap: 'wrap'
  }}>
        {tabBtn('overview', 'Overview')}
        {tabBtn('monitor', `Monitor (${monitor.length})`)}
        {tabBtn('audit', `Audit (${audits.length})`)}
        {tabBtn('automate', 'Automate')}
      </div>

      {tab === 'overview' && <div>
          <div style={{
    display: 'grid',
    gridTemplateColumns: 'repeat(auto-fit,minmax(240px,1fr))',
    gap: '10px'
  }}>
            {outcomes.map(o => <div key={o} style={{
    border: '1px solid rgba(128,128,128,.28)',
    borderLeft: '3px solid #5529d6',
    borderRadius: '10px',
    padding: '11px 14px'
  }}>
                <strong style={{
    fontSize: '13.5px'
  }}>{o}</strong>
              </div>)}
          </div>
          <p style={{
    fontSize: '13px',
    opacity: 0.75,
    marginTop: '16px'
  }}>
            Every capability follows the same controlled sequence: connect, monitor, detect, recommend,
            approve, execute, verify. Nothing changes a connected system without the approval step.
          </p>
        </div>}

      {tab !== 'overview' && <div>
          <div style={{
    display: 'flex',
    gap: '8px',
    marginBottom: '12px',
    flexWrap: 'wrap'
  }}>
            <input style={{
    ...inputStyle,
    flex: 1,
    minWidth: '170px'
  }} placeholder={`Search ${tab === 'monitor' ? 'signals' : tab === 'audit' ? 'checks' : 'workflows'}...`} value={q} onChange={e => {
    setQ(e.target.value);
    setLimit(8);
  }} />
            {tab !== 'automate' && <select style={inputStyle} value={outcome} onChange={e => {
    setOutcome(e.target.value);
    setLimit(8);
  }}>
                <option value="">All outcomes</option>
                {outcomes.map(o => <option key={o} value={o}>{o}</option>)}
              </select>}
            {tab === 'audit' && <select style={inputStyle} value={status} onChange={e => {
    setStatus(e.target.value);
    setLimit(8);
  }}>
                <option value="">All fix statuses</option>
                <option>Prepared fix</option>
                <option>Candidate remediation</option>
                <option>Report only</option>
              </select>}
          </div>

          {rows.length === 0 && tab === 'automate' && <div style={{
    border: '1px dashed #5529d6',
    borderRadius: '10px',
    padding: '15px'
  }}>
              <strong style={{
    fontSize: '14px'
  }}>Ready to build your first {d.name} workflow</strong>
              <p style={{
    fontSize: '12.5px',
    opacity: 0.75,
    margin: '6px 0 0'
  }}>
                Vortex IQ is integrated with {d.reads} read and {d.writes} write operations on {d.name}.
                Pick a trigger, add them as steps, and every step that changes data pauses for approval.
              </p>
            </div>}
          {rows.length === 0 && tab !== 'automate' && <div style={{
    opacity: 0.6,
    fontSize: '13px'
  }}>Nothing matches this search or filter.</div>}

          {rows.slice(0, limit).map(r => card(r, tab))}

          {rows.length > limit && <button onClick={() => setLimit(rows.length)} style={{
    ...inputStyle,
    display: 'block',
    margin: '10px auto 0',
    cursor: 'pointer'
  }}>
              View all {rows.length}
            </button>}
        </div>}

      {}
      {sel && <>
          <div onClick={() => setSel(null)} style={{
    position: 'fixed',
    inset: 0,
    background: 'rgba(10,6,26,.45)',
    zIndex: 40
  }} />
          <aside style={{
    position: 'fixed',
    top: 0,
    right: 0,
    width: 'min(430px, 94vw)',
    height: '100vh',
    overflowY: 'auto',
    background: 'var(--background, #fff)',
    backgroundColor: 'light-dark(#fff, #0c061f)',
    borderLeft: '1px solid rgba(128,128,128,.3)',
    padding: '20px 22px',
    zIndex: 50
  }}>
            <button onClick={() => setSel(null)} style={{
    float: 'right',
    border: '1px solid rgba(128,128,128,.3)',
    background: 'transparent',
    color: 'inherit',
    borderRadius: '999px',
    width: '30px',
    height: '30px',
    cursor: 'pointer'
  }}>
              ×
            </button>
            <DetailBody sel={sel} d={d} pill={pill} sevKind={sevKind} fixKind={fixKind} />
          </aside>
        </>}
    </div>;
};

Monitor Amazon (Selling Partner) listings, account health and orders, and catch suppressions and sync problems before they cost sales.

No changes are made without the configured approval policy. Read-only operations do not modify the connected system; schedules, access scopes, API usage and data handling remain governed by Vortex IQ controls.

[Connect or manage this source](https://app.vortexiq.ai/workbench/settings/sources) · [How connecting works](/integrations/connector-catalogue) · [Create a workflow](https://app.vortexiq.ai/workbench/flows/create?connector=amazon-seller)

<CapabilityPage data={{"name": "Amazon (Selling Partner)", "reads": 58, "writes": 68, "stats": [["59", "performance signals"], ["17", "automated checks"], ["0", "prepared fixes"], ["0", "proven workflows"], ["126", "API operations"]], "resRows": [{"n": "notification subscriptions", "r": 3, "w": 2}, {"n": "feeds", "r": 2, "w": 2}, {"n": "notification destinations", "r": 2, "w": 2}, {"n": "orders", "r": 4, "w": 0}, {"n": "reports", "r": 2, "w": 2}, {"n": "report schedules", "r": 2, "w": 2}, {"n": "shippingcarrieraccounts", "r": 0, "w": 3}, {"n": "shippingshipments", "r": 1, "w": 2}], "opsPhrase": "over 13,000", "connPhrase": "more than 200", "monitor": [{"n": "Ad Spend on Out-of-Stock ASINs", "o": "Protect revenue", "a": "5 / 50", "d": "Live $/day burning on ASINs that can't convert. The pause-now alert.", "nc": false}, {"n": "Buy-Box Loss Burst", "o": "Run operations", "a": "0 / 3", "d": "Alerts for Buy-Box Loss Burst.", "nc": false}, {"n": "Catalogue Drift vs DTC", "o": "Grow revenue", "a": "5 / 50", "d": "ASINs whose price/title/image diverge from DTC siblings ,  brand consistency, MAP, SEO impact.", "nc": false}, {"n": "Estimated Revenue Lost to Buy-Box Loss", "o": "Grow revenue", "a": "0 / 1000", "d": "Buy-box-loss × 30-day units × ASP ,  recoverable revenue if buy-box reclaimed.", "nc": false}, {"n": "New Suppressions (24h)", "o": "Run operations", "a": "5 / 50", "d": "Alerts for New Suppressions (24h).", "nc": false}, {"n": "Revenue at Risk (live)", "o": "Protect revenue", "a": "Merchant rule", "d": "Sum of (suppressed_listings × velocity × ASP) + (no-buy-box ASINs × loss-share × velocity) ,  recoverable revenue.", "nc": false}, {"n": "Suppressed Listings", "o": "Grow revenue", "a": "5 / 50", "d": "Listings hidden from search until missing attrs are filled ,  direct revenue blocker.", "nc": false}, {"n": "Account Health Status", "o": "Run operations", "a": "1 / 2", "d": "Account Health Status for the selected period.", "nc": true}, {"n": "Total Revenue", "o": "Grow revenue", "a": "0 / -5", "d": "Total Revenue for the selected period.", "nc": true}, {"n": "A-to-z Guarantee Claims (open)", "o": "Run operations", "a": "Merchant rule", "d": "Alerts for A-to-z Guarantee Claims (open).", "nc": false}, {"n": "ASIN Conversion Rank by Query", "o": "Grow revenue", "a": "Watch only", "d": "ASIN Conversion Rank by Query.", "nc": false}, {"n": "ASINs Approaching Long-Term Storage", "o": "Run operations", "a": "5 / 50", "d": "Inventory aging past 270 days ,  long-term storage fees kick in next cycle.", "nc": false}, {"n": "ASINs Stocking Out \u003c7 Days", "o": "Run operations", "a": "0 / 5", "d": "Forecast: current_stock / 30D-velocity ≤ 7. The action queue for replenishment.", "nc": false}, {"n": "ASINs with Third-Party Offers", "o": "Grow revenue", "a": "5 / 50", "d": "Private-label ASINs where someone else is also offering ,  hijack candidates.", "nc": false}, {"n": "Account Health Creep", "o": "Run operations", "a": "1 / 2", "d": "Alerts for Account Health Creep.", "nc": false}, {"n": "Ad on OOS Detected", "o": "Run operations", "a": "5 / 50", "d": "Alerts for Ad on OOS Detected.", "nc": false}, {"n": "Brand Registry Coverage", "o": "Catalogue quality", "a": "Merchant rule", "d": "% of own-brand ASINs enrolled in Brand Registry. Enrolment unlocks A+/Stores/Sponsored Brands and protects against hijackers.", "nc": false}, {"n": "Buy-Box Win Rate (top-50 ASINs)", "o": "Grow revenue", "a": "90 / 70", "d": "Sample top-50 revenue ASINs; cached 6h to respect SP-API rate limits.", "nc": false}, {"n": "Channel Mix (Amazon vs DTC)", "o": "Protect revenue", "a": "Merchant rule", "d": "Channel Mix (Amazon vs DTC), shown by share.", "nc": false}, {"n": "MAP Violation Risk (vs DTC)", "o": "Protect revenue", "a": "Merchant rule", "d": "Alerts for MAP Violation Risk (vs DTC).", "nc": false}, {"n": "Marketplace Health Score", "o": "Control risk and change", "a": "95 / 85", "d": "Composite ,  auth-rate × buy-box × inverse suppressed × inverse account-health-creep. The single number.", "nc": false}, {"n": "Negative Feedback Spike", "o": "Catalogue quality", "a": "1 / 2", "d": "Alerts for Negative Feedback Spike.", "nc": false}, {"n": "Order Defect Rate", "o": "Run operations", "a": "1 / 2", "d": "Stays below 1% or your account gets reviewed for suspension.", "nc": false}, {"n": "Organic vs Ad Sales Share", "o": "Grow revenue", "a": "Merchant rule", "d": "Organic vs Ad Sales Share, shown by share.", "nc": false}, {"n": "Per-ASIN Fee Outliers", "o": "Catalogue quality", "a": "Merchant rule", "d": "ASINs whose fee % is \u003e2× their category median ,  repackaging / dimensional-weight optimisation candidates.", "nc": false}, {"n": "Replenishment Recommendations", "o": "Run operations", "a": "Watch only", "d": "Per-SKU: current stock, 30D velocity, days-of-cover, suggested replenish qty, lead-time-aware reorder date.", "nc": false}, {"n": "Return Reason Clusters by ASIN", "o": "Catalogue quality", "a": "Merchant rule", "d": "Reason-coded returns clustered by ASIN ,  sizing / quality / listing-mismatch signals. (Replaces Brand-Analytics-gated 'top complaints'.)", "nc": false}, {"n": "Review Velocity (30d)", "o": "Grow revenue", "a": "Merchant rule", "d": "Slowing review velocity = SEO / discoverability erosion.", "nc": false}, {"n": "Sales Volume Anomalies", "o": "Grow revenue", "a": "Merchant rule", "d": "Sales Volume Anomalies over time.", "nc": false}, {"n": "Star Rating Drift (top-50 revenue)", "o": "Grow revenue", "a": "Merchant rule", "d": "Star Rating Drift (top-50 revenue) over time.", "nc": false}, {"n": "Stranded Inventory Value", "o": "Run operations", "a": "Merchant rule", "d": "Stock with no active buy-box or suppressed listing ,  cash sitting in warehouses.", "nc": false}, {"n": "Top ASINs by Revenue", "o": "Grow revenue", "a": "Watch only", "d": "Top ASINs by Revenue.", "nc": false}, {"n": "Top Branded Search Terms", "o": "Grow revenue", "a": "Watch only", "d": "Top Branded Search Terms, compared across items.", "nc": false}, {"n": "Top Buy-Box-Loss ASINs", "o": "Protect revenue", "a": "Merchant rule", "d": "Per-ASIN breakdown: buy-box %, units lost, $ at risk. The action queue for the marketplace manager.", "nc": false}, {"n": "Top Non-Branded Search Terms", "o": "Grow revenue", "a": "Watch only", "d": "Discovery keywords your brand should defend / expand on ,  SEO + ad-targeting input.", "nc": false}, {"n": "A+ Content Coverage (top-50 revenue)", "o": "Grow revenue", "a": "90 / 70", "d": "A+ Content Coverage (top-50 revenue) for the selected period.", "nc": true}, {"n": "Active Listings", "o": "Catalogue quality", "a": "Watch only", "d": "Active Listings for the selected period.", "nc": true}, {"n": "Amazon Share of Total Revenue", "o": "Grow revenue", "a": "Watch only", "d": "Amazon Share of Total Revenue for the selected period.", "nc": true}, {"n": "Average Order Value", "o": "Grow revenue", "a": "0 / -5", "d": "Average Order Value for the selected period.", "nc": true}, {"n": "Avg Days to Settlement", "o": "Run operations", "a": "7 / 21", "d": "Avg Days to Settlement for the selected period.", "nc": true}, {"n": "Buy-Box Trend (top revenue ASINs)", "o": "Grow revenue", "a": "90 / 70", "d": "Buy-Box Trend (top revenue ASINs) for the selected period.", "nc": true}, {"n": "Catalogue Drift Revenue at Risk", "o": "Protect revenue", "a": "Merchant rule", "d": "Catalogue Drift Revenue at Risk for the selected period.", "nc": true}, {"n": "Days of Cover (avg)", "o": "Run operations", "a": "Merchant rule", "d": "Days of Cover (avg) for the selected period.", "nc": true}, {"n": "FBA Fees", "o": "Run operations", "a": "Watch only", "d": "FBA Fees for the selected period.", "nc": true}, {"n": "FBA Storage Fees", "o": "Run operations", "a": "Merchant rule", "d": "FBA Storage Fees for the selected period.", "nc": true}, {"n": "Fees % of Revenue", "o": "Grow revenue", "a": "12 / 18", "d": "Fees % of Revenue for the selected period.", "nc": true}, {"n": "Inactive Listings", "o": "Catalogue quality", "a": "5 / 50", "d": "Inactive Listings for the selected period.", "nc": true}, {"n": "Late Shipment Rate", "o": "Run operations", "a": "1 / 2", "d": "Late Shipment Rate for the selected period.", "nc": true}, {"n": "Negative Feedback (30d)", "o": "Catalogue quality", "a": "1 / 2", "d": "Negative Feedback (30d) for the selected period.", "nc": true}, {"n": "Net Revenue (after fees + refunds)", "o": "Protect revenue", "a": "0 / -5", "d": "Net Revenue (after fees + refunds) for the selected period.", "nc": true}, {"n": "Oldest Pending Payout (days)", "o": "Run operations", "a": "7 / 21", "d": "Oldest Pending Payout (days) for the selected period.", "nc": true}, {"n": "Orders", "o": "Grow revenue", "a": "Watch only", "d": "Orders for the selected period.", "nc": true}, {"n": "Pending Settlement", "o": "Run operations", "a": "Watch only", "d": "Pending Settlement for the selected period.", "nc": true}, {"n": "Pre-Fulfilment Cancel Rate", "o": "Protect revenue", "a": "1 / 2", "d": "Pre-Fulfilment Cancel Rate for the selected period.", "nc": true}, {"n": "Referral Fees", "o": "Run operations", "a": "Watch only", "d": "Referral Fees for the selected period.", "nc": true}, {"n": "Return Rate", "o": "Run operations", "a": "5 / 15", "d": "Return Rate for the selected period.", "nc": true}, {"n": "Revenue Over Time", "o": "Grow revenue", "a": "0 / -5", "d": "Revenue Over Time for the selected period.", "nc": true}, {"n": "Search Query Share (Brand)", "o": "Grow revenue", "a": "Merchant rule", "d": "Search Query Share (Brand) for the selected period.", "nc": true}, {"n": "Sell-Through Rate (FBA)", "o": "Run operations", "a": "Merchant rule", "d": "Sell-Through Rate (FBA) for the selected period.", "nc": true}], "audits": [{"n": "Ad Spend Likely Burning on OOS / Suppressed ASINs", "o": "Protect revenue", "sev": "high", "s": "Report only", "why": "Ad spend pointed at out-of-stock or suppressed ASINs buys clicks that cannot convert, burning budget at exactly zero return.", "codes": ["AZ10"]}, {"n": "Listing buy-box win rate below 30% (Amazon-specific; non-applicable elsewhere)", "o": "Grow revenue", "sev": "high", "s": "Candidate remediation", "why": "Losing the Buy Box means losing the sale even when the listing wins the search; price, delivery promise and account health drive the algorithm.", "codes": ["MARKETPLACE-LISTING-002"]}, {"n": "Listings missing required attributes (varies per marketplace)", "o": "Grow revenue", "sev": "high", "s": "Candidate remediation", "why": "A listing missing a required attribute is commonly suppressed, down-ranked in marketplace search, or blocked from certain placements entirely, so it can be losing sales without showing any error the seller would notice on the listing itself.", "codes": ["MARKETPLACE-LISTING-001"]}, {"n": "Order Defect Rate", "o": "Run operations", "sev": "high", "s": "Candidate remediation", "why": "Order Defect Rate is Amazon's primary account-health metric; sustained breaches lead to suspension, which is an existential event for a marketplace business.", "codes": ["AZ05"]}, {"n": "Seller feedback score dropped \u003e 3pp in 30 days", "o": "Grow revenue", "sev": "high", "s": "Report only", "why": "Seller feedback score is one of the strongest signals marketplace search ranking and buy-box eligibility use, so a drop this size can cost visibility on every listing, not just the ones that triggered the negative feedback.", "codes": ["MARKETPLACE-FEEDBACK-001"]}, {"n": "Buy-Box Win Rate Below Target", "o": "Grow revenue", "sev": "medium", "s": "Report only", "why": "Losing the Buy Box means losing the sale even when the listing wins the search; price, delivery promise and account health drive the algorithm.", "codes": ["AZ03"]}, {"n": "Catalogue Drift Watch: Amazon vs DTC", "o": "Catalogue quality", "sev": "medium", "s": "Candidate remediation", "why": "Catalogue drift between marketplace and DTC (price, content, availability) confuses customers and can breach marketplace policy.", "codes": ["AZ11"]}, {"n": "FBA: ASINs Aging Toward Long-Term Storage", "o": "Run operations", "sev": "medium", "s": "Candidate remediation", "why": "FBA stock aging toward long-term storage accrues fees that can exceed the product's margin; act before the fee date, not after.", "codes": ["AZ08"]}, {"n": "Late Shipment Rate", "o": "Run operations", "sev": "medium", "s": "Candidate remediation", "why": "Late shipments damage account health and demote listings; the marketplace punishes the seller, not the carrier.", "codes": ["AZ06"]}, {"n": "Limited A+ Content Coverage", "o": "Grow revenue", "sev": "medium", "s": "Report only", "why": "A+ content lifts Amazon conversion measurably; ASINs without it convert below their potential on the same traffic.", "codes": ["AZ02"]}, {"n": "Marketplace fee % drifted \u003e 2pp vs last quarter", "o": "Grow revenue", "sev": "medium", "s": "Report only", "why": "The share of revenue this marketplace takes as fees has shifted by more than 2 percentage points from last quarter. On thin-margin products, a shift this size can move a listing from profitable to break-even without anything on the store side changing at all.", "codes": ["MARKETPLACE-FEE-001"]}, {"n": "Payout overdue \u003e 7 days vs marketplace's typical schedule", "o": "Run operations", "sev": "medium", "s": "Candidate remediation", "why": "A payout is running more than 7 days behind this marketplace's usual schedule. That is cash the store has already earned sitting outside its bank account, which matters directly to cash flow regardless of how the underlying sales are performing.", "codes": ["MARKETPLACE-PAYOUT-001"]}, {"n": "Pre-Fulfilment Cancel Rate", "o": "Protect revenue", "sev": "medium", "s": "Candidate remediation", "why": "Cancelling before fulfilment counts directly against seller metrics and usually traces to inventory sync problems.", "codes": ["AZ07"]}, {"n": "Return rate spiked \u003e 50% vs 90-day average", "o": "Grow revenue", "sev": "medium", "s": "Report only", "why": "Returns on this marketplace jumped more than 50% above the recent average. Beyond the direct cost of the returned goods and return shipping, a spike this size often also damages the seller-performance metrics the marketplace uses for search ranking and account health.", "codes": ["MARKETPLACE-RETURN-001"]}, {"n": "Stranded FBA Inventory", "o": "Run operations", "sev": "medium", "s": "Candidate remediation", "why": "Stranded inventory sits in FBA warehouses unsellable, accruing storage fees while earning nothing.", "codes": ["AZ09"]}, {"n": "Suppressed Amazon Listings", "o": "Run operations", "sev": "medium", "s": "Candidate remediation", "why": "Suppressed listings earn nothing while they sit invisible; each one is inventory paid for and unsellable until the flag is cleared.", "codes": ["AZ01"]}, {"n": "Third-Party Offers on Private-Label ASINs", "o": "Protect revenue", "sev": "medium", "s": "Report only", "why": "Third-party offers on private-label ASINs are usually hijackers or unauthorised resellers, taking sales and risking counterfeit complaints.", "codes": ["AZ04"]}], "autos": [], "inValidation": 0}} />
