Citation Momentum
Track citation share and growth by domain across periods.
Citation Momentum
What it does
Track and analyze domain citation shares, period-over-period growth rates, and overall citation concentration trends chronologically across multiple snapshot periods.
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.citation-momentum.json). - A premium, beautifully styled markdown report must be saved to
[skill_name].md(e.g.citation-momentum.md).
- Raw structured JSON must be saved to
- 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:
updatedAt(string, ISO-8601 timestamp of snapshot update)websiteRankings[].domain(string, domain name)websiteRankings[].position(integer, domain rank position)fanout.sources[].domain(string, fanout source domain)truncated.fanoutSourcesPreview(boolean, indicates if fanout sources are truncated inline)
Analytical Method
Follow these step-by-step logic rules during analysis:
- Domain Mentions Grouping: Extract and aggregate normalized domain mentions (combining domains found in
websiteRankings[].domainand thedomainfield of thefanout.sources[]array) grouped by each time period derived fromupdatedAt. Iftruncated.fanoutSourcesPreviewis true, fetch the full list of fanout sources fromGET /v2/runs/{runId}/results/{resultId}/fanout-sourcesto obtain all domains. - Growth Rate Calculation: Compute the period-over-period growth rate of citation shares for each domain: $$\text{growthRate} = \frac{\text{share}{\text{current}} - \text{share}{\text{prior}}}{\text{share}_{\text{prior}}} \times 100$$
- Momentum Labeling: Classify each domain’s citation trend using the calculated growth rates:
accelerating: Significant positive growth rate trend across periods.stable: Minor variation or stable period-over-period trend.declining: Significant negative growth rate trend across periods.
- Concentration Over Time: Track how domain concentration (e.g., Herfindahl-Hirschman Index or top 3 domains share) shifts over time.
Expected Output
The skill must generate two outputs in the local workspace:
-
citation-momentum.json: Contains the raw structured analytical output, including the execution contract metadata,domain_momentum_tabledata, lists of top gainers and decliners, concentration over time metrics, confidence metrics, and the evidence map. -
citation-momentum.md: A premium, beautiful human-readable report. This report must contain:- Domain Momentum Leaderboard: Formatted table with columns:
Domain | Current Share % | Growth Rate % | Momentum Labelsorted by growth rate. - Top Gainers & Decliners: Bulleted summaries representing
top_gainers[]andtop_decliners[]. - Concentration Over Time: Statement or timeline showing how overall citation market concentration is changing.
- 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_idmetric_namesource_field_paths[]sample_result_ids[]
- Domain Momentum Leaderboard: Formatted table with columns:
Guardrails & Constraints
- Consistent Normalization: Ensure all domain strings are normalized consistently (lowercase, stripped of protocols and subdomains where appropriate).
- Minimum Sample Constraint: Ignore any period that falls below the minimum required sample threshold (e.g. fewer than 10 total snapshot results in that period), and document the omitted data in the report.
- No Web Lookups: Do not perform external web lookups or enrichment of brand data.
- No Hallucination: Do not invent brands, rankings, websites, or trend values 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: Citation Momentum
Goal: Track citation share and growth by domain across periods.
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. `citation-momentum.json`).
- A premium, beautifully styled markdown report must be saved to `[skill_name].md` (e.g. `citation-momentum.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:
- `updatedAt` (string, ISO-8601 timestamp of snapshot update)
- `websiteRankings[].domain` (string, domain name)
- `websiteRankings[].position` (integer, domain rank position)
- `fanout.sources[].domain` (string, fanout source domain)
- `truncated.fanoutSourcesPreview` (boolean, indicates if fanout sources are truncated inline)
Method:
Follow these step-by-step logic rules during analysis:
1. **Domain Mentions Grouping**: Extract and aggregate normalized domain mentions (combining domains found in `websiteRankings[].domain` and the `domain` field of the `fanout.sources[]` array) grouped by each time period derived from `updatedAt`. If `truncated.fanoutSourcesPreview` is true, fetch the full list of fanout sources from `GET /v2/runs/{runId}/results/{resultId}/fanout-sources` to obtain all domains.
2. **Growth Rate Calculation**: Compute the period-over-period growth rate of citation shares for each domain:
$$\text{growthRate} = \frac{\text{share}_{\text{current}} - \text{share}_{\text{prior}}}{\text{share}_{\text{prior}}} \times 100$$
3. **Momentum Labeling**: Classify each domain's citation trend using the calculated growth rates:
- `accelerating`: Significant positive growth rate trend across periods.
- `stable`: Minor variation or stable period-over-period trend.
- `declining`: Significant negative growth rate trend across periods.
4. **Concentration Over Time**: Track how domain concentration (e.g., Herfindahl-Hirschman Index or top 3 domains share) shifts over time.
Expected Output:
The skill must generate two outputs in the local workspace:
1. **`citation-momentum.json`**:
Contains the raw structured analytical output, including the execution contract metadata, `domain_momentum_table` data, lists of top gainers and decliners, concentration over time metrics, confidence metrics, and the evidence map.
2. **`citation-momentum.md`**:
A premium, beautiful human-readable report. This report must contain:
- **Domain Momentum Leaderboard**: Formatted table with columns: `Domain | Current Share % | Growth Rate % | Momentum Label` sorted by growth rate.
- **Top Gainers & Decliners**: Bulleted summaries representing `top_gainers[]` and `top_decliners[]`.
- **Concentration Over Time**: Statement or timeline showing how overall citation market concentration is changing.
- **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:
- **Consistent Normalization**: Ensure all domain strings are normalized consistently (lowercase, stripped of protocols and subdomains where appropriate).
- **Minimum Sample Constraint**: Ignore any period that falls below the minimum required sample threshold (e.g. fewer than 10 total snapshot results in that period), and document the omitted data in the report.
- **No Web Lookups**: Do not perform external web lookups or enrichment of brand data.
- **No Hallucination**: Do not invent brands, rankings, websites, or trend values that are not present in the ingested dataset. Run This Skill
Copies the full skill prompt, including data policy and output contract.