N
Meridian RETENTION CONSOLE
AA
Audience Analyst
● All critical pipelines healthy. Last successful scoring run completed 14 Mar 2025 at 02:14 AEDT.
12-month retention
72.4%
▲ 4.4pp vs baseline · plan 78%
Month-13 voluntary churn
14.8%
▼ 2.1pp vs October pattern
Recovered subscribers
1,284
216 remaining to quarterly goal
Tableau ↔ console variance
0.8%
Within 2% review threshold

Retention trend vs plan

Trailing 12 months · monthly cohort view

72.4% current
80%70%60%AprSepMar
● Actual● Plan

Freshness & source comparison

Nightly churn scoring14 Mar · 02:14
Billing reconciliation14 Mar · 03:06
Tableau extract14 Mar · 01:40
Mailchimp sync14 Mar · 03:12
Month-13 zero-session readers2,118 ▼ 182

Role-aware access

VP Audience

KPI and trend summary. Individual subscriber PII is hidden.

Analyst

Scores, history, cohort definitions and CSV export enabled.

AU residency

Subscriber PII stored in AU-region GCP Cloud SQL.

Role-Aware Executive Summary · /workspace/overview

Key components: KPI cards, retention trend, freshness, source variance.

  • Open subscriber workspace or scoring runs
  • VP view masks subscriber PII
  • Reconciliation links to row-level review
PII display is role-controlled. Your analyst role can view masked contact fields for diagnosis; every PII access is logged.
SubscriberRisk scoreEngagementAffinityLifecycleConsentFreshness
SUB-10482
m•••••@example.au
92
High risk
0 sessions / 45d
Read depth 0.4
Metro · PoliticsPaid M13Email + call14 Mar 02:14
SUB-10821
j•••••@example.au
78
Watch
1 session / 45d
Read depth 1.2
Business · SportPaid M12Email14 Mar 02:14
SUB-11039
a•••••@example.au
32
Stable
4 sessions / 7d
Read depth 3.8
Metro · CulturePaid M8Email + call14 Mar 02:14
SUB-11302
p•••••@example.au
86
High risk
0 sessions / 31d
Read depth 0.0
Weekend · LocalWin-backEmail withdrawnStale 9h

Subscriber Workspace Directory · /workspace/subscribers

Key components: searchable table, filters, masked PII, score and source freshness.

  • Open a subscriber record
  • Export persisted cohort data
  • Configure thresholds from Analytics
⚠ Subscription status was last confirmed 9 hours ago. Refresh before dialing. PII fields are visible under Analyst role and access is logged.
Churn-risk score
92
Threshold ≥ 75 · persisted 14 Mar
Engagement recency
45d
0 sessions in trailing window
Article-read depth
0.4
Prior baseline 3.9 / week
Lifecycle stage
Paid M13
Renewal due 28 Mar 2025

Subscriber & subscription

Subscriber referenceSUB-10482
Emailm••••••@example.au
Subscription statusActive paid
PlanDigital Premium
Billing sourceBilling AU · 14 Mar 01:58

Consent purposes

Save-offer emailOpted in
Outbound phoneOpted in
Affinity personalisationOpted in

Affinity & reading signals

Masthead affinity
Melbourne Metro 0.84
Section affinity
Politics 0.71
Affinity sourceTableau extract
Source timestamp14 Mar 01:40

Signal interpretation

cohort = paid_month_13 AND sessions_trailing_45d = 0
score = recency_weight(0.62) + read_depth_weight(0.30) + lifecycle_weight(0.10)
threshold_outcome = HIGH_RISK · cohort_membership = OCTOBER_LOSS_PATTERN

Subscriber Record and Signal Detail · /workspace/subscribers/:subscriberId

Key components: signals, affinity, lifecycle, consent and role-authorized PII.

  • View history or lifecycle transitions
  • Add consented subscriber to calls
  • Stale-data warning appears before dialing
Last successful run
02:14
14 Mar 2025 · 179,842 scored
High-risk cohort
8,642
Score ≥ 75 · +4.8% vs prior
Watch cohort
14,208
Score 50–74 · persisted
Score history retained
180d
Prior runs queryable

Threshold configuration

Changes apply without code deployment at the next scheduled nightly run.

Run health

Current statusCompleted
Records scored179,842 / 180,000
Scoring checksumsha256:8f2c…91aa
Previous run13 Mar · 02:12

Cohort membership by persisted run

Run timestampHigh riskWatchStableThreshold outcomeStatus
14 Mar 2025 · 02:148,64214,208156,992Applied ≥75 / ≥50Complete
13 Mar 2025 · 02:128,24814,991156,603Applied ≥75 / ≥50Complete
12 Mar 2025 · 02:118,09115,202156,549Applied ≥75 / ≥50Complete

Churn-Risk Cohort Scoring Workspace · /analytics/churn-cohorts

Key components: persisted run history, thresholds, checksums and cohort counts.

  • Edit thresholds for next nightly run
  • Inspect historical scoring outcomes
  • Open subscriber trajectory from directory

Churn score over time

Sharp drop detected: 4 sessions/week → zero over 45 days.

Trajectory flagged
10050015 Dec15 Jan15 Feb14 Mar

Ordered persisted score history

Scoring timestampScoreMembershipThreshold outcomeSessions / windowRead depth
14 Mar 2025 · 02:1492October loss patternHigh risk0 / 45d0.4
13 Mar 2025 · 02:1289October loss patternHigh risk0 / 45d0.6
01 Mar 2025 · 02:0973WatchWatch1 / 45d1.2
14 Feb 2025 · 02:1044StableBelow threshold4 / 7d3.9

Subscriber Score Trajectory · /analytics/subscribers/:subscriberId/score-history

Key components: trend chart, ordered historical scores, threshold outcomes.

  • Flag a sharp trajectory
  • Create queued intervention
  • Return to consolidated record
Token rotation scheduled in 18 days. Segment count variance above 2% holds approval automatically.
Intervention / cohortCampaignSegment IDAudienceConsentVarianceStatus
INT-2481
Paid M13 · zero sessions / 45d
Save offer 20% · MarchMC-AU-778212,11898.4%0.8%Queued
INT-2479
High risk · score ≥75
Save offer 15% · MarchMC-AU-778188,64296.1%2.7%Held
INT-2474
Watch · score 50–74
Editorial bundle · MarchMC-AU-777954,92099.1%0.3%Approved

Audit state model

Queued
14 Mar · 08:32
Approved
Manager required
Triggered
Mailchimp success

Every transition records actor, timestamp, cohort hash, segment ID and campaign ID.

Retention Intervention Approval Queue · /interventions/queue

Key components: inline mapping, counts, consent, discrepancy and token health.

  • Review or bulk-select queued interventions
  • Held rows require discrepancy acknowledgement
  • Approved rows open trigger evidence

Cohort definition

lifecycle_stage = paid
subscription_month = 13
sessions_trailing_45d = 0
churn_score >= 75
Console cohort count2,118
Mailchimp segment count2,101
Difference0.8% · within tolerance
Consent eligible2,084 (98.4%)

Mailchimp mapping

CampaignSave offer 20% · March
Campaign IDMC-CAMP-2025-0314
Segment IDMC-AU-77821
OAuth2 tokenValid · expires 01 Apr
PII transferID + email only

Approval risk review

High-volume dispatches require Okta MFA step-up confirmation. No send occurs until approval succeeds.

Retention Intervention Review and Approval · /interventions/:interventionId/review

Key components: logic, variance, mapping, consent and step-up gate.

  • Acknowledge checks before approval
  • Reject with an audit reason
  • Step-up returns to pending dispatch
Queued
14 Mar · 08:04
Approved
Retention Specialist B · 08:11
Triggered
14 Mar · 08:11:08
✓ Mailchimp accepted the journey request. 4,884 eligible recipients entered the mapped segment.
Campaign ID
MC-CAMP-2025-0309
Segment ID
MC-AU-77795
Request ID
req_01HT…8D2

Dispatch result

HTTP response202 Accepted
Token versionrot-2025-02-28
Eligible recipients4,884
Suppressed by consent36

Immutable audit evidence

ActorRetention Specialist B
Approval timestamp14 Mar · 08:11 AEDT
Cohort hashsha256:c12e…22a
Audit signatureHMAC verified

Mailchimp Trigger Result Detail · /interventions/:interventionId/trigger

Key components: state progression, request result, identifiers and audit evidence.

  • Verify successful trigger response
  • Inspect token version and consent suppression
  • Open audit log for full evidence
Selected interventions
3
Of 12 queued
Total audience
15,680
15,214 consent eligible
Segments
3
No duplicates detected
Excluded
1
Variance over 2%

Segment-level summary

InterventionSegmentAudienceConsent eligibleVarianceBulk status
INT-2481 · Paid M13MC-AU-778212,1182,0840.8%Included
INT-2478 · High riskMC-AU-778178,6428,4211.1%Included
INT-2479 · WatchMC-AU-778184,9204,7092.7%Excluded · review
One divergent intervention is excluded from the bulk approval and remains individually actionable.

Bulk Intervention Approval · /interventions/bulk-approval

Key components: aggregate count, audience total, segment summary and exclusion logic.

  • Review divergent segments individually
  • Confirm included batch with one step-up
⚠ One record has stale subscription data. Check status before dialing. The queue does not emit system audio cues.
PrioritySubscriberSubscriptionLifecycleEngagementAffinityFreshnessClaim
1SUB-10482
m••••••@example.au
Active paidPaid M130 sessions / 45d
Score 92
Metro · Politics2h ago
2SUB-11302
p••••••@example.au
CancelledWin-back0 sessions / 31d
Score 86
Weekend · LocalStale 9h
3SUB-10821
j••••••@example.au
Active paidPaid M121 session / 45d
Score 78
Business · Sport2h ago

Outbound Call Queue · /calls/queue

Key components: atomic claim, consent, status, lifecycle, affinity and freshness inline.

  • Claim an eligible subscriber
  • Cancelled or stale records are blocked
  • Completion opens required outcome capture
Subscription
Active paid
Current lifecycle
Paid M13
Data freshness
09:42 AEDT

Required outcome capture

Saved with specialist identity, timestamp and any lifecycle transition. Consent withdrawals propagate to Mailchimp and the call queue.

Outbound Call Completion · /calls/:callId/complete

Key components: required outcome, lifecycle observation, notes, follow-up and consent.

  • Save completion and transition audit
  • Release claim without completion
  • No system audio cue is emitted
Current stagePaid · month 13
Subscriber referenceSUB-10482
History records4

Ordered transition audit trail

Trial → Paid02 Apr 2024 · Billing system · Subscription activated
Paid M1 → Paid M1228 Feb 2025 · Monthly cohort process · Renewal confirmed
Paid M12 → Paid M1328 Feb 2025 · Billing system · Renewal cohort assignment
Paid M13 → Win-backPending observation · Subscription specialist can record during call

Lifecycle Stage History · /workspace/subscribers/:subscriberId/lifecycle-history

Key components: ordered transitions, actor, timestamp, source and call linkage.

  • Review complete stage history
  • New call observations create attributed transitions
Last successful run
03:06
14 Mar · 179,842 records
Discrepancies
47
Awaiting human review
Matched
99.97%
No auto-overwrites
Prior results
180d
Preserved and queryable

Run history

14 Mar · 03:06Complete · 47 diffs
13 Mar · 03:02Complete · 39 diffs
12 Mar · 03:04Complete · 52 diffs
11 Mar · 03:01Failed · preserved

Review policy

All 47 discrepancies require acknowledgement. Source values remain preserved until a human review decision.
Billing records ingested179,842
Tableau records ingested179,889
Consent implications6

Reconciliation Operations Dashboard · /operations/reconciliation

Key components: run health, historical status, discrepancy totals and human-review policy.

  • Run bounded reconciliation
  • Open row-level discrepancy queue
  • Failed runs preserve prior results
47 awaiting review

Billing system · SUB-11302

Subscription statusActive paid
Lifecycle stagePaid M13
Phone consentOpted in
Snapshot: 14 Mar 2025 · 02:58 AEDT · billing-au-7781

Tableau extract · SUB-11302

Subscription statusCancelled
Lifecycle stageWin-back
Phone consentWithdrawn
Snapshot: 14 Mar 2025 · 01:40 AEDT · tableau-row-9921
Discrepancy type: subscription status + consent mismatch. Calling is blocked until reviewed.

Reconciliation Discrepancy Review · /operations/reconciliation/discrepancies

Key components: preserved side-by-side source values, types, timestamps and consent impact.

  • Acknowledge a discrepancy
  • Open both source records
  • Export row-level evidence
Current status
Healthy
Weekly cadence preserved
Last successful ingest
01:40
14 Mar 2025 · AU region
Records queryable
179,889
Freshness timestamp attached

Extract cadence history

IngestedFileRecordsDurationStatus
14 Mar · 01:40subscriber_extract_2025_11.csv179,8898m 12sComplete
07 Mar · 01:42subscriber_extract_2025_10.csv179,8108m 19sComplete
28 Feb · 01:41subscriber_extract_2025_09.csv179,7448m 03sComplete
21 Feb · 01:43subscriber_extract_2025_08.csv179,701—Failed · prior retained

Tableau Extract Operations · /operations/tableau-extract

Key components: cadence, freshness, queryable records and failure preservation.

  • Queue an ingestion
  • Inspect prior successful and failed extracts

Pipeline freshness

Nightly scoringHealthy · 14 Mar 02:14
ReconciliationHealthy · 14 Mar 03:06
Mailchimp syncHealthy · 14 Mar 03:12
Tableau extractHealthy · 14 Mar 01:40
Token rotationHealthy · 28 Feb 16:00

Alerts

47 reconciliation discrepancies require human review.
Mailchimp token rotation completed successfully; old credential revoked.

Service-level indicators

Scoring completion SLA
99.8%
Tableau cadence SLA
100%
Mailchimp trigger success
99.2%

System Health and Integration Operations · /admin/system-health

Key components: pipeline freshness, token status, alerts and service-level indicators.

  • Inspect token health or audit evidence
  • Monitor all critical integration timestamps
Current status
Healthy
No anomaly detected
Expires in
18d 06h
01 Apr 2025 · 16:00 AEDT
Last refresh
28 Feb
16:00 AEDT
Next rotation
28 Mar
Scheduled automatically

Scope & controls

Service identitynorthstar-mailchimp-prod
StorageGCP Secret Manager · CMEK
Scopessegments:write · campaigns:read
Old credentialRevoked after rotation

Rotation history

28 Feb 2025Success · rot-2025-02-28
31 Jan 2025Success · rot-2025-01-31
03 Jan 2025Success · rot-2025-01-03
Current anomaly stateNone

Mailchimp OAuth2 Token Health · /admin/mailchimp/token-health

Key components: expiry countdown, refresh, scope, anomaly and safe rotation history.

  • Start a controlled token rotation
  • Review previous rotation evidence
TimestampActorEventReferencePurposeIntegrity
14 Mar · 09:42Bridie O'SullivanPII access · subscription_statusSUB-10482Outbound callVerified
14 Mar · 08:11Retention Specialist BIntervention approvedINT-2474 · MC-AU-77795Retention marketingVerified
14 Mar · 03:06northstar-workerReconciliation completedRUN-2025-0314AccuracyVerified
13 Mar · 17:22Unknown sessionFailed MFAOKTA-7fa2Access controlLogged
28 Feb · 16:00Retention Specialist AToken rotationrot-2025-02-28Integration securityVerified
Raw subscriber PII is excluded from audit fields. Subscriber references are pseudonymous and every access includes actor, timestamp, field and purpose.

Audit and Compliance Log · /admin/audit-log

Key components: immutable events, filters, purpose tags and integrity state.

  • Filter and export compliance evidence
  • Inspect PII access and failed MFA events

AU residency

Compliant

GCP Cloud SQL · Melbourne region
CMEK encryption · no cross-region replication

Consent register

98.4%

Save-offer email eligibility across active high-risk cohorts. Nightly reconciled.

Access requests

4

Open access or correction requests · all within 30-day SLA.

Role-based PII explanations

VP AudienceAggregates only
Audience AnalystMasked contact PII
Lifecycle ManagerConsent-relevant fields
Subscription SpecialistCall-required fields
OperatorNo subscriber PII

Purpose propagation

Billing → AU consoleLogged
AU console → MailchimpID + email · assessed
AU console → call queuePhone consent checked
Withdrawal propagationLast run 03:12

Open privacy requests

RequestTypeScopeDueStatus
DSAR-2041CorrectionAffinity + lifecycle21 Mar 2025In review
DSAR-2038AccessScore history18 Mar 2025Preparing

Access, Privacy, and Consent Controls · /admin/privacy-controls

Key components: AU residency, role explanations, purpose flows and requests.

  • Review consent propagation state
  • Track access and correction requests
  • Explain why PII is masked by role

Microsoft 365 SSO and MFA Sign-In · /auth/sign-in

Key components: SAML entry, MFA explanation, role resolution and support path.

  • Continue to Okta SSO and MFA
  • Application passwords are not collected

Session Re-Authentication · /auth/reauthenticate

Key components: interrupt-safe context, Okta MFA step-up and protected pending action.

  • Complete MFA and return to trigger
  • Cancel without losing workspace safety