# UX Polish — Conversion Audit Tracker

Findings from the senior-marketing-lens audit, with completion status. Each
item has a one-line rationale and the file/line where the change lives (or
will live).

> Only commit to "We'll reply within 24 hours" if Aless can actually hold
> to it. If response time is more like 1-2 business days, soften to
> "within one business day".

---

## High — direct conversion impact

- [x] **Hero primary CTA: "Learn more" → "Explore our services →"**
  - File: `src/lib/content/homepage.ts:38`
  - Why: "Learn more" is the lowest-intent CTA that exists.

- [x] **Promise CTA: "See our services" → "Book a free Meet & Greet"**
  - File: `src/lib/content/homepage.ts:59`
  - Also: target changed from `#services` to `/contact-us` so the CTA goes
    to the booking page instead of bouncing back up to a service list.
  - Why: After the value prop + happy-dog photo, sending visitors to the
    services list is a step backwards. Push them to book.

- [x] **Booking subtitle now states response time**
  - File: `src/lib/content/homepage.ts:159-162`
  - Old: *"...so we can reach out to arrange your free, no-obligation Meet & Greet."*
  - New: *"...We'll reply within 24 hours to arrange your free, no-obligation Meet & Greet."*
  - General-enquiry variant updated to match.
  - Why: Open-ended "we'll reach out" creates anxiety at submit time.

- [x] 1 **Pricing page — Google rating trust signal above plan grid**
  - File: `src/lib/components/PricingPage.svelte`
  - Implementation: Pill-styled trust badge inside the green hero,
    directly under the subtitle — five yellow stars + "30+ five-star
    Google reviews" label + arrow, links out to Google. Styled to read
    against the green hero (semi-transparent white pill) rather than
    reusing the cream IntroStrip, which would have clashed.
  - Why: Visitors land on pricing mid-decision; trust signal now appears
    before the plan grid.

- [x] 2 **Service plan CTAs — add free / no-obligation reassurance**
  - File: `src/lib/components/ServiceLandingPage.svelte`
  - Implementation: A subtle green pill *"Every booking starts with a
    free, no-obligation Meet & Greet."* (yellow shield-heart icon) sits
    centred directly under the plan grid on every service page, above the
    Extras block. Reuses the brand-tinted-pill aesthetic so it feels
    native, not tacked on.
  - Why: The "Book a Meet & Greet" buttons under each plan didn't carry
    risk-reversal phrasing in their immediate context. Now they do.

## Medium — trust + polish

- [x] 3 **Quantify the Google rating wherever it appears**
  - Files: `src/lib/content/homepage.ts:46`,
    `src/lib/components/Footer.svelte:89`,
    `src/lib/components/TestimonialsSection.svelte:200`,
    `src/lib/components/PricingPage.svelte` (new pricing-trust pill).
  - Implementation: "All 5 star reviews on Google!" → "30+ five-star
    Google reviews" everywhere. Aless confirmed 30+ as the count.
  - Why: A specific number is dramatically more credible than "all".

- [x] 4 **Lean into the "limited spots" angle**
  - File: `src/lib/content/pack-walks.ts` (added `scarcityNote` to the
    `pricing` block); `src/lib/types.ts` (added optional `scarcityNote?:
    string` to ServicePageContent.pricing); rendered in
    `src/lib/components/ServiceLandingPage.svelte` directly under the
    plan grid as a yellow-tinted pill with a clock icon.
  - Copy: *"We keep packs small (4-8 dogs) — popular days fill up fast."*
  - Only set on Pack Walks (the 4-8 number is specific to that service);
    the field is optional so 1:1 Walks and Puppy Visits get nothing.
  - Why: Real, honest scarcity. The 4-8 cap is already a fact; saying it
    out loud nudges decision-making.

- [ ] **About page — quantify Aless's expertise**
  - File: `src/lib/content/about.ts:29-30`
  - Why: "years of experience" is the weakest possible claim. Replace with
    concrete numbers Aless can stand behind: years operating, dogs in
    rotation, first-aid certification.

- [x] 5 **Pack Walks pricing intro — lead with the differentiator**
  - File: `src/lib/content/pack-walks.ts:23-24`
  - Implementation: Old intro led with "Our pack walks are a permanent
    booking of at least one walk day a week..." (commitment ask first).
    New intro leads with the benefits: *"Small packs of 4-8 dogs, 2-hour
    outings at Auckland's scenic dog parks and beaches, with free pick-up
    and drop-off included. We reinforce recall, car manners, and leash
    etiquette while your dog plays. Booked as a permanent weekly slot —
    gift your dog the best life!"*
  - Why: Buyers scan for benefits before commitments. Lead-with-policy
    framing creates resistance; lead-with-benefit framing builds desire.

- [ ] **FAQs — reframe from policy to reassurance**
  - File: `src/lib/content/homepage.ts:180-205`
  - Why: Answers are correct but read like terms & conditions. Lead with
    the *why* (the benefit/reassurance), then the *what*.

## Low — incremental polish

- [x] **Home services-card CTAs: "Learn more" → outcome-oriented**
  - File: `src/lib/components/ServicesSection.svelte:29`
  - Implementation: Visible label is now derived from the service title —
    *"See Pack Walks pricing →"*, *"See 1:1 Walks pricing →"*, *"See
    Puppy Visits pricing →"*. The previously-added screen-reader-only
    "about <Service>" span was removed since the visible label now carries
    that context for everyone, not just assistive tech users.
  - Why: "Learn more" was the lowest-intent CTA on the page; the new
    label states the destination and the next step.

- [x] **Testimonials intro blurb — sharper jobs-to-be-done framing**
  - File: `src/lib/components/TestimonialsSection.svelte:10-11`
  - Old: *"Happy owners, even happier dogs. Our Auckland dog walking
    clients love what the Tiny Gang brings to their dog's routine — and
    you can see why. Follow along on Instagram for daily adventures..."*
  - New: *"Busy parents get peace of mind. Dogs come home tired and
    happy. See why 30+ Auckland families trust the Tiny Gang — follow
    along on Instagram for daily adventures, wagging tails and the odd
    zoomie."*
  - Why: Leads with the two outcomes buyers actually care about (peace of
    mind for them, exercise for the dog), keeps the brand voice + 30+
    review proof point, then makes the Instagram nudge feel like a
    follow-on rather than the lead.

- [x] **Surface "Reliability / on-time" earlier**
  - File: `src/lib/content/homepage.ts:37` (hero subtitle)
  - Old: *"Trusted, professional dog walking across Auckland Central..."*
  - New: *"Trusted, on-time dog walking across Auckland Central..."*
  - Why: Reliability/punctuality is the #1 anxiety for busy parents
    booking a service that visits their home. Pulling "on-time" into the
    hero subtitle (one-word swap, no length cost) puts the reassurance
    above the fold.

## Deliberately not actioning

- **Pack Walks H1 rewrite to "Small-dog pack walks designed for calm,
  confident groups."** *"Join our Tiny Gang!"* is doing brand work — it's
  memorable and reinforces a phrase used everywhere else. Rewriting kills
  the most distinctive asset for marginal headline clarity.
- **Booking submit button: "Send" → "Book my Meet & Greet".** The form
  also handles general enquiries, so a "book my…" label would feel wrong
  on a complaint email. Better fix would be to switch the label by
  `enquiryType` — keep "Send my booking" / "Send my enquiry" contextually.
