CRO scorecard · website-QA pass · 5 Sep 2026← Back to the audit · UX critique → · Design spec (superseded) →

Pillar PEO Advisors — CRO and design scorecard

Scored against cro-rubric.md, 40 items, on mockups/home.html, mockups/hr-audit.html, mockups/charlotte.html with shared mock.css.

Method. Every page rendered in headless Chrome 152 at 1440×900 and at a true 390×844 viewport (CDP Emulation.setDeviceMetricsOverride, mobile:true, deviceScaleFactor 2). Contrast computed per text node against its composited background. Tap targets, CTA cadence, section padding, green coverage, proof adjacency and layout shift measured in the DOM, not by eye. npx @axe-core/cli run against all three pages. Core Web Vitals measured with a PerformanceObserver injected before navigation, 4× CPU throttle and Fast-3G network, cache disabled. Baseline numbers come from the pre-fix files re-served on a second port, so the "before" column is measured, not remembered.

Result: 34 → 97 passes across the three pages.

Page Applicable items Before After
home.html 33 9 31
hr-audit.html 37 15 35
charlotte.html 34 10 31
Total 104 34 97

n/a marks an item that does not apply to that page type: item 22 is a homepage item, 23–27 are HR Audit service-page items, 28–29 are city-page items. n/a items are excluded from the per-page totals.


1. Scorecard

# Item home hr-audit charlotte
A Above the fold
1 Headline ≤10 words, states an outcome not a category pass pass pass
2 Subhead names who it's for and the mechanism pass pass pass
3 Primary CTA visible without scrolling at 1440 and 390; subhead ≤3 lines on mobile pass pass pass
4 Risk reducer within 24px of the primary CTA pass pass pass
5 Hero visual is a person, a deliverable, or an outcome pass pass pass
6 At least one proof element inside the first viewport pass pass pass
7 Header shows the phone as a tap-to-call link on every page pass pass pass
B CTA system
8 One primary action label sitewide, unchanged pass pass pass
9 One primary button style, ≥48px; every secondary action is a text link pass pass pass
10 Primary CTA in the hero and again every ≤2 screen heights pass pass pass
11 Sticky mobile bar with the CTA and phone, appearing once the hero scrolls off pass pass pass
12 Every CTA block carries a micro-line pass pass pass
13 Final section is a CTA block with the founder's face pass pass pass
C Proof and trust
14 Proof strip of 3–5 quantified, true items directly under the hero pass pass pass
15 Testimonials carry name/role/firm/photo; proof within one screen of every CTA pass pass pass
16 Founder section: photo, certifications, years in HR, industries served fail fail fail
17 Process guarantees stated in specifics pass pass pass
18 Provider-paid disclosure in plain words pass pass pass
19 No fabricated proof of any kind pass pass pass
D Page structure and message flow
20 Section order: problem, offer, proof, process, price, objections, CTA pass pass pass
21 One job and one heading per section; headings alone tell the story pass pass pass
22 Offer ladder visible on the homepage in one section pass n/a n/a
E HR Audit service page
23 Price tiers with headcount bands above the fold or within one scroll n/a pass n/a
24 Deliverable shown, not described n/a pass n/a
25 "What we check" covers what a managing partner expects n/a pass n/a
26 Timeline: days to kickoff, days to report, what the client supplies n/a pass n/a
27 FAQ answers the four real objections n/a pass n/a
F Charlotte city page
28 H1 and hero name Charlotte and the firm types n/a n/a pass
29 Local specifics incl. Charlotte office address with map n/a n/a fail
G Forms and booking
30 Booking form has 4 fields or fewer pass pass pass
31 Embedded scheduler, or a promised reply window and a named person with a photo pass pass pass
H Mobile
32 No horizontal scroll, 44px tap targets, sticky CTA clears fields and footer phone pass pass pass
33 Hero image under 150KB; LCP under 2.5s on a mid-range phone pass pass pass
I Design craft
34 Section padding 80–120 desktop, 56–72 mobile, consistent pass pass pass
35 Body 16–18px, line height 1.5–1.6, measure 60–75 characters pass pass pass
36 At most four sizes per page; League Spartan headings only pass pass pass
37 Green for CTAs and small accents only, under 5%; white plus one neutral pass pass pass
38 Every screen has a photo or a real deliverable; ≤1 icon grid per page fail fail fail
J Accessibility
39 Text contrast ≥4.5:1; green is fill-only pass pass pass
40 Alt text, visible labels, focus states, one H1, sequential H2s, honest link text pass pass pass

2. What was failing, and what was done

A · Above the fold

B · CTA system

C · Proof and trust

D · Structure

E · HR Audit page

F · Charlotte

G · Booking

H · Mobile

I · Design craft

J · Accessibility


3. Measured before / after

Check home hr-audit charlotte
Contrast failures (1440 + 390) 1 → 0 1 → 0 1 → 0
axe-core violations 3 → 0 3 → 0 3 → 0
Tap targets under 44px at 390 3 → 0 3 → 0 5 → 0
Horizontal scroll at 1440 / 390 none → none none → none none → none
Hero subhead lines at 390 5 → 3 6 → 3 6 → 2
Largest gap between primary CTAs, 1440 3097px → 1719px 4213px → 1776px 3710px → 1422px
Primary CTAs on the page 8 → 12 7 → 14 5 → 9
CTAs with no proof block within one screen 3 → 0 2 → 0 2 → 0
Icon grids 3 → 1 1 → 1 0 → 0
Distinct non-heading type sizes 14 → 4 14 → 4 14 → 4
Green fill, share of rendered area (1440 / 390) — → 1.0% / 3.9% — → 2.0% / 3.9% — → 1.0% / 3.8%
LCP (390px, 4× CPU, Fast 3G) 1.05s → 1.06s 0.78s → 0.92s 0.94s → 1.03s
CLS 0.110 → 0.0008 0 → 0 0.0007 → 0.017
Page weight 418KB → 252KB 110KB → 117KB 371KB → 252KB
Load complete 2.86s → 1.97s 1.26s → 1.37s 2.63s → 1.93s

The homepage CLS of 0.110 was the League Spartan and Nunito Sans swap reflowing the hero copy block (the observer named UL.proof-strip, DIV.cta-row and P.lede as the sources). League Spartan measures 8.3% narrower than Helvetica and Nunito Sans 1.1% wider, so two metric-matched @font-face fallbacks with size-adjust:91.7% and 101.1% were added ahead of the generic stack. That took the homepage to 0.0008 with no change to how the type looks once the webfonts land.

Constraints held: mock.css still defines every required custom property (--navy, --green, --green-ink, --green-soft, --ground, --sheet, --sheet-2, --ink, --ink-70, --ink-50, --hatch, --hatch-2, --pass, --pass-soft, --watch, --watch-soft, --fail, --fail-soft, --display, --body, --mono, --max, --r, --ease) and every required class (.wrap, .mono, .pill with .pass/.watch/.fail, .slot, .mockbar, .btn with .fill/.ghost, .dim, .legal, footer). index.html re-rendered and is unchanged. All three pages keep their JSON-LD, the mockbar strip and <meta name="robots" content="noindex,nofollow">. No testimonial, logo, rating or number was invented; every figure on the pages is a term of the offer, checkable against the engagement letter and the report.


4. Remaining — what the founder has to supply

Three items cannot be closed inside a mockup. Each is listed with exactly what unblocks it.

R1 · Item 16 — founder certifications and years in HR (all three pages)

Why it fails. The item requires certifications (SHRM-SCP, SPHR or equivalent) and years in HR. The originals carried "SHRM-CP / PHR / NAPEO membership" tagged to confirm, which is an unverified credential claim. Publishing it would be a worse failure (item 19) than leaving it out, so the block was left explicitly empty rather than guessed. Photo and industries served are done.

Founder must supply: - Certification names, certificate numbers and expiry dates for Caleb Sherrill (SHRM-CP or SHRM-SCP, PHR or SPHR), plus the certificate PDFs. - NAPEO membership number and the member-since year, or confirmation that there is no membership. - Years in HR as a single number, and the date it was counted from. - Whether Josiah Sherrill and Emily Snooks hold credentials worth listing.

Where it goes. The dashed slot in #about on home.html and in #who on hr-audit.html, both labelled "Certifications — founder to supply before launch". Drop the facts in and delete the slot wrapper; no layout change. Add a matching credentials line to the Charlotte founder block.

R2 · Item 29 — Charlotte office address, map and verified Business Profile

Why it fails. The item requires a Charlotte office address with a map. The address is [Street address], Charlotte, NC 282xx in the footer, the address block and the JSON-LD PostalAddress, and the map is a dashed slot. Everything else in item 29 is done: NC E-Verify at 25, NC Wage and Hour Act (NCGS 95-25), the SC cross-border obligations, the local phone and the in-person option.

Founder must supply: - The street address and ZIP that will be used on the Google Business Profile, and confirmation it is a location that can receive the verification postcard. - The claimed and verified GBP listing, so the map embed points at a real pin with a working directions link. - Confirmation of whether clients can actually be met there, or whether it is a mailing address and in-person means client-site only.

Where it goes. mockups/charlotte.html — the .mapslot in #areas (swap for the Maps iframe with a title attribute), the .office address block beside it, the <address> in the footer of all three pages, and the streetAddress / postalCode fields in the JSON-LD on home.html and charlotte.html. Once the address is in, delete the three .tbd "to confirm" tags.

R3 · Item 38 — photography for the screens that have neither a person nor a deliverable

Why it fails. The item asks that every screen contain a photo of a person or a real deliverable, from one photographic world. There are four usable photos in img/ (founders.jpg, caleb.jpg, josiah.jpg, emily.jpg) and one deliverable (the Load Report card). They have been placed at as many depths as is honest — hero, process, founder section, proof cards, final CTA and the form. Measured at a 900px screen height, screens still with neither are 7 of 13 on home, 8 of 16 on hr-audit, 5 of 11 on charlotte. Closing it needs photographs that do not exist; inventing stock would fail the same item's "no blue-tinted stock, no clip-art" clause. The icon-grid half of item 38 is passing.

Founder must supply, one half-day shoot, natural light, real offices, no stock: - Caleb and Josiah working: at a desk with documents, on a call, at a whiteboard. - Emily in delivery: reviewing a report, on a walkthrough call. - A real client-site or office interior for the Charlotte page, and an exterior if the address in R2 is a real office. - One overhead of a printed Load Report on a table, for the deliverable sections. - Charlotte context that is not a skyline stock plate: Uptown, SouthPark or Ballantyne streetscape shot on the day.

Where it goes. The problem section and the FAQ on home.html; the checks, process and "what happens after" sections on hr-audit.html; the service-area and findings sections on charlotte.html.

Also unbuilt, not scored against any item


5. Files