Not affiliated with JPMorgan Chase.

Strategy

Product specOwner: Card Data Products

The partner data room

One governed domain per co-brand program, serving the partner contracted aggregates and serving internal teams masked rows, from the same tables.

Problem

Every co-brand partner wants program insight: acquisition, spend, redemption, disputes. Today each request becomes a bespoke extract, each extract is a new copy of cardholder data with its own review, and the controls are re-implemented slightly differently every time. Onboarding the next partner, Aurora here, the old way would take a quarter and add one more way to leak.

Users

PersonaJob to be doneNeeds
Partner Aurora analystRun the program on factsContracted metrics, fresh daily, with the clause behind each
Fraud analystInvestigate suspected fraudAll rows including fraud; clear contact data under Fraud Prevention only
Data scientistBuild fraud and attrition modelsTokenized features, fraud labels under Fraud Prevention
Marketing analystSegment and targetSpend behaviour without fraud detail; contact data masked
Audit and model riskIndependent reviewEvery purpose, masked by default, a verifiable access log

Goals and non-goals

Goals

  • A new partner live in days, as configuration.
  • Zero cardholder rows delivered to any partner.
  • One set of rules for screens, APIs and AI.
  • Every access provable to an examiner.

Non-goals

  • Real-time authorization serving; that stays on the switch.
  • Storing clear card numbers, ever.
  • A new BI tool; partners get governed data, not dashboards we maintain.
  • Event-level sharing in the first release.

Requirements

  1. P0The partner persona receives contracted aggregates only. No cardholder-level row reaches it by any path: screen, API or AI.
  2. P0Any aggregate cell under 25 distinct cardholders is suppressed in the database, value and count both.
  3. P0A purpose not granted to a persona returns nothing, for every table. Contact data unmasks only for a role and purpose that allow it.
  4. P0Card numbers are stored masked to the last four digits, and no persona ever sees more.
  5. P0Every read writes a hash-chained access-log row with persona, purpose, outcome and row count.
  6. P1Each partner metric carries a contract clause and a fixed set of breakdowns; the partner's tiles show the clause.
  7. P1A governed AI analyst: verified questions first, model-drafted specs validated against the semantic layer, run on masked views only.
  8. P1A policy self-test for every persona, purpose and data product gates every release and every partner go-live.
  9. P2Time-bound unmask exceptions with approval, and identity-bound personas from SSO claims.

Success measures

MeasureTarget
Days from signed agreement to first governed report10 business days
Cardholder rows delivered to partners0
Partner metrics traceable to a clause100%
Questions answered from verified queries70%
Partner report SLA adherence99.5%
Governed query latency, p95under 5 seconds

Risks and trade-offs

  • Governance against speed. Mask by default with a fast, time-bound unmask request, rather than gating every query.
  • Suppression against usefulness. k = 25 hides merchant-level cells for a mid-sized program. That is the point; the contract offers category-level cuts instead.
  • Policy performance at scale. Policy checks are evaluated once per query, and program scope is indexed.
  • Partner relationship risk. Co-brand programs are won and lost on servicing and data. SLAs and scope are contractual, not best-effort.

Rollout

  1. 1. Entitlements enforced in the database for the fact tables, with the self-test.
  2. 2. Partner aggregate catalogue and suppression; partner acceptance testing against the contract.
  3. 3. Governed AI analyst for internal teams; verified questions first.
  4. 4. Identity-bound personas and unmask exceptions; retire per-analyst extracts.