arrow_back Back to Projects
Case Study Payments · Patient Experience

Patient Installment Payments Launch

I led the cross-functional launch of a patient installment-payments feature: instead of settling a "Pay Now" balance in one go, patients could split it into smaller payments over a few months. It spanned the Provider Portal and Patient Portal and integrated a third-party installment-payment provider. Because launching payments touches compliance, support readiness, and provider flows, a big-bang release was too risky, so I staged it through QA, an internal release, a beta, and GA. My job was to align Engineering, Product, Support, Sales, Legal, and Marketing and sequence the rollout so GA landed as a non-event.

RoleTechnical Program Manager
ScopeCross-functional launch · 5 functions
StackProvider Portal · Patient Portal · third-party payments API
OutcomeStaged rollout · zero-surprise GA
The Problem

A payments feature is a launch problem, not just a build

For patients: a "Pay Now" balance had to be paid in full in one transaction. For larger bills that was a barrier, and patients needed a way to break the balance into smaller payments over a few months without leaving the portal.

For the business: standing up installment payments touched far more than the checkout screen. It involved a third-party installment-payment provider, legal and compliance review, support readiness, and the provider-facing flows that could not be allowed to regress. Shipping it all at once to everyone would have exposed compliance gaps, an unprepared support team, and any provider-flow disruption to the entire customer base at the same moment.

The task: stage the rollout so each function was ready before the next audience saw the feature, every phase had a clear entry and exit gate, and the release stayed reversible the whole way to GA.

How I Drove It · Charter

The launch charter

Before any rollout, I set a charter so every function was working toward the same launch and the same bar. Goal, scope, and success criteria were agreed up front and used to settle trade-offs as phases progressed.

flag

Goal

One safe, staged path to GA for patient installment payments, with each function ready before the next audience, and no disruption to existing provider flows.

fact_check

Scope

In: the patient-facing installment flow, provider-side visibility, support enablement, and the phased rollout mechanics across both portals.

Out: the third-party provider's internal underwriting, and any rework of the core billing system.

verified

Success criteria

  • check_circleClean QA pass before release
  • check_circleSupport ready before customers
  • check_circleNo provider-flow disruption
  • check_circleReversible at every phase
How I Drove It · Stakeholders

The stakeholder map & RACI

Six functions touched the launch, and their ownership shifted by phase. I mapped a RACI so it was always clear who was responsible, who was accountable, and who needed to be consulted or kept informed at each gate.

Function QA Internal Beta GA
EngineeringRRRR
ProductAAAA
SupportIRRC
LegalCACI
SalesICCI
MarketingICCR
R ResponsibleA AccountableC ConsultedI InformedAs program manager I drove the cadence across all of them.
How I Drove It · Phased Rollout

The phased rollout

The launch ran in four phases, each with an explicit entry and exit gate. Nothing advanced until the prior phase exited cleanly, so every audience saw the feature only once the function behind it was ready.

<2 mo

Launch to GA

20+

Internal pilot users

150+

Beta users

6

Functions coordinated

Phase 1

QA pass

arrow_forward

Phase 2

Internal release

arrow_forward

Phase 3

Beta

arrow_forward

Phase 4

GA

bug_report

Phase 1 · QA pass

The feature was hardened against the payment-flow edge cases before anyone outside the build team touched it.

Entry: feature-complete build across both portals.

Exit: test suite green, edge cases and error states covered.

group

Phase 2 · Internal release

20+ users

Support, Sales, Legal, and Marketing dogfooded the feature and built the knowledge base and help articles, with screenshots, before any customer saw it.

Entry: QA exit met.

Exit: KB and help articles published, internal sign-off secured.

science

Phase 3 · Beta

150+ users

Opt-in through account settings, plus an ongoing beta list I piloted, so real patients used it while the blast radius stayed small and reversible.

Entry: KB live and support trained.

Exit: beta feedback triaged, no open blockers.

rocket_launch

Phase 4 · GA

General availability was deliberately anticlimactic: every function was already ready, so turning it on for everyone was a non-event.

Entry: Go/No-Go all green.

Exit: monitored and stable, rollback on standby.

Launch Readiness

The Go/No-Go checklist

GA did not happen on a hunch. The launch cleared one gate, and every item had to be green to call it a Go. It made "are we ready?" an objective decision instead of an argument.

ruleLaunch-readiness gate
check_circleAll green = Go
check_circleKnowledge base and help articles live
check_circleSupport trained and staffed for launch
check_circleLegal and compliance sign-off secured
check_circleRollback plan documented and tested
check_circleMonitoring and alerting active
check_circleProvider-flow regression passed
check_circleBeta blockers cleared
How I Drove It · RAID

Risks & mitigations

Illustrative

I ran a living risk log and worked it every cadence. The point was not to list risks, it was to name an owner and a mitigation that the phased rollout actually enforced.

Type Item Severity Mitigation Owner
RiskPayment-flow edge cases (partial pays, failures)Hardened error and edge-case handling, gated behind a clean QA exit before any release.Engineering
RiskProvider-flow disruption from the new featureProvider-flow regression in the Go/No-Go gate; feature-flagged so it could be disabled per portal.Product + Engineering
RiskSupport not ready when customers arriveInternal release built the KB and trained support before beta; support-ready was a GA gate.Support
Dep.Legal and compliance sign-off timingBrought Legal in at the internal release as an accountable party so sign-off was not a last-minute surprise.Legal
Assum.Adoption depends on clear patient messagingMarketing owned GA messaging, drafted and reviewed during internal release and beta.Marketing
HighMediumLow
Contingency

The rollback plan

Reversibility was a charter success criterion, not an afterthought. At every phase there was a clear way to turn the feature off and a documented decision for who made the call.

settings_backup_restoreIf something went wrong
toggle_off

Feature-flagged: the feature could be disabled per portal without a deploy, so a problem in one surface did not force a full rollback.

how_to_reg

Opt-in beta: participation was reversible from account settings, keeping the blast radius small while real usage was observed.

monitoring

Trip-wires: monitoring thresholds defined ahead of time what "going wrong" looked like, so the call was based on signal, not vibes.

account_balance_wallet

In-flight balances: documented how a patient already mid-plan was handled if the feature was disabled, so no one was left in an undefined state.

Impact

A launch that landed quietly

rocket_launch

Non-event

GA, by design

support_agent

Support-ready

KB shipped before customers

verified_user

No regressions

provider flows intact

Illustrative

Representative outcomes; specific figures can be confirmed and added.

insights

Qualitative outcome: patients gained a way to split a "Pay Now" balance into smaller payments, GA shipped without a fire drill because every function was ready, and support fielded fewer surprises because the knowledge base went live before the feature did. The phased approach meant any issue surfaced to a small, reversible audience first.

Reflection

What I'd do differently

arrow_backAll projects mailDiscuss this work