Good morning, Sienna
Retention performance across 180,000 digital subscribers. Data is current through the 14 Mar 2025 nightly run.
Retention trend vs plan
Trailing 12 months · monthly cohort view
Freshness & source comparison
Role-aware access
KPI and trend summary. Individual subscriber PII is hidden.
Scores, history, cohort definitions and CSV export enabled.
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
Subscriber workspace
Search persisted scores, engagement signals, affinity, lifecycle and consent in one view.
| Subscriber | Risk score | Engagement | Affinity | Lifecycle | Consent | Freshness | |
|---|---|---|---|---|---|---|---|
| SUB-10482 m•••••@example.au | 92 High risk | 0 sessions / 45d Read depth 0.4 | Metro · Politics | Paid M13 | Email + call | 14 Mar 02:14 | |
| SUB-10821 j•••••@example.au | 78 Watch | 1 session / 45d Read depth 1.2 | Business · Sport | Paid M12 | 14 Mar 02:14 | ||
| SUB-11039 a•••••@example.au | 32 Stable | 4 sessions / 7d Read depth 3.8 | Metro · Culture | Paid M8 | Email + call | 14 Mar 02:14 | |
| SUB-11302 p•••••@example.au | 86 High risk | 0 sessions / 31d Read depth 0.0 | Weekend · Local | Win-back | Email withdrawn | Stale 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
Subscriber record High churn risk
Consolidated signals for SUB-10482 · refreshed 14 Mar 2025, 02:14 AEDT.
Subscriber & subscription
Consent purposes
Affinity & reading signals
Signal interpretation
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
Churn-risk cohort scoring
Nightly persisted scoring across 180,000 subscribers using engagement recency and article-read depth.
Threshold configuration
Run health
Cohort membership by persisted run
| Run timestamp | High risk | Watch | Stable | Threshold outcome | Status |
|---|---|---|---|---|---|
| 14 Mar 2025 · 02:14 | 8,642 | 14,208 | 156,992 | Applied ≥75 / ≥50 | Complete |
| 13 Mar 2025 · 02:12 | 8,248 | 14,991 | 156,603 | Applied ≥75 / ≥50 | Complete |
| 12 Mar 2025 · 02:11 | 8,091 | 15,202 | 156,549 | Applied ≥75 / ≥50 | Complete |
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
Score trajectory
Persisted churn-risk history for SUB-10482. Historical scores remain queryable after every nightly run.
Churn score over time
Sharp drop detected: 4 sessions/week → zero over 45 days.
Ordered persisted score history
| Scoring timestamp | Score | Membership | Threshold outcome | Sessions / window | Read depth |
|---|---|---|---|---|---|
| 14 Mar 2025 · 02:14 | 92 | October loss pattern | High risk | 0 / 45d | 0.4 |
| 13 Mar 2025 · 02:12 | 89 | October loss pattern | High risk | 0 / 45d | 0.6 |
| 01 Mar 2025 · 02:09 | 73 | Watch | Watch | 1 / 45d | 1.2 |
| 14 Feb 2025 · 02:10 | 44 | Stable | Below threshold | 4 / 7d | 3.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
Retention intervention queue
Review consented save-offer journeys before they are dispatched to Mailchimp.
| Intervention / cohort | Campaign | Segment ID | Audience | Consent | Variance | Status | ||
|---|---|---|---|---|---|---|---|---|
| INT-2481 Paid M13 · zero sessions / 45d | Save offer 20% · March | MC-AU-77821 | 2,118 | 98.4% | 0.8% | Queued | ||
| INT-2479 High risk · score ≥75 | Save offer 15% · March | MC-AU-77818 | 8,642 | 96.1% | 2.7% | Held | ||
| INT-2474 Watch · score 50–74 | Editorial bundle · March | MC-AU-77795 | 4,920 | 99.1% | 0.3% | Approved |
Audit state model
14 Mar · 08:32
Manager required
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
Review intervention INT-2481
Approve the March save-offer journey for the Paid M13 zero-session cohort.
Cohort definition
subscription_month = 13
sessions_trailing_45d = 0
churn_score >= 75
Mailchimp mapping
Approval risk review
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
Mailchimp trigger result
Dispatch evidence for Editorial bundle · March.
14 Mar · 08:04
Retention Specialist B · 08:11
14 Mar · 08:11:08
Dispatch result
Immutable audit evidence
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
Bulk intervention approval
Campaign window · 9:00am AEDT. Review 3 selected interventions before one MFA step-up.
Segment-level summary
| Intervention | Segment | Audience | Consent eligible | Variance | Bulk status |
|---|---|---|---|---|---|
| INT-2481 · Paid M13 | MC-AU-77821 | 2,118 | 2,084 | 0.8% | Included |
| INT-2478 · High risk | MC-AU-77817 | 8,642 | 8,421 | 1.1% | Included |
| INT-2479 · Watch | MC-AU-77818 | 4,920 | 4,709 | 2.7% | Excluded · review |
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
Outbound call queue
Priority-ranked, consented at-risk subscribers. Claim is atomic to prevent duplicate calls.
| Priority | Subscriber | Subscription | Lifecycle | Engagement | Affinity | Freshness | Claim |
|---|---|---|---|---|---|---|---|
| 1 | SUB-10482 m••••••@example.au | Active paid | Paid M13 | 0 sessions / 45d Score 92 | Metro · Politics | 2h ago | |
| 2 | SUB-11302 p••••••@example.au | Cancelled | Win-back | 0 sessions / 31d Score 86 | Weekend · Local | Stale 9h | |
| 3 | SUB-10821 j••••••@example.au | Active paid | Paid M12 | 1 session / 45d Score 78 | Business · Sport | 2h 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
Complete outbound call
SUB-10482 · claimed by Bridie O'Sullivan at 09:46 AEDT. No audio or disruptive modal is used.
Required outcome capture
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
Lifecycle stage history
Complete ordered history for trial → paid → win-back, with actor and source attribution.
Ordered transition audit trail
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
Subscriber reconciliation
Nightly comparison between subscription billing and the Tableau subscriber extract. Mismatches are never silently resolved.
Run history
Review policy
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
Discrepancy review queue
Side-by-side source snapshots for human review. No values are overwritten automatically.
Billing system · SUB-11302
Tableau extract · SUB-11302
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
Tableau extract operations
Weekly cadence preserved while records remain queryable in the workspace.
Extract cadence history
| Ingested | File | Records | Duration | Status |
|---|---|---|---|---|
| 14 Mar · 01:40 | subscriber_extract_2025_11.csv | 179,889 | 8m 12s | Complete |
| 07 Mar · 01:42 | subscriber_extract_2025_10.csv | 179,810 | 8m 19s | Complete |
| 28 Feb · 01:41 | subscriber_extract_2025_09.csv | 179,744 | 8m 03s | Complete |
| 21 Feb · 01:43 | subscriber_extract_2025_08.csv | 179,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
System health
Single operational view for scoring, reconciliation, Mailchimp, Tableau and token rotation.
Pipeline freshness
Alerts
Service-level indicators
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
Mailchimp OAuth2 token health
Rotating service-account credentials are scoped, credential-safe and never exposed in the workspace.
Scope & controls
Rotation history
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
Audit and compliance log
Append-only events for approvals, PII access, MFA, lifecycle, reconciliation and dispatch.
| Timestamp | Actor | Event | Reference | Purpose | Integrity |
|---|---|---|---|---|---|
| 14 Mar · 09:42 | Bridie O'Sullivan | PII access · subscription_status | SUB-10482 | Outbound call | Verified |
| 14 Mar · 08:11 | Retention Specialist B | Intervention approved | INT-2474 · MC-AU-77795 | Retention marketing | Verified |
| 14 Mar · 03:06 | northstar-worker | Reconciliation completed | RUN-2025-0314 | Accuracy | Verified |
| 13 Mar · 17:22 | Unknown session | Failed MFA | OKTA-7fa2 | Access control | Logged |
| 28 Feb · 16:00 | Retention Specialist A | Token rotation | rot-2025-02-28 | Integration security | Verified |
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
Access, privacy & consent controls
Australian Privacy Principles evidence, role explanations and consent propagation across systems.
AU residency
GCP Cloud SQL · Melbourne region
CMEK encryption · no cross-region replication
Consent register
Save-offer email eligibility across active high-risk cohorts. Nightly reconciled.
Access requests
Open access or correction requests · all within 30-day SLA.
Role-based PII explanations
Purpose propagation
Open privacy requests
| Request | Type | Scope | Due | Status |
|---|---|---|---|---|
| DSAR-2041 | Correction | Affinity + lifecycle | 21 Mar 2025 | In review |
| DSAR-2038 | Access | Score history | 18 Mar 2025 | Preparing |
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
Sign in to Meridian
Subscriber retention intelligence for the Melbourne newsroom.
Microsoft 365 SSO
Meridian uses Microsoft 365 SAML SSO through Okta. No application password is collected here. MFA is required before any protected workspace or subscriber PII is shown.
Need access? Contact Marketing Operations · privacy@melbournemetro.au
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
Confirm your identity
Your secure session needs attention before continuing.
Re-authenticate with Okta
Continue through Microsoft 365 SAML SSO and approve the MFA prompt. After verification, you will return to the approval action without losing your review.
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