<OpportunityMatrix>
Effort × impact scatter plot (effort increases left to right, impact increases bottom to top). Top-left (low effort, high impact) is the usual quick-win zone. Optional category (or name) tabs match the DataTable filter pattern.
When to use: Use to visualise a portfolio of candidate use cases / opportunities scored on two dimensions. Typically immediately before the recommended use case grid. Also fits SEO analyses: plot keyword clusters or content opportunities as effort × impact, with categories like Technical, Content, and Authority as tabs.
Preview
Twelve use cases scored on effort and impact
Portfolio by function
| Prop | Type | Notes |
|---|---|---|
| items | { name: string; effort: number; impact: number; category?: string }[] | Required. Each item is plotted as a dot. effort and impact are 1–5. |
| title | string | Optional. Chart title. |
| description | string | Optional. Subtitle. |
| tabs | { id: string; label: string }[] | Optional. Optional filter tabs (same pattern as DataTable). Include `{ id: "all", label: "All" }` first. Other tab ids slug-match `tabFilterKey` on each item (default: category names, e.g. `finance` for Finance). |
| tabFilterKey | "category" | "name" | Optional. Default: category. Which item field tab ids match after slugify.Values: category, name |
Examples
<OpportunityMatrix
title="Twelve use cases scored on effort and impact"
items={[
{ name: "Supplier invoice intake", effort: 2, impact: 5, category: "Finance" },
{ name: "Order acknowledgements", effort: 2, impact: 4, category: "Operations" },
{ name: "HR ticket triage", effort: 1, impact: 3, category: "People" }
]}
/><OpportunityMatrix
title="Portfolio by function"
tabs={[
{ id: "all", label: "All" },
{ id: "finance", label: "Finance" },
{ id: "operations", label: "Operations" }
]}
items={[
{ name: "Invoice intake", effort: 2, impact: 5, category: "Finance" },
{ name: "Order acknowledgements", effort: 2, impact: 4, category: "Operations" }
]}
/>