Organizational Checkup

A redesign of the free business assessment EOS Worldwide has run for years.

Role
Redesign, front end, emails and rollout for EOS Worldwide
Stack
PHP and MySQL on WP Engine, SendGrid, the HubSpot API; the landing page in React on Vercel
Status
Live at organizationalcheckup.com
The results page: score, bars and wheel, then the roadmap tabs and the 20 answers. Recorded from the live site with my own test results.

The Organizational Checkup is a free assessment from EOS Worldwide. You rate your company on 20 statements, and it scores you across the six parts of a business EOS works on, then gives you a roadmap. Business owners take it alone, leadership teams run it with everyone in the company, and EOS Implementers send it to clients before their first session.

It had been running since around 2018, and it looked it. There was no phone layout: a phone showed the desktop page shrunk to fit. Two copies were live on two domains, and the scheduled jobs that send reminders had no protection on their web addresses. I redesigned every screen, made one copy the real one, and kept everything that already worked.

Where it started

The original Organizational Checkup question screen: a grey header, an orange bar and a small 1 to 5 slider.
Before: a question in the original design.
The redesigned question screen: a white card with a progress bar, the statement in large type and five large buttons.
After: the same question, with progress and five large buttons.
The original question screen on a phone: the desktop page shrunk to fit, with tiny text.
Phone, before: the desktop page, shrunk.
The redesigned question screen on a phone, with large buttons and Back and Next at the bottom.
Phone, after.
  • Thumb-sized answers. The 1 to 5 slider became five large buttons, and Next sits within reach of a thumb. On a keyboard, 1 to 5 answers and Enter moves on.
  • Progress you can see. “Question 3 of 20” and a bar, so nobody wonders how long it takes.
  • The brand it already had. Navy, orange and Montserrat from the EOS brand guide, in place of the grey and brown of the original.

Results people can read

The old results page put a 3D pie chart next to a long table of answers. The new one leads with the score and what to do next: the total out of 100, a bar for each component, and the lowest component named, since that’s where to start. The wheel is drawn as a plain SVG, so it’s sharp on any screen and prints cleanly.

The original results page: a small score, coloured bars and a grey 3D pie chart next to a table of answers.
Before: the results page.
The redesigned results page: the score out of 100, a bar per component and a flat wheel.
After: score, bars and wheel first.

The 20 answers are still there, folded away behind one button, because most people come back for the roadmap, not the table. The roadmap is a tab for each component with its percentage on the tab, and on a phone it becomes an accordion. There’s also a printable report laid out for paper.

The company dashboard

Leadership teams run the Checkup as a campaign: invite everyone, wait a week, read the combined results. The dashboard used to be a table with icons. Now the open campaign shows what someone running it wants to know: how many have answered, the score so far against the last campaign, the time left and when the next reminder goes out.

The original campaigns dashboard: a dark sidebar and a table of campaigns with icon buttons.
Before: the campaigns page.
The redesigned campaigns page: the open campaign with responses, score so far, time left and next reminder, above a list of campaigns.
After: the open campaign, at a glance. Sample company data.

Tracking that asks first

EOS printed QR codes in books, and wanted to know who came from them. Each code carries a source and a campaign, the Checkup keeps them with the person’s answers, and they arrive in HubSpot as two contact fields, so a book reader can be followed from scan to sale. I tested it end to end by scanning a code myself and finding my own record in HubSpot a few seconds later.

Analytics and advertising cookies stay off until someone accepts. The cookie banner went through legal review: “Decline all” and “Accept all” look exactly alike, a browser’s Global Privacy Control signal counts as declining, and the copyright and policy links stay at the very bottom of the page, with the banner above them.

Testing the tracking turned up a bigger problem. Since January 2024 the Checkup had been sending HubSpot a field name that didn’t exist, and HubSpot rejects a whole update if one field is unknown. Nearly three years of results hadn’t reached the CRM. It now sends only fields HubSpot has, and logs it if HubSpot ever says no.

Nineteen emails, one layout

The Checkup sends 19 different emails, from invitations and reminders to results and password resets. They had grown apart over the years, and in some the logo didn’t show at all. I rebuilt all of them from one layout, written by a small script, so a change to the header or a button happens once and every email gets it.

The original results email: a black header and plain paragraphs with a small link to the results.
The results email, before.
The redesigned results email: a navy header, the score in a navy panel, a bar per component and an orange button.
After: the score up front, then each component.

One change came straight from an EOS Implementer. When a client enters their Implementer’s email, the Implementer gets a copy, and since an earlier update it had shown only a first name. Now it’s an email of its own, with the client’s full name, email, role and every score, and the client’s copy no longer tells them to go and find an Implementer.

Shipping it without breaking it

  • Nothing lost in the merge. Two copies of the code had drifted apart. I merged them into one and kept every change from both.
  • One home. The second copy now redirects to organizationalcheckup.com, so links in old emails and books still work.
  • Locked-down jobs. The twelve scheduled jobs that send reminders and campaign updates now need a secret token, so a stranger can’t trigger them.
  • Every step approved. Each upload to the live site was a separate step with a backup first.

See it move

Starting the Checkup and answering a question, the results on a phone, then the roadmap and answers. Recorded from the live site; the answers stop before anything is submitted.
Restyle this whole site