Customer Data Platforms arenaCustomer Data Platforms
Customer data platforms — event collection, identity resolution, audiences, and activation — judged on SDK breadth and tracking specs, identity stitching and unified profiles, audience building and real-time activation, the destinations catalog, warehouse sync and warehouse-native/composable modes, in-pipeline transformations and schema enforcement, privacy and consent controls (including deletion/suppression), pipeline observability, event replay and backfill, self-hostability, and how completely an AI agent can manage pipelines and query or activate audiences through documented APIs and MCP servers. Boundary: product analytics (Amplitude, Mixpanel, PostHog) is a separate arena — products are judged here only on their CDP surface. Hightouch is included as the composable-CDP anchor (its Customer Studio builds and activates warehouse-native audiences, plus event collection and identity resolution); mParticle is judged post-Rokt-merger. All five verified live, with hosted MCP servers confirmed for RudderStack, Jitsu, and Hightouch.
51 user stories · 255 judged cells · updated 2026-09-08 · Evidence as of 2026-09-11
Leaderboard — every product ranked by evidenceLeaderboard
| 1 | free-tier vs RudderStack ↗ | 47/100 | 26/100 | 4/100 | 58/100 | 29/100 | ★ 5.1k▲ 831/yrnpm 16k/wk | 20/35 verified | 42/100 integrity | ||
| 2 | free-tier vs Jitsu ↗ | 45/100 | 44/100 | 4/100 | 44/100 | 19/100 | ★ 4.5k▲ 628/yrnpm 346.5k/wk | 19/36 verified · 1 disputed | 48/100 integrity | ||
| 3 | free-tier vs Jitsu ↗ | 30/100 | 14/100 | 55/100 | 36/100 | 20/100 | npm 1.7M/wk | 16/35 verified | 42/100 integrity | ||
| 4 | free-tier vs Jitsu ↗ | 45/100 | 51/100 | 0/100 | 16/100 | 44/100 | 20/33 verified | 48/100 integrity | |||
| 5 | enterprise-custom vs Jitsu ↗ | 29/100 | 25/100 | untested | 12/100 | 19/100 | npm 16.9k/wk | 8/31 verified | 29/100 integrity |
Best by user type — persona-weighted winnersBest by user type
Per persona, the product with the highest persona-weighted coverage over just that persona's stories — not the same ranking as the overall PA Score leaderboard above.
Best for data-engineer
RudderStack
61/100
Runner-up:
Twilio Segment (50/100)
12 data-engineer stories scored
Story matrix — every product × every judged storyStory matrix
Agenticness — how well agents can access and operate the productAgenticness
Agent access
| Story | Persona | |||||
|---|---|---|---|---|---|---|
| Agenticness — how well agents can access and operate the productPoint an agent at llms.txt or agent-oriented docs | ai-native | none 0/10 | fullT 8/10 | none 0/10 | fullT⚿ 8/10 | fullT 9/10 |
| Agenticness — how well agents can access and operate the productRun the product headlessly / in CI for automation | ai-native | partialT⚿ 6/10 | partialT 5/10 | partialT 5/10 | fullT⚿ 8/10 | partialT 6/10 |
| Agenticness — how well agents can access and operate the productPlug MCP servers into this product so it can use their tools | ai-native | n/a | none⚿ 0/10 | n/a | none⚿ 0/10 | none 0/10 |
| Agenticness — how well agents can access and operate the productConnect an agent via an official MCP server | ai-native | none 0/10 | fullT⚿ 9/10 | n/a | fullT⚿ 9/10 | fullT 9/10 |
| Agenticness — how well agents can access and operate the productUse an official CLI | ai-native | none 0/10 | none 0/10 | none 0/10 | fullT 8/10 | none 0/10 |
| Agenticness — how well agents can access and operate the productDrive the product through a documented public API | ai-native | fullT⚿ 8/10 | fullT⚿ 8/10 | fullT 8/10 | partialT⚿ 6/10 | fullT 8/10 |
| Agenticness — how well agents can access and operate the productIssue scoped/least-privilege API credentials for an agent | ai-native | partialT⚿ 5/10 | partialT⚿ 4/10 | none 0/10 | partialT⚿ 4/10 | partialT 4/10 |
| Agenticness — how well agents can access and operate the productBuild against official SDKs | ai-native | fullT⚿ 8/10 | fullT⚿ 8/10 | fullT 7/10 | partialT 6/10 | fullT 7/10 |
| Agenticness — how well agents can access and operate the productSubscribe to events via webhooks | ai-native | none 0/10 | none 0/10 | none 0/10 | none 0/10 | none 0/10 |
Agentic features
| Story | Persona | |||||
|---|---|---|---|---|---|---|
| Agenticness — how well agents can access and operate the productGet AI-generated insights and suggestions from my data inside the product | ai-native | partialC 3/10 | partialT⚿ 5/10 | partialC 5/10 | none⚿ 0/10 | partialC 6/10 |
| Agenticness — how well agents can access and operate the productSet up automations that run autonomously in the background | ai-native | partialC 5/10 | partialT⚿ 4/10 | partialC 5/10 | partialC 6/10 | fullC 7/10 |
| Agenticness — how well agents can access and operate the productDelegate tasks to a built-in AI assistant inside the product | ai-native | none 0/10 | partialT⚿ 7/10 | partialC 3/10 | none⚿ 0/10 | partialC 5/10 |
| Agenticness — how well agents can access and operate the productOperate the product with natural-language commands | ai-native | n/a | fullT⚿ 8/10 | partialC 4/10 | fullT⚿ 8/10 | fullT 8/10 |
Api quality
| Story | Persona | |||||
|---|---|---|---|---|---|---|
| Agenticness — how well agents can access and operate the productExplore an interactive API reference with runnable examples | ai-native | partialT⚿ 7/10 | none 0/10 | none 0/10 | none 0/10 | none 0/10 |
| Agenticness — how well agents can access and operate the productDownload a machine-readable API spec (OpenAPI or equivalent) | ai-native | fullT⚿ 8/10 | none 0/10 | none 0/10 | none 0/10 | none 0/10 |
| Agenticness — how well agents can access and operate the productTest against a sandbox environment without touching production data | ai-native | none 0/10 | partialC 5/10 | none 0/10 | partialC 5/10 | none 0/10 |
| Agenticness — how well agents can access and operate the productRely on versioned APIs with a documented deprecation policy | ai-native | fullT⚿ 7/10 | none 0/10 | none 0/10 | none 0/10 | none 0/10 |
Ai cdp — stories about ai cdp in this arenaAi cdp
Agent audiences
| Story | Persona | |||||
|---|---|---|---|---|---|---|
| Ai cdp — stories about ai cdp in this arenaAn agent can query customer data and create or activate audiences end to end through documented APIs or MCP — no dashboard in the loop | ai-native | partialT⚿ 5/10 | none 0/10 | partialC 4/10 | partialT⚿ 4/10 | fullT 7/10 |
Agent pipeline
| Story | Persona | |||||
|---|---|---|---|---|---|---|
| Ai cdp — stories about ai cdp in this arenaAn agent can manage the pipeline itself — create sources and destinations, wire streams, inspect deliveries — through a documented API or MCP server | ai-native | partialT⚿ 6/10 | partialT⚿ 6/10 | partialC 4/10 | fullT⚿ 8/10 | fullT 7/10 |
Ai assist
| Story | Persona | |||||
|---|---|---|---|---|---|---|
| Ai cdp — stories about ai cdp in this arenaDescribe an audience in natural language and AI builds the segment definition for review, grounded in my actual schema | ai-native | partialC 3/10 | partialC 3/10 | partialC 5/10 | n/a | fullT 8/10 |
Ai decisioning
| Story | Persona | |||||
|---|---|---|---|---|---|---|
| Ai cdp — stories about ai cdp in this arenaAI decisioning agents pick messages, timing, and channels per customer autonomously within guardrails I set, with measurable lift | ai-native | none 0/10 | n/a | none 0/10 | n/a | partialC 5/10 |
Audiences activation — stories about audiences activation in this arenaAudiences activation
Activation
| Story | Persona | |||||
|---|---|---|---|---|---|---|
| Audiences activation — stories about audiences activation in this arenaAudiences sync to ad platforms and engagement tools continuously, with membership entering and exiting in near-real-time | marketer | fullC 7/10 | partialC 6/10 | partialC 6/10 | none 0/10 | partialC 6/10 |
Audiences
| Story | Persona | |||||
|---|---|---|---|---|---|---|
| Audiences activation — stories about audiences activation in this arenaBuild audiences from traits and behavior in a visual builder — no SQL required — and see estimated size before activating | marketer | partialC 5/10 | partialC 3/10 | partialC 3/10 | none 0/10 | partialC 6/10 |
Traits
| Story | Persona | |||||
|---|---|---|---|---|---|---|
| Audiences activation — stories about audiences activation in this arenaComputed traits and predictive scores (LTV, churn or purchase propensity) are calculated on profiles and usable in targeting | marketer | partialC 5/10 | partialC 5/10 | partialC 5/10 | partialC 3/10 | partialC 5/10 |
Automation depth — how much of the product can run unattendedAutomation depth
| Story | Persona | |||||
|---|---|---|---|---|---|---|
| Automation depth — how much of the product can run unattendedPerform bulk operations across many items at once | ai-native | partialT⚿ 6/10 | none 0/10 | partialC 5/10 | partialC 4/10 | partialC 6/10 |
| Automation depth — how much of the product can run unattendedDefine rules that trigger actions automatically on events | ai-native | partialC 5/10 | partialC 5/10 | partialC 5/10 | partialX 6/10 | partialC 6/10 |
| Automation depth — how much of the product can run unattendedSchedule recurring jobs or workflows | ai-native | none 0/10 | n/a | none 0/10 | partialC 4/10 | fullT 7/10 |
| Automation depth — how much of the product can run unattendedVersion, review, and roll back my automations | ai-native | none 0/10 | partialC 4/10 | none 0/10 | partialC 4/10 | partialX 5/10 |
Destinations integrations — stories about destinations integrations in this arenaDestinations integrations
Destinations
| Story | Persona | |||||
|---|---|---|---|---|---|---|
| Destinations integrations — stories about destinations integrations in this arenaRoute events to a large catalog of documented destination integrations with per-destination mapping and filtering | data-engineer | fullT⚿ 8/10 | fullX 8/10 | partialX 7/10 | partialX 6/10 | fullX 7/10 |
Event collection — stories about event collection in this arenaEvent collection
Ingest
| Story | Persona | |||||
|---|---|---|---|---|---|---|
| Event collection — stories about event collection in this arenaSend events server-to-server through a documented HTTP ingestion API with authentication and delivery guarantees | data-engineer | partialT 7/10 | partialT 6/10 | partialT 6/10 | fullT 8/10 | partialC 6/10 |
Sdks
| Story | Persona | |||||
|---|---|---|---|---|---|---|
| Event collection — stories about event collection in this arenaCollect events from web, mobile, and server apps through official SDKs that implement a documented tracking spec (track, identify, page) | data-engineer | fullT 8/10 | fullT 8/10 | partialT 7/10 | partialC 6/10 | fullC 8/10 |
Sources
| Story | Persona | |||||
|---|---|---|---|---|---|---|
| Event collection — stories about event collection in this arenaPull customer data in from third-party cloud apps and feeds — not just my own instrumented apps | data-engineer | partialC 6/10 | fullX 8/10 | partialT 7/10 | partialX 5/10 | none 0/10 |
Identity resolution — stories about identity resolution in this arenaIdentity resolution
Profiles
| Story | Persona | |||||
|---|---|---|---|---|---|---|
| Identity resolution — stories about identity resolution in this arenaQuery unified customer profiles — traits, identifiers, event history — through a documented profile API or store | data-engineer | fullT⚿ 8/10 | partialC 5/10 | partialC 6/10 | partialT 5/10 | partialT 6/10 |
Stitching
| Story | Persona | |||||
|---|---|---|---|---|---|---|
| Identity resolution — stories about identity resolution in this arenaAnonymous and known activity stitches into one customer profile across devices, with documented and configurable identity-resolution rules | data-engineer | fullC 8/10 | fullC 7/10 | fullC 8/10 | partialC 5/10 | partialC 6/10 |
Openness — open source, data portability, and self-hosting storiesOpenness
| Story | Persona | |||||
|---|---|---|---|---|---|---|
| Openness — open source, data portability, and self-hosting storiesDo everything through the API that I can do in the UI | ai-native | partialT⚿ 6/10 | partialT 5/10 | partialT 5/10 | partialT⚿ 6/10 | partialT 6/10 |
| Openness — open source, data portability, and self-hosting storiesExport all of my data in open formats and leave | ai-native | partialT⚿ 6/10 | partialX 6/10 | none 0/10 | partialT 6/10 | partialX 5/10 |
| Openness — open source, data portability, and self-hosting storiesRead the product's source under an open license | ai-native | n/a | disputedD 5/10 | n/a | fullT 8/10 | none 0/10 |
| Openness — open source, data portability, and self-hosting storiesSelf-host the core product | ai-native | n/a | fullX 8/10 | n/a | fullT 8/10 | none 0/10 |
Pipeline observability — stories about pipeline observability in this arenaPipeline observability
Observability
| Story | Persona | |||||
|---|---|---|---|---|---|---|
| Pipeline observability — stories about pipeline observability in this arenaWatch events flow live and diagnose delivery failures per destination — debugger views, delivery metrics, and alerting | data-engineer | none 0/10 | fullC 7/10 | none 0/10 | partialC 7/10 | partialX 6/10 |
Privacy consent — stories about privacy consent in this arenaPrivacy consent
Consent
| Story | Persona | |||||
|---|---|---|---|---|---|---|
| Privacy consent — stories about privacy consent in this arenaUser consent is captured and enforced across destinations — opt-outs and consent categories are honored downstream automatically | privacy-lead | partialC 6/10 | partialC 5/10 | fullC 8/10 | none 0/10 | none 0/10 |
Deletion
| Story | Persona | |||||
|---|---|---|---|---|---|---|
| Privacy consent — stories about privacy consent in this arenaProcess user deletion and suppression requests (GDPR/CCPA) and have them forwarded to connected destinations | privacy-lead | fullC 8/10 | none 0/10 | partialC 6/10 | none 0/10 | none 0/10 |
Pii controls
| Story | Persona | |||||
|---|---|---|---|---|---|---|
| Privacy consent — stories about privacy consent in this arenaControl PII flow per destination — hashing, masking, and field-level filtering of sensitive attributes | privacy-lead | partialC 5/10 | partialC 4/10 | partialC 5/10 | partialC 4/10 | none 0/10 |
Privacy posture — data-handling and privacy storiesPrivacy posture
| Story | Persona | |||||
|---|---|---|---|---|---|---|
| Privacy posture — data-handling and privacy storiesChoose where my data is stored (region/residency) | ai-native | none 0/10 | none 0/10 | none 0/10 | partialT 5/10 | partialX 5/10 |
| Privacy posture — data-handling and privacy storiesPrevent my data from being used to train AI models | ai-native | none 0/10 | none 0/10 | n/a | none 0/10 | n/a |
| Privacy posture — data-handling and privacy storiesControl data retention and deletion | ai-native | fullC 8/10 | partialC 3/10 | partialC 4/10 | partialC 4/10 | none 0/10 |
| Privacy posture — data-handling and privacy storiesOpt out of telemetry and usage tracking | ai-native | partialC 4/10 | n/a | none 0/10 | none 0/10 | none 0/10 |
Replay portability — stories about replay portability in this arenaReplay portability
Replay
| Story | Persona | |||||
|---|---|---|---|---|---|---|
| Replay portability — stories about replay portability in this arenaReplay archived events into a new destination or backfill history when a tool is added or a pipeline breaks | data-engineer | partialC 4/10 | none 0/10 | partialC 4/10 | partialC 3/10 | none 0/10 |
Transformations quality — stories about transformations quality in this arenaTransformations quality
Data quality
| Story | Persona | |||||
|---|---|---|---|---|---|---|
| Transformations quality — stories about transformations quality in this arenaA tracking plan or schema is enforced — violating events get flagged, blocked, or quarantined instead of silently corrupting downstream data | data-engineer | partialC 4/10 | partialC 6/10 | partialC 4/10 | partialC 4/10 | none 0/10 |
Transformations
| Story | Persona | |||||
|---|---|---|---|---|---|---|
| Transformations quality — stories about transformations quality in this arenaTransform, filter, and enrich events in-pipeline with custom code or functions before they reach destinations | data-engineer | partialC 6/10 | fullC 8/10 | partialC 4/10 | fullC 8/10 | partialC 5/10 |
Warehouse native — stories about warehouse native in this arenaWarehouse native
Composable
| Story | Persona | |||||
|---|---|---|---|---|---|---|
| Warehouse native — stories about warehouse native in this arenaRun warehouse-native: define models and audiences on tables already in my warehouse and activate them without re-collecting the data (reverse ETL) | data-engineer | partialC 6/10 | fullC 7/10 | partialC 4/10 | none 0/10 | fullX 8/10 |
Warehouse sync
| Story | Persona | |||||
|---|---|---|---|---|---|---|
| Warehouse native — stories about warehouse native in this arenaRaw events and profiles land in my own warehouse or lake (Snowflake, BigQuery, ClickHouse, S3) on a schedule I control | data-engineer | partialC 6/10 | fullX 8/10 | partialC 4/10 | fullC 9/10 | fullX 7/10 |
Adjacent arenas — categories often shopped togetherAdjacent arenas
Shopping this category often means shopping these too.