Agent skill

Cja Segment Performance Comparator

by adobe in adobe/skills

Compares the performance of two or more audience segments across key metrics side by side.

Apache-2.0Auto-check passedBusiness, Finance & HR

Install Cja Segment Performance Comparator

skills CLI
$ npx skills add adobe/skills --skill cja-segment-performance-comparator -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install adobe/skills cja-segment-performance-comparator --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/adobe/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/adobe-cja/skills/cja-segment-performance-comparator .claude/skills/cja-segment-performance-comparator && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
cja-segment-performance-comparator
GitHub stars
195
Token cost
~2.7k tokens
SKILL.md length
1,227 words
Files
3
Skills in repo
105
Repo updated
First seen
Licence
Apache-2.0

At a glance

Compares the performance of two or more audience segments across key metrics side by side.

  • Works in 7 steps: Setup → Identify Segments to Compare → Identify Metrics to Compare → …
  • Someone wants to compare audiences
  • SKILL.md covers CJA MCP Tools Used, Phase 0 — Setup, Phase 1 — Identify Segments to… and Phase 2 — Identify Metrics to…, plus 7 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Cja Segment Performance Comparator is an agent skill from adobe/skills. Compares the performance of two or more audience segments across key metrics side by side. Use this skill when someone wants to compare audiences, cohorts, or groups — for example, "how do mobile users compare to desktop users on conversion," "compare new vs. returning visitors," "show me the difference between these two segments," "compare these audiences on our KPIs," or "which segment performs better." Also trigger for "segment comparison," "audience comparison," or "cohort comparison."

Its SKILL.md is about 2.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files (for example `evals/evals.json`).

It sits in Business, Finance & HR, covering OKRs and executive reporting. The repository describes itself as: Adobe Skills for Agents. The licence is Apache-2.0.

When your agent uses it

  • Someone wants to compare audiences
  • Groups — for example
  • How do mobile users compare to desktop users on conversion
  • Segment comparison

Example prompts

  • “how do mobile users compare to desktop users on conversion,”
  • “compare new vs. returning visitors,”
  • “show me the difference between these two segments,”
  • “/cja-segment-performance-comparator”

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. Setup
  2. Identify Segments to Compare
  3. Identify Metrics to Compare
  4. Run the Comparison
  5. Build the Comparison Matrix
  6. Generate HTML Comparison Report
  7. Narrative Insights

What it can do on your machine

Read from SKILL.md and the folder at commit cbc9952. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Cja Segment Performance Comparator loads about 2.7k tokens when it runs. Until then it costs about 132 tokens; SKILL.md has 1,227 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~132
When it runs · the whole SKILL.md, loaded when a task matches
~2.7k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from adobe/skills at commit cbc9952, republished under its Apache-2.0 licence (© adobe). 1,227 words, ~2,652 tokens.

Download SKILL.mdSave it as .claude/skills/cja-segment-performance-comparator/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
cja-segment-performance-comparator
description
Compares the performance of two or more audience segments across key metrics side by side. Use this skill when someone wants to compare audiences, cohorts, or groups — for example, "how do mobile users compare to desktop users on conversion," "compare new vs. returning visitors," "show me the difference between these two segments," "compare these audiences on our KPIs," or "which segment performs better." Also trigger for "segment comparison," "audience comparison," or "cohort comparison."
license
Apache-2.0
metadata.author
Adobe
metadata.version
1.0

Segment Performance Comparator (Customer Journey Analytics)

Compare 2–5 audience segments across a set of key metrics in a side-by-side matrix. The output tells the user not just what each segment looks like in isolation, but which segment wins or loses on each metric — and which differences are large enough to act on.

This skill answers the question "which audience should we focus on?" with data. Segment comparisons drive product decisions, personalization strategy, and budget allocation — so clarity and actionability matter more than exhaustive data.


CJA MCP Tools Used

  • findSegments — search for segments by name or keyword
  • describeSegment — understand the logic of candidate segments before using them
  • findMetrics — resolve base metric IDs
  • findCalculatedMetrics — include custom KPIs in the comparison
  • listComponentUsage — identify the most-used metrics as default comparison set
  • runReport (with segmentIds or adhocSegments) — pull metric values per segment

Phase 0 — Setup

  1. Call findDataViews to list available data views.
  2. If the user hasn't specified a data view, present the list and ask which to use.
  3. Call setDefaultSessionDataViewId with the chosen ID.
  4. Ask the user which segments to compare if not already specified. Confirm the metrics to compare them on.

Phase 1 — Identify Segments to Compare

1.1 From user description

If the user named specific segments, resolve them:

findSegments(search: "<segment name>")

For each match, call describeSegment to verify it is the correct one:

describeSegment(segmentId: "<id>")

Show the segment definition summary to the user if there is ambiguity:

"I found two segments matching 'mobile users': Mobile Visitors (All Devices) and Mobile App Users. Which do you want to compare?"

1.2 From plain-English descriptions

If the user says "compare mobile vs desktop users" but there are no matching segments, offer to create ad hoc segments inline for the comparison:

"I don't see pre-built segments for mobile and desktop. I can create temporary ad hoc segments for this comparison using device type. Should I proceed with ad hoc segments, or would you like to create permanent segments first?"

Ad hoc segments are constructed using adhocSegments in runReport — no save required for the comparison itself.

1.3 Segment count limit

Maximum 5 segments for a single comparison. More than 5 creates a matrix that is too wide to read meaningfully. If the user requests more, say:

"I'll limit to the 5 most relevant segments for readability. Would you like me to prioritize by usage count or stick with your list order?"


Phase 2 — Identify Metrics to Compare

2.1 From user specification

Resolve named metrics via findMetrics and findCalculatedMetrics.

2.2 Default metric discovery

If the user did not specify metrics, pull the top metrics by usage. The listComponentUsage tool does not support a limit parameter — it returns all components ranked by usage count; take the top 6–8 from the result:

listComponentUsage(componentType: "metric")
listComponentUsage(componentType: "calculatedMetric")

Prefer calculated metrics over raw base metrics when they measure the same thing — calculated metrics reflect intentional KPI definitions.

2.3 Metric selection for a comparison

Good comparison metrics should be meaningful across all segments. For example, "Revenue" is meaningful for both mobile and desktop users; "App Installs" is only meaningful for mobile. Remove metrics that would be trivially zero for one segment.

If unsure, ask: "Should I use your standard KPI set, or focus on specific metrics like conversion rate, revenue, and engagement?"


Phase 3 — Run the Comparison

For each segment, run a runReport with that segment applied and all comparison metrics included. Note that runReport takes metricIds as a comma-separated string, startDate/endDate (not dateRange), and a dimensionIds (required even for summary-only reports — use a low-cardinality dimension like variables/daterangeday or variables/web.webPageDetails.name). The summary totals for all metrics are in summaryData.filteredTotals:

runReport(
  dimensionIds: "variables/web.webPageDetails.name",
  metricIds: "metrics/visits,metrics/revenue_1,metrics/orders_1_1",
  startDate: "<period start>T00:00:00",
  endDate: "<period end>T23:59:59",
  page: 0,
  limit: 1,
  segmentIds: "<segment id>"
)

For ad hoc segments, use the full CJA segment definition object:

runReport(
  dimensionIds: "variables/web.webPageDetails.name",
  metricIds: "metrics/visits,metrics/orders_1_1",
  startDate: "<period start>T00:00:00",
  endDate: "<period end>T23:59:59",
  page: 0,
  limit: 1,
  adhocSegments: [{
    "func": "segment",
    "version": [1, 0, 0],
    "container": {
      "func": "container",
      "context": "visitors",
      "pred": {
        "func": "streq",
        "val": { "func": "attr", "name": "variables/device_type" },
        "str": "Mobile Phone"
      }
    }
  }]
)

Read metric totals from summaryData.filteredTotals[i] where i is the 0-based index of the metric in the metricIds string.

Run one report per segment. Collect all results into a matrix:

  • Rows = metrics
  • Columns = segments

Phase 4 — Build the Comparison Matrix

For each cell (metric × segment):

  • value[metric][segment] = raw metric value from runReport

For each metric row:

  • winner = segment with the highest value (or lowest, for "lower is better" metrics)
  • loser = segment with the lowest value (or highest, for inverse metrics)
  • range = (max − min) / max × 100 — the spread across segments as a percentage
  • significant = true if range > 10% (a meaningful difference worth acting on)

Phase 5 — Generate HTML Comparison Report

Generate the report inline and write to /tmp/cja_segment_performance_comparator_report_<YYYY-MM-DD_HHMMSS>.html.

Show full SKILL.md (511 more words)Show less
HTML Template

Read template.html and use it verbatim. Do not improvise the HTML structure or CSS — only fill in the {PLACEHOLDER} tokens ({ORG_NAME}, {DATE_RANGE}, {DATA_VIEW}, {GENERATED_DATE}, {SEGMENT_NAMES_SUMMARY}, {SEGMENT_NAME}, {COLOR}, {VISITOR_COUNT}, {NUM_SEGMENTS}, {NUM_METRICS}, {NUM_SIGNIFICANT}, {OVERALL_WINNER}, {METRIC_NAME}, {VALUE}, {WINNER_SEGMENT}, {SPREAD}, {INSIGHT_TEXT}) and repeat segment chips, matrix rows, and insight boxes once per data item. Use the cell-winner / cell-loser classes per Phase 4 winner/loser rules.


Phase 6 — Narrative Insights

After building the matrix, generate 3–5 insight bullets for the Insights section:

  1. Overall Winner: "Returning Visitors outperform New Visitors on 5 of 7 metrics, with the largest gap in Revenue per Session (+82%)."
  2. Most Significant Difference: "The biggest gap is Conversion Rate: Mobile converts at 1.2% vs Desktop at 3.8% — a 68% gap worth prioritizing."
  3. Surprising Parity: "New vs Returning Visitors show nearly identical Bounce Rates (42% vs 44%), suggesting landing page quality is consistent."
  4. Actionable Signal: "Paid Search visitors have 2.3× higher Revenue per Session than Direct visitors — consider shifting budget toward Paid Search."
  5. Anomaly: "One segment shows near-zero values across all metrics — verify that the segment definition is correct and matches the current data view."

Insights should be plain English, not metric IDs. Name the specific segments and metric values.


Workflow Summary

  1. Resolve 2–5 segments (by name or ad hoc definition).
  2. Identify 5–8 comparison metrics (from user or top usage).
  3. Run one runReport per segment with all metrics; collect results.
  4. Build comparison matrix: rows = metrics, columns = segments.
  5. Mark winner/loser per row; compute spread; flag significant differences.
  6. Generate HTML report with matrix and insight bullets.
  7. Write to /tmp/cja_segment_performance_comparator_report_<YYYY-MM-DD_HHMMSS>.html.
  8. Open with open /tmp/cja_segment_performance_comparator_report_<YYYY-MM-DD_HHMMSS>.html.
  9. Deliver inline summary: which segment wins overall, biggest gap metric, one actionable recommendation.

Important Guardrails

  • Read-only analysis. Never delete or modify segments or calculated metrics.
  • Always confirm segments before running. Ambiguous segment names (e.g., "Mobile" could be several) should be resolved by showing the user the matched segment IDs and definitions.
  • Use the same date range for all segments. Comparisons across different time windows are misleading.
  • Note overlap between segments. If two segments share substantial audience overlap, note it — the "difference" may be exaggerated.
  • Cap the number of segments compared. Comparing more than 5–6 segments in a single report makes the output unreadable; ask the user to prioritize.
  • Distinguish statistical significance from practical significance. A 0.1% difference is rarely actionable — focus on differences of 5%+ unless the user specifies otherwise.

Example Interaction

"Compare our mobile vs. desktop segment performance for last quarter."

  1. Setup: Confirm data view. Call findDataViews, user selects. Call setDefaultSessionDataViewId.
  2. Segment resolution: Call findSegments to locate the "Mobile Users" and "Desktop Users" segments. Show matched names and IDs to confirm. User approves.
  3. Metrics: Ask "Which metrics should I compare?" User: "Sessions, Conversion Rate, Revenue, and Average Order Value."
  4. Analysis: Run runReport for Q1 2026 with both segments applied. Tabulate results side-by-side.
  5. Findings: Mobile: 45% of sessions, 2.1% CVR, $0.84 RPV. Desktop: 55% of sessions, 4.8% CVR, $2.10 RPV. Desktop converts 2.3× better. Present a comparison table and 3 recommended next steps.

© adobe, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files in plugins/adobe-cja/skills/cja-segment-performance-comparator of adobe/skills.

  • SKILL.md
  • evals/evals.json
  • template.html

Open the folder on GitHubat commit cbc9952

Compare with similar skills

Cja Segment Performance Comparator next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Cja Segment Performance Comparator compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Cja Segment Performance Comparator this skilladobe/skills195—~2.7kAutomated safety check: PassApache-2.0
Analytics Strategyrampstackco/claude-skills9351 repos~2.4kAutomated safety check: PassMIT
Pine BacktesterTradersPost/pinescript-agents1671 repos~3.9kAutomated safety check: PassNone
Onboarding Plannerbpinheiroms/dotfiles108—~5.4kAutomated safety check: PassNone
Replit Decksanqiufong/slides-from-anything1321 repos~2.9kAutomated safety check: PassApache-2.0
Building Streamlit Dashboardsiusztinpaul/designing-real-world-ai-agents-workshop512—~1.1kAutomated safety check: PassApache-2.0

Similar skills

  • Analytics Strategy

    rampstackco/claude-skills

    Design measurement frameworks including event taxonomy, KPI hierarchy, dashboard architecture, attribution models, and analytics implementation strategy.

    935 GitHub starsUsed in 1 repo~2.4k tokens
    Business, Finance & HRAuto-check passed
  • Pine Backtester

    TradersPost/pinescript-agents

    Implements comprehensive backtesting and performance metrics.

    167 GitHub starsUsed in 1 repo~3.9k tokens
    Business, Finance & HRAuto-check passed
  • Onboarding Planner

    bpinheiroms/dotfiles

    Plan high-conversion mobile app onboarding flows from scratch.

    108 GitHub stars~5.4k tokensUpdated 4 mo ago
    Business, Finance & HRAuto-check passed
  • Replit Deck

    sanqiufong/slides-from-anything

    Single-file horizontal-swipe HTML deck in the style of Replit Slides's landing-page template gallery.

    132 GitHub starsUsed in 1 repo~2.9k tokens
    Business, Finance & HRAuto-check passed
  • Building Streamlit Dashboards

    iusztinpaul/designing-real-world-ai-agents-workshop

    Building dashboards in Streamlit. An agent skill from iusztinpaul/designing-real-world-ai-agents-workshop.

    512 GitHub stars~1.1k tokensUpdated 4 mo ago
    Business, Finance & HRAuto-check passed
  • Massing Bim

    ibuilder/massing

    Drive a Massing BIM/AEC project from an AI agent over MCP — read a project's status, records, CDE, KPI and model-quality checks; run standards-compliance, schedule-risk, embodied-carbon, permit-…

    121 GitHub stars~1.1k tokensUpdated 5 days ago
    Business, Finance & HRAuto-check passed

More from adobe/skills

All 105 skills in this repo
  • Scaffolds, implements, deploys and debugs Adobe Runtime actions in App Builder projects, with templates for webhooks, events, database CRUD, sequences and Asset Compute workers.

    195 GitHub stars~3.1k tokensUpdated yesterday
    Auto-check passed
  • Launches Chrome with an unpacked extension over CDP, opens its sidepanel, popup or options page, and hands over to cdp-connect for clicks, typing and screenshots.

    195 GitHub stars~952 tokensUpdated yesterday
    Auto-check passed
  • Extracts icons, metadata, text, forms, videos and social links from any web page with playwright-cli, with SVG icon classification and cleanup.

    195 GitHub stars~1k tokensUpdated yesterday
    Auto-check passed
  • Page Langs

    adobe/skills

    Detect all languages used on a webpage — both declared (html@lang, hreflang alternate links, nested lang= attributes, meta content-language) and actually present in the body text (Google CLD3 via…

    195 GitHub stars~1.1k tokensUpdated yesterday
    Auto-check passed
  • Page Prep

    adobe/skills

    Prepare any webpage for clean interaction by detecting and removing disruptive overlays (cookie banners, GDPR consent, modals, popups, newsletter signups, paywalls, login walls).

    195 GitHub stars~2.1k tokensUpdated yesterday
    Auto-check passed
  • Page Reduce

    adobe/skills

    Reduce a webpage to a structural skeleton with semantic tokens.

    195 GitHub stars~1.9k tokensUpdated yesterday
    Auto-check passed

Questions about Cja Segment Performance Comparator

What does Cja Segment Performance Comparator do?

Compares the performance of two or more audience segments across key metrics side by side. Cja Segment Performance Comparator is an agent skill from adobe/skills. Compares the performance of two or more audience segments across key metrics side by side.

When should I use Cja Segment Performance Comparator?

Cja Segment Performance Comparator fits situations like: someone wants to compare audiences; groups — for example; how do mobile users compare to desktop users on conversion; segment comparison.

How do I install Cja Segment Performance Comparator in Claude Code?

Run `npx skills add adobe/skills --skill cja-segment-performance-comparator -a claude-code`. Or copy the skill folder (plugins/adobe-cja/skills/cja-segment-performance-comparator in adobe/skills) into .claude/skills/cja-segment-performance-comparator in your project. Claude Code loads it when a task matches its description.

How do I install Cja Segment Performance Comparator in Codex?

Run `npx skills add adobe/skills --skill cja-segment-performance-comparator -a codex`. Or copy the skill folder (plugins/adobe-cja/skills/cja-segment-performance-comparator in adobe/skills) into .agents/skills/cja-segment-performance-comparator in your project. Codex loads it when a task matches its description.

Can I use Cja Segment Performance Comparator in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add adobe/skills --skill cja-segment-performance-comparator -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/cja-segment-performance-comparator, .gemini/skills/cja-segment-performance-comparator, .github/skills/cja-segment-performance-comparator and .opencode/skills/cja-segment-performance-comparator in your project.

What does Cja Segment Performance Comparator need to run?

SKILL.md names no scripts, command-line tools or credentials: Cja Segment Performance Comparator is instructions for the agent only.

Does Cja Segment Performance Comparator access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Cja Segment Performance Comparator safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Cja Segment Performance Comparator use?

Cja Segment Performance Comparator is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Cja Segment Performance Comparator use?

About 2.7k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Cja Segment Performance Comparator?

Skills that share tags, products or a category with Cja Segment Performance Comparator: Analytics Strategy (rampstackco/claude-skills, 935 stars), Pine Backtester (TradersPost/pinescript-agents, 167 stars), Onboarding Planner (bpinheiroms/dotfiles, 108 stars) and Replit Deck (sanqiufong/slides-from-anything, 132 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Cja Segment Performance Comparator?

adobe (a GitHub organization) maintains it in adobe/skills, which has 195 GitHub stars. The repository holds 105 skills in this directory. The repository was last updated on October 6, 2026.

Source: adobe/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.