FullMention
Get API Access
Use one ingestion pull, store data locally, and run analysis offline to minimize API calls.

Category Dominance Matrix

Map brand dominance by category clusters.

Category Dominance Matrix

What it does

Map and analyze brand dominance across different category clusters based on keyword and description signals, computing rank-weighted share per brand in each cluster, and classifying market concentration.

Execution Contract

Every execution of this skill must operate under the following contract:
- **ingestion_plan**: A documented plan for pulling data.
- **max_api_calls**: 3 (default, strictly enforced).
- **cache_key**: A unique key identifying the cached API dataset.
- **dataset_timestamp**: ISO timestamp of the ingested dataset.
- **analysis_mode**: `offline_only`

Data Access Policy

  • API Target: Consume data from the FullMention API at GET /v2/runs/{runId}.
  • Controlled Ingestion: Perform exactly one controlled ingestion pull from the FullMention API. Paginated batch fetching is preferred.
  • API Decoupling: Do NOT treat the FullMention API as a persistent database or state-store; it is a read-only snapshot provider.
  • 24-Hour TTL: FullMention v2 deletes run data after 24 hours, meaning offline persistence/database caching is a strict requirement for historical tracking.
  • Local Persistence: Save all analytical outputs locally in the current workspace directory.
    • Raw structured JSON must be saved to [skill_name].json (e.g. category-dominance-matrix.json).
    • A premium, beautifully styled markdown report must be saved to [skill_name].md (e.g. category-dominance-matrix.md).
  • Caching: Reuse the same stored dataset across iterative prompts. Do not repeat identical API calls.
  • Refresh Window: Make additional API calls only if the user explicitly requests a refresh window or a missing page fetch.
  • Rate Limits & Backoff: Respect API rate limits and backoff policies. Never run open-ended call loops.
  • Allowed Sources:
    • Local working dataset produced from one ingestion pull of FullMention API data.
    • Optional user-provided local file/DB snapshot (read-only).
    • No repeated API fetching during analysis.

Required Input Fields & Parameters

The input dataset from the API/file must map to these fields:

  • keyword (string, searched keyword)
  • categorySuggestions[] (array of strings, suggested categories)
  • brandRankings[].name (string, brand name)
  • brandRankings[].position (integer, brand rank position)

Analytical Method

Follow these step-by-step logic rules during analysis:

  1. Category Clustering: Group results directly using the categories listed in the root-level categorySuggestions[] array of strings (e.g. mapping keywords under suggested categories).
  2. Rank-Weighted Share Computation: For each category cluster, calculate the rank-weighted Share of Voice (SOV) for each brand using the reciprocal position formula in brandRankings[]: $$\text{weightedScore} = \sum \frac{1}{\text{position}}$$ Convert each brand’s score to a percentage share of the total weighted score within that specific category cluster.
  3. Dominance Classification: For each cluster, classify the overall dominance of the leading brands:
    • strong: A single leading brand holds a dominant share ($> 40%$ SOV) and a significant lead over the runner-up.
    • moderate: The top brands have closely competing, moderate shares (e.g., multiple brands with $20% - 30%$ SOV).
    • fragmented: No brand holds a meaningful share, with citations spread thinly across many brands.

Expected Output

The skill must generate two outputs in the local workspace:

  1. category-dominance-matrix.json: Contains the raw structured analytical output, including the execution contract metadata, category matrix data with top brands and calculated shares, dominance classifications, confidence metrics, and the evidence map.

  2. category-dominance-matrix.md: A premium, beautiful human-readable report. This report must contain:

    • Category Dominance Matrix: Formatted grid table displaying categories as rows, with columns for Top Brand, SOV Share %, Runner Up, Runner Up Share %, and Dominance Class (Strong | Moderate | Fragmented).
    • Key Strategic Opportunities: Analysis of fragmented or weakly defended clusters where the target brand can easily gain dominance.
    • Confidence & Limitations:
      • A confidence score from 0-100.
      • Confidence Rationale: Explanation of how the confidence score was derived.
      • Limitations: A list of data limitations or gaps.
    • Evidence Map: An array of objects evidence_map[] with:
      • finding_id
      • metric_name
      • source_field_paths[]
      • sample_result_ids[]

Guardrails & Constraints

  • Low Confidence Fallback: If semantic clustering confidence is low or keywords are highly diverse, fallback to fewer, broader clusters to ensure statistical accuracy.
  • No External Taxonomy Lookups: Do not use external taxonomy lookups or semantic categorization services unless explicitly supplied by the user as a local file or parameter.
  • No Web Lookups: Do not perform external web lookups or enrichment of brand data.
  • No Hallucination: Do not invent brands, rankings, keywords, or timestamps that are not present in the ingested dataset.

Copy-ready Skill Prompt

Use this as a full copy/paste prompt in your AI tool:

Skill: Category Dominance Matrix
Goal: Map brand dominance by category clusters.

Data Access Policy:
- **API Target**: Consume data from the FullMention API at `GET /v2/runs/{runId}`.
- **Controlled Ingestion**: Perform exactly one controlled ingestion pull from the FullMention API. Paginated batch fetching is preferred.
- **API Decoupling**: Do NOT treat the FullMention API as a persistent database or state-store; it is a read-only snapshot provider.
- **24-Hour TTL**: FullMention v2 deletes run data after 24 hours, meaning offline persistence/database caching is a strict requirement for historical tracking.
- **Local Persistence**: Save all analytical outputs locally in the current workspace directory.
  - Raw structured JSON must be saved to `[skill_name].json` (e.g. `category-dominance-matrix.json`).
  - A premium, beautifully styled markdown report must be saved to `[skill_name].md` (e.g. `category-dominance-matrix.md`).
- **Caching**: Reuse the same stored dataset across iterative prompts. Do not repeat identical API calls.
- **Refresh Window**: Make additional API calls only if the user explicitly requests a refresh window or a missing page fetch.
- **Rate Limits & Backoff**: Respect API rate limits and backoff policies. Never run open-ended call loops.
- **Allowed Sources**:
  - Local working dataset produced from one ingestion pull of FullMention API data.
  - Optional user-provided local file/DB snapshot (read-only).
  - No repeated API fetching during analysis.

Input Fields & Params:
The input dataset from the API/file must map to these fields:
- `keyword` (string, searched keyword)
- `categorySuggestions[]` (array of strings, suggested categories)
- `brandRankings[].name` (string, brand name)
- `brandRankings[].position` (integer, brand rank position)

Method:
Follow these step-by-step logic rules during analysis:
1. **Category Clustering**: Group results directly using the categories listed in the root-level `categorySuggestions[]` array of strings (e.g. mapping keywords under suggested categories).
2. **Rank-Weighted Share Computation**: For each category cluster, calculate the rank-weighted Share of Voice (SOV) for each brand using the reciprocal position formula in `brandRankings[]`:
   $$\text{weightedScore} = \sum \frac{1}{\text{position}}$$
   Convert each brand's score to a percentage share of the total weighted score within that specific category cluster.
3. **Dominance Classification**: For each cluster, classify the overall dominance of the leading brands:
   - `strong`: A single leading brand holds a dominant share ($> 40\%$ SOV) and a significant lead over the runner-up.
   - `moderate`: The top brands have closely competing, moderate shares (e.g., multiple brands with $20\% - 30\%$ SOV).
   - `fragmented`: No brand holds a meaningful share, with citations spread thinly across many brands.

Expected Output:
The skill must generate two outputs in the local workspace:

1. **`category-dominance-matrix.json`**:
   Contains the raw structured analytical output, including the execution contract metadata, category matrix data with top brands and calculated shares, dominance classifications, confidence metrics, and the evidence map.

2. **`category-dominance-matrix.md`**:
   A premium, beautiful human-readable report. This report must contain:
   - **Category Dominance Matrix**: Formatted grid table displaying categories as rows, with columns for `Top Brand`, `SOV Share %`, `Runner Up`, `Runner Up Share %`, and `Dominance Class` (Strong | Moderate | Fragmented).
   - **Key Strategic Opportunities**: Analysis of fragmented or weakly defended clusters where the target brand can easily gain dominance.
   - **Confidence & Limitations**:
     - A confidence score from 0-100.
     - **Confidence Rationale**: Explanation of how the confidence score was derived.
     - **Limitations**: A list of data limitations or gaps.
   - **Evidence Map**: An array of objects `evidence_map[]` with:
     - `finding_id`
     - `metric_name`
     - `source_field_paths[]`
     - `sample_result_ids[]`

Guardrails:
- **Low Confidence Fallback**: If semantic clustering confidence is low or keywords are highly diverse, fallback to fewer, broader clusters to ensure statistical accuracy.
- **No External Taxonomy Lookups**: Do not use external taxonomy lookups or semantic categorization services unless explicitly supplied by the user as a local file or parameter.
- **No Web Lookups**: Do not perform external web lookups or enrichment of brand data.
- **No Hallucination**: Do not invent brands, rankings, keywords, or timestamps that are not present in the ingested dataset.

Run This Skill

Copies the full skill prompt, including data policy and output contract.