Kaiser Permanente · Content strategy
Simplify access to health care
Late in 2015, Kaiser Permanente was migrating kp.org off a legacy CMS onto Adobe Experience Manager. I came in as a contract content strategist with five journeys to cover. Three of them turned into real problems. A filing cabinet nobody had inventoried, a footer every team wanted a piece of, and a site-wide alert system that had never been designed.
Role
Sr. Content Strategist (contract), kp.org
Scope
Content audits, footers, alerts, site-wide alert governance
Timeline
December 2015 to April 2016
Outcome
A content model, a footer structure, and recommended criteria for categorizing alerts
Context

Kaiser’s digital presence was not one site. Kp.org carried the member and plan-shopping experience, thrive.kp.org carried wellness content, and each had grown its own header and footer with no shared logic for signed-in versus signed-out. Underneath both sat eight regions with their own versions of the same content.
There was a lot to choose from. My focus was the content. What exists, what it should be called, who gets to publish it, and what happens when the site has to tell every member something urgent at once.
Act 1: A content model for the filing cabinet
The Forms and Publications section was regionalized and inconsistent, with no shared model underneath. Before anyone could design a better structure, someone had to say what was actually in there. I scraped every document and link from the Northern California page, separated real content from header and footer noise, then loaded the unique items into Airtable so I could query for patterns.
The Newsletters and articles page had sixty-six links, of which fifty-eight were the site’s own navigation, repeated. Eight were content, and three of those were not newsletters. The page was almost entirely scaffolding.
Org chart as information architecture

Moving from information architecture based on an organizational chart to a content model that could inform publishing and CMS going forward. The model lists each document once. Language is not a level in it, and neither is region. The Health Information Exchange opt-in, which the audit had found listed twice under two different names, resolves to a single node. The structure follows what a member came for, not how the files were stored.
Data requests
The inventory covered Northern California only. I requested the available analytics for all eight regions, July 2015 through February 2016, to find out whether one region’s page held everywhere. It held. Across sixty-four region-months, newsletters never broke four percent of category traffic. Forms and plan-services publications carried nearly all of it, and both spiked every January at open enrollment. In Georgia, plan services nearly quintupled.
Forms and Publications: monthly article visits
Newsletters never broke four percent of category traffic. Plan services nearly tripled in January, at open enrollment.
- Forms
- Plan services
- Newsletters
View the data
| Month | Forms | Plan services | Newsletters |
|---|---|---|---|
| Jul 2015 | 5,688 | 4,598 | 316 |
| Aug 2015 | 6,544 | 4,521 | 336 |
| Sep 2015 | 5,529 | 4,185 | 336 |
| Oct 2015 | 5,656 | 4,207 | 364 |
| Nov 2015 | 5,422 | 3,833 | 285 |
| Dec 2015 | 4,997 | 4,109 | 197 |
| Jan 2016 | 6,413 | 11,570 | 282 |
| Feb 2016 | 7,533 | 11,801 | 350 |
Source: Webtrends data request, kp.org, Northern California July 2015 – February 2016
The audit was a pilot on one regional page, so I recommended repeating it across all eight before committing to a final architecture. Separately, the research team ran a card sort on the same area. More than half of participants split forms from informational resources unprompted. Members arrived independently at the structure the inventory implied.
Act 2: A footer with a rule behind it
The footer is where every team in a large organization goes when they have been told no somewhere else. Kaiser’s was a flat list of thirteen links with no sections, and the future-state version had to serve two properties, eight regions, and both authentication states.

I wrote a content strategy for the global components first, so the footer had something to be measured against instead of a queue of requests. Three rules did the work. Prioritize on historical usage rather than on who asks loudest. Personalize before and after login, by region. And for anything proposed, answer one question: is this popular, required, or are we just looking to promote it?
Scroll and heat maps of the Thrive home page settled the sizing argument. Most of the page went unseen on the way down, which turned the question from how many links would fit into how few could be justified. The recommendation was four columns and about thirteen links, sectioned, with the seal and the broker and employer links hidden from signed-in members because a member is not shopping for a plan.

Act 3: Alerts in need of governance
My second assignment was the site-wide alert system, the Important notices component used for everything from flu season to wildfires. I audited what it was carrying and who was putting it there. On the homepage capture I took into the review deck, the component held nine notices at once, published by four different groups, with no order, no priority, and no way to tell which one mattered.
Nine notices. Four publishers. One component.
This is the Important notices block on the kp.org homepage on a single day in early 2016, with the wording it actually shipped with. Four groups wrote into it and none of them could see the others. Use the filters to find out who wrote what, then try sorting them yourself.
Step 1 · who wrote this
! Important notices
Step 2 · your turn
Five of the nine carried real urgency signals. Give each one a tier and the framework will tell you where it landed, including the two it got wrong.
0 of 5 sorted
To discovery what the historical patterns were, I pulled the full publishing history out of the legacy CMS to find the causes. Roughly thirty site-wide notices between September 2014 and March 2016. Ebola, the 2015 measles outbreak, wildfires, a North Bay earthquake, a data breach, labor actions, the Supreme Court’s ACA ruling. At least fourteen different publishers, and no shared rule for scope, priority, or when anything came down.
One field hinted at a framework. The CMS had an expiration date, and every single record had it empty. Nothing was ever scheduled to leave. Notices came down when somebody remembered, which meant the page recorded what each team lobbied most recently about rather than what a member needed to know. No amount of visual hierarchy fixes that. An empty field on thirty records is a governance gap, and it is the reason this act is about governance and not about design.
The click data showed what it cost. One live link read “Click here for more information.” It drew 896 clicks and nobody could say what for.
The same panel, eight weeks apart
Flu was the most clicked notice on kp.org in Q4 2015, more than every other notice combined. By January and February taxes had overtaken it. The panel had no way to respond to that, because nothing in it could expire, reorder, or step down.
- Flu vaccine notice
- 2015 tax notice
View the data
| Notice | Q4 2015 | Jan–Feb 2016 |
|---|---|---|
| Flu vaccine | 8,895 | 1,219 |
| 2015 taxes | ~2,400 | 6,271 |
Source: kp.org alerts guidelines deck, “Categories & metrics”. Three of these four figures are exact and appear in the record. The Q4 tax number was only ever drawn as a bar, never written down, so it is shown dashed and marked with a tilde rather than given false precision. The deck tracked the Social Security number, virus, and regional news notices over the same two periods; those are left out here for the same reason.
So I proposed three tiers. P1 for emergencies, site-wide and above everything, with little or no advance notice. P2 for closures and service interruptions, site-wide, with normal lead time and a mandatory expiry. P3 for advance-notice and seasonal items, held in the Important notices panel instead of commanding the page. Each tier fixed a placement, a timing rule, an expiry, and a named approver.

Alerts were never only a content problem. Thirteen groups had standing in what got published, from the issues and crisis team and national and regional communications to legal and regulatory, the member service contact center, and the physicians and medical groups. The deck set out their guiding principles. Three of them mattered here: deliver care first and treat financial concerns as secondary; be a compassionate, responsible provider and employer; and share information quickly and openly.
That third principle is the one that bites. Sharing quickly and openly is in direct tension with an approval chain, and thirteen groups had never had to reconcile the two. Naming that tension was the deliverable. Reaching alignment on it would be theirs going forward.

Close
My piece of the migration mapped what actually sat behind Forms and Publications, argued a global footer down to something a member could use and a health system would approve, and turned a decade of ad hoc notices into a system with tiers, expiry dates, and an owner for each.
The tiers went into the backlog as written requirements to inform a criteria for judging what a notification is and where it belongs. It was also the project that turned an unplanned detour, by way of a hospitality client at Razorfish, into a career direction. The one that led to PayPal.
Working on something with this shape?
Content models, publishing governance, and the part where a dozen teams have to agree on one thing. If that is the problem in front of you, book half an hour and we can talk it through.