← JoomPulseCONTENT HISTORYWHAT CHANGED · RULE-BASED ANALYSIS
Update to JoomPulse
Snapshot Sep 30, 2026 · 22:52 UTC · version 2.0.1
Collection source: not recorded for this historical snapshot.
First saved snapshot
No earlier snapshot is available to establish a change.
Compare saved observations
Download comparison JSONFull technical diff · 0 changed fields
Full snapshot data
{
"name": "category-opportunity-index",
"description": "Reports the JoomPulse opportunity index (low, medium, or high) for one Mercado Livre (Brasil) category, alongside that category's current monthly market stats — estimated GMV, estimated sales, number of active sellers, number of active listings, and average ticket — then writes a plain-language read on how attractive the category is to enter. Use it when a seller wants a one-shot market snapshot for a category they name. Triggers include: \"is this category worth entering\", \"show the opportunity index for this category\", \"how big is this market\", and the pt-BR equivalents \"qual o índice de oportunidade\", \"vale a pena entrar nessa categoria\", \"tamanho de mercado da categoria\". Sales and revenue are JoomPulse estimates, not real transactions. For ranking the sellers in a category, use the top-sellers-in-category skill; for trending search terms, use the top-keywords-in-my-category skill; for comparing category aggregates against a user-supplied previous snapshot, use the category-monitor skill.",
"included_files": [],
"skill_md_contents": "---\nname: category-opportunity-index\ndescription: >\n Reports the JoomPulse opportunity index (low, medium, or high) for one\n Mercado Livre (Brasil) category, alongside that category's current monthly\n market stats — estimated GMV, estimated sales, number of active sellers,\n number of active listings, and average ticket — then writes a plain-language\n read on how attractive the category is to enter. Use it when a seller wants a\n one-shot market snapshot for a category they name. Triggers include: \"is this\n category worth entering\", \"show the opportunity index for this category\",\n \"how big is this market\", and the pt-BR equivalents \"qual o índice de\n oportunidade\", \"vale a pena entrar nessa categoria\", \"tamanho de mercado da\n categoria\". Sales and revenue are JoomPulse estimates, not real transactions.\n For ranking the sellers in a category, use the top-sellers-in-category skill; for\n trending search terms, use the top-keywords-in-my-category skill; for comparing\n category aggregates against a user-supplied previous snapshot, use the\n category-monitor skill.\n---\n\n# Category Opportunity Index\n\nThis skill answers a single question for **one** Mercado Livre (Brasil)\ncategory: is it worth entering? Given a category named in free text, it reads\nthat category's **opportunity index** (low, medium, or high) and its current\nmonthly market indicators — estimated GMV, estimated sales, active sellers,\nactive listings, and average ticket — then writes a short pt-BR summary that\ninterprets the opportunity level together with how concentrated the market is\n(monopolization) and which way it is growing.\n\nThis is a point-in-time snapshot, not a tracker. To rank the sellers inside a\ncategory, use the top-sellers-in-category skill. For the trending search terms\nshoppers use in a category, use the top-keywords-in-my-category skill. To compare\na category's aggregates against a user-supplied previous snapshot, use the\ncategory-monitor skill. This skill answers \"how attractive is this category right\nnow?\" for a category the user names.\n\n## Prerequisites\n\n- JoomPulse MCP access is configured for the current agent environment.\n- The user names the category to evaluate (free text is fine).\n- The available JoomPulse tools can resolve a category name to a category and\n return that category's current monthly market indicators plus its recent\n monthly history.\n\nIf JoomPulse MCP access is unavailable, stop and explain that the skill requires\nJoomPulse MCP setup before it can report a category's opportunity index.\n\n## Scope\n\n- **Mercado Livre (Brasil) only.** Other marketplaces are out of scope.\n- **Sales and revenue are JoomPulse estimates** derived from historical listing\n data — not real transactions. The seller, listing, and average-ticket counts\n shown here are estimates too. Disclose this in every output.\n- **Read-only.** The skill never writes or modifies anything.\n- **Language:** detect the seller's language and respond in it. Default to\n pt-BR.\n- **Keep the workflow invisible.** The seller wants the answer, not a play-by-\n play. If one approach does not return data, switch to another quietly; only if\n every approach fails do you say one short, friendly sentence. Never fill gaps\n from general knowledge, and never fabricate a number — show `—` when a value\n is missing.\n\n## Workflow\n\n### Step 1 — Resolve the category\n\n1. If the user did not name a category, ask which one to evaluate\n (for example *\"Para qual categoria você quer o Índice de Oportunidade?\"*).\n2. Use JoomPulse to match the free text to a category, retrieving candidate\n categories with their name, depth level, and opportunity index for the\n current month.\n3. Pick the best match. If several plausible categories come back, list the top\n candidates (name and level) and ask the user to choose — do not silently\n guess between unrelated categories. If nothing matches, say the category was\n not found and ask for a broader or rephrased term.\n\n### Step 2 — Get the current monthly indicators\n\nFor the chosen category, use JoomPulse to obtain its **latest month's** market\nindicators:\n\n- Opportunity index (low / medium / high).\n- Estimated monthly GMV and estimated monthly sales.\n- Number of active sellers and number of active listings.\n- Average ticket.\n- Context for the summary: the monopolization level (the top seller's share of\n orders, expressed 0–100%), the month-over-month growth direction, and any\n seasonality signal.\n\nAll indicators are monthly values. Use the always-positive monthly totals for\nmarket size, never a month-over-month delta — never label a change figure as a\ntotal or as \"revenue\".\n\n### Step 3 — Get ~12 months of history for the trend line\n\nUse JoomPulse to retrieve the category's recent monthly history (estimated GMV\nand estimated sales per month) for roughly the last 12 months. Order the months\noldest to newest. If fewer than about six months of history come back (a new or\nsparse category), treat history as unavailable and skip the trend line — show\nthe cards only.\n\n### Step 4 — Build the report (pt-BR)\n\n1. Lead with the **opportunity index**, prominently: 🟢 alto / 🟡 médio / 🔴\n baixo (show `—` if it is missing), noting the category name and level.\n2. Show the monthly indicators table (see Output).\n3. Write a 2–4 sentence **resumo** that interprets the opportunity index\n together with monopolization and growth:\n - What the level means — high implies good room for new sellers; low implies\n little relative upside.\n - **Monopolization** — high concentration (roughly above half) means the\n market is dominated by a few sellers and is harder to break into; low means\n demand is spread out and more accessible.\n - **Growth** — rising means the category is expanding; falling means it is\n contracting.\n - Optionally note seasonality if relevant.\n - End on a practical takeaway: worth entering / enter with caution / not very\n attractive right now.\n4. Add the mandatory disclaimer, and optionally the JoomPulse category dashboard\n link.\n\n## Output\n\nRespond in the seller's language, default pt-BR, with no commentary about how the\nreport was produced. The indicators table always renders as markdown so it shows\ncleanly in any client.\n\n**Opportunity badge** — a heading line, for example:\n\n> **Índice de Oportunidade: ALTO** 🟢 (categoria: <nome>, nível L<level>)\n\n**Monthly indicators table:**\n\n| Indicador | Valor (mensal) |\n|---|---|\n| GMV Estimado (Mensal) | R$ … |\n| Vendas Estimadas (Mensal) | … |\n| Vendedores Ativos | … |\n| Anúncios Ativos | … |\n| Ticket Médio | R$ … |\n\nFormat money as `R$` with pt-BR conventions (comma decimal, dot thousands, for\nexample `R$ 1,2 mi`, `8.400`, `R$ 49,90`) and round large values sensibly. Empty\ncells show `—`.\n\n**Resumo** — the 2–4 sentence interpretation described in the workflow.\n\n**Disclaimer (every report):**\n\n> ⚠️ GMV, vendas, vendedores e anúncios são estimativas do JoomPulse com base no\n> histórico de anúncios — não são transações reais. / GMV, sales, sellers, and\n> listings are JoomPulse estimates based on historical listing data — not actual\n> transactions.\n\nOptionally add the JoomPulse category dashboard link.\n\n## Visualization\n\nWhen the client can render inline visuals, present the opportunity badge,\nmetric cards, and the appropriate charts; otherwise fall back to a markdown\ntable plus text cards. Never block on visuals — if the rich-visual path is\nunavailable for any reason, render the markdown fallback. The monthly indicators\ntable always renders as markdown in the response text, on every surface, and the\n⚠️ estimate disclaimer always stays in the text.\n\nWhen inline visuals are available, present in one panel:\n\n- **Opportunity badge** at the top: Alta 🟢 / Média 🟡 / Baixa 🔴 (show `—` if\n missing).\n- **Five metric cards:** estimated monthly GMV, estimated monthly sales, active\n sellers, active listings, and average ticket — pt-BR formatted, money with\n `R$`. These match the five rows of the monthly indicators table.\n- **12-month trend line** of estimated monthly GMV (one point per month, x = mês,\n y = GMV; optionally a second series for estimated sales). Render this chart\n only when the data supports it — skip it entirely when there are fewer than\n about six months of history, leaving just the cards. Optionally add a small\n growth-% chip from the month-over-month change.\n- **Monopolization bar:** a 0–100% horizontal bar; note that a **low** value is\n the favorable end (demand spread across many sellers).\n- **Seasonality chip:** a pill only, no bar — \"Não sazonal\" when the category is\n not seasonal, or \"Sazonal · pico {mês}\" naming the peak month.\n\nPresentation rules: use the medal palette consistently if medals appear anywhere\n(platina = purple, ouro = amber, prata = blue, sem medalha = white with a thin\nborder). Any change or difference column uses a word as its header (\"Variação\",\nor \"Era | Agora\"), never a bare \"Δ\" symbol. Show a 🟢/🔴/🆕 legend only on a run\nwhere those symbols actually appear — never on a first or baseline run. Render a\nchart only when the underlying data supports it, and skip it otherwise.\n\nOn a text-only surface, render the same information as markdown and text: the\nbadge as a heading line, the five metrics as the indicators table or text cards,\nthe trend as one short line describing the ~12-month direction (only when there\nare at least about six months of history), the monopolization as a text\npercentage (for example `Monopolização: 38% (baixa — bom)`), and the seasonality\nas a text chip line.\n\n## Notes & Guardrails\n\nThe seller should never see a system or stack error — only a friendly next step.\n\n- **Ambiguous category:** list the candidate categories and ask the user to\n choose. Do not guess between unrelated categories.\n- **No current data / empty result:** say you could not find current data for\n that category and suggest a broader or different term. Never fabricate numbers.\n- **Opportunity index missing:** show `—` for the badge and base the summary on\n monopolization and growth instead.\n- **Sparse history:** when fewer than about six months of history exist, omit the\n trend line and report the snapshot only.\n- **Market data temporarily unavailable:** retry once quietly; if it is still\n down, say market data is temporarily unavailable and to try again. Never paste\n internal error text, HTTP codes, or field names to the seller.\n- **Missing values:** show `—` for any empty indicator rather than guessing.\n"
}SHA-256: 0c16e5ef1e2ef50ccb3ce98e1dc6a53db486c10dbf409062204afbe3f5a839a3