Purpose
Produce a side-by-side comparison matrix of market data feeds — scored across the dimensions that actually drive a buy/build/switch decision — so product and data teams can defend a vendor selection with structured evidence instead of anecdote. Solves the problem of comparing feeds that describe themselves in incompatible terms.
When to Use
Invoke this skill when the user asks to:
- Compare market data vendors or feeds (e.g., Bloomberg B-PIPE, Refinitiv Real-Time, ICE, Polygon, databento, exchange direct feeds)
- Select a price or reference data provider for a new product or trading system
- Consolidate or rationalize redundant data feeds across desks or asset classes
- Prepare a vendor scorecard for a contract renewal or renegotiation
- Evaluate whether to switch feeds to reduce latency or cost
- Build the analysis backing a make-vs-buy or direct-vs-consolidated feed decision
Inputs Required
Before starting, collect:
- Asset classes in scope: Which of equities, options, bonds, FX, futures (and sub-types, e.g., US listed vs. global, corporate vs. sovereign)
- Feeds/vendors to compare: 2–6 named feeds or vendors
- Use case: Trading (low-latency), analytics/research, risk/valuation, or display — this changes which dimensions matter most
- Data types needed: Real-time / delayed / EOD / historical; Level 1 quotes, Level 2 depth, trades, reference/static data
- Delivery/infra constraints: Cloud vs. on-prem, colocation, protocols already supported (FIX/FAST, WebSocket, REST, binary)
- Budget context: Rough annual budget or the cost sensitivity level
- Dimension weights (optional): Which dimensions matter most (e.g., latency 30%, cost 20%)
If weights are not provided, infer them from the use case and state the assumption. If a specific feed's public detail is thin, mark cells as "Vendor confirmation required" rather than guessing.
Instructions
Step 1: Establish the Comparison Dimensions
Score each feed on these dimensions. Adjust weighting by use case (trading weights latency/depth; analytics weights coverage/history; valuation weights reference data quality).
- Asset class & instrument coverage — Breadth and depth per asset class in scope; venue coverage (exchanges, ECNs, dark pools, OTC contributors); international vs. domestic
- Data granularity — Level 1 (BBO), Level 2 (depth-of-book), full order book (Level 3); trade prints, imbalances, auctions
- Latency & timeliness — Wire latency profile, jitter, whether normalized or raw; real-time vs. conflated/snapshot; delayed/EOD availability
- Delivery protocols & integration — Supported protocols (FIX/FAST, ITCH/OUCH, WebSocket, REST, binary), cloud regions, colocation options, SDK/language support
- Reference & static data quality — Corporate actions, symbology/cross-referencing (FIGI, ISIN, RIC, CUSIP), instrument master accuracy, corrections handling
- Historical data & backfill — Depth of history, tick-level vs. bars, point-in-time correctness, ease of replay
- Licensing & entitlements — Display vs. non-display, derived data rights, redistribution, per-user vs. enterprise, exchange fee pass-through
- Reliability & SLA — Uptime SLA, redundancy, failover, gap-fill/recovery, historical outage record
- Cost structure — Base fee, exchange fees, per-message/bandwidth, per-user seats, hidden overage costs; total cost of ownership signal
- Support & operations — Onboarding time, documentation quality, monitoring tools, incident response
Step 2: Build the Comparison Matrix
Construct a table: rows = dimensions, columns = feeds. Each cell contains a concise factual assessment (not a rating alone) plus a 1–5 score.
- Fill cells with specifics per asset class where feeds differ materially (e.g., strong equities coverage but thin OTC bonds)
- Where a feed's detail is not publicly confirmable, write the assessment and flag "Vendor confirmation required"
- Keep cell text tight — one to two sentences maximum
Step 3: Apply Weighted Scoring
- Assign each dimension a weight (from input, or inferred from use case — state the weights explicitly)
- Compute a weighted score per feed (sum of dimension score × weight)
- Present a scoring summary table: feed, per-dimension scores, weighted total, rank
Step 4: Per-Asset-Class Read
For each asset class in scope, name the best-fit feed and why. Feeds rarely win uniformly across equities, options, bonds, FX, and futures — surface where each feed is strongest.
Step 5: Trade-offs & Deal-Breakers
Call out the decisive factors:
- Deal-breakers: Any missing capability that disqualifies a feed for this use case
- Cost vs. capability trade-off: Where paying more buys meaningfully more, and where it doesn't
- Hidden cost risks: Exchange fees, redistribution licensing, bandwidth overages
- Integration effort: Which feed is fastest to onboard given existing infrastructure
Step 6: Recommendation
Deliver a ranked recommendation — primary feed, and where relevant a secondary/split-feed strategy (e.g., one vendor for equities/options, another for FX/bonds). Be opinionated and tie the recommendation to the weighted scores and use case.
Output Format
- Structure: Dimension matrix table → weighted scoring summary table → per-asset-class read → trade-offs & deal-breakers → ranked recommendation
- Length: 1,000–1,500 words including tables
- Format: Primary comparison as a table (dimensions × feeds); scoring as a summary table; analysis as tight prose with bullets
- Sections: Dimension definitions (brief) → Comparison Matrix → Weighted Scoring → Per-Asset-Class Fit → Trade-offs & Deal-Breakers → Recommendation
- Tone: Data product manager — evidence-first, precise with market data terminology, decisive on the recommendation
Quality Checklist
Before delivering output, verify:
- [ ] Every feed provided is scored on all 10 dimensions (or the reduced set explicitly agreed with the user)
- [ ] Dimension weights are stated explicitly and sum to 100%
- [ ] Weighted totals are computed and feeds are ranked — not left as an unscored table
- [ ] Coverage differences are broken out per asset class, not collapsed into one "coverage" verdict
- [ ] Unconfirmable cells are flagged "Vendor confirmation required" rather than fabricated
- [ ] The recommendation names a specific primary feed (and split strategy if applicable) tied to the scores
Notes
- For low-latency trading use cases, direct exchange feeds usually beat consolidated feeds on latency but lose on integration cost and breadth — weight this deliberately
- Reference data quality and symbology cross-referencing are the most commonly underweighted dimensions and the most expensive to fix post-selection
- Exchange fees and redistribution licensing frequently dwarf the vendor's base fee; treat cost as total cost of ownership, not sticker price
- A split-feed strategy (best-of-breed per asset class) is often the honest answer — don't force a single winner if the scores don't support it
How to use this skill
This file is a Claude Code skill in Anthropic's standard format — markdown with YAML frontmatter at the top.
Installing in Claude Code:
~/.claude/skills/<folder-name>/SKILL.md— auto-loads in every session anywhere on your machine (recommended for skills you'll use across multiple projects)<your-project>/.claude/skills/<folder-name>/SKILL.md— auto-loads only when working in that project (recommended for project-specific skills)
Restart Claude Code or open a new session to register.
Using in Claude.ai, ChatGPT, Gemini, or other AI tools:
- Drag this file into a new chat, or copy and paste its contents
- Send your task or request as your next message — the AI will apply the skill where it fits
For Claude Code skill details: https://docs.anthropic.com/en/docs/claude-code/skills