← Back to Black Label Campaigns
Black Label Campaigns case studyBrownsboro Park Retirement Community, Louisville, KY

34 empty apartments. Eleven months later: zero.

How a family-owned independent living community in Louisville went from its first real vacancy problem to full occupancy with a waitlist, and how we tracked every dollar along the way.

34 → 0vacant apartments, Aug 2025 to Jul 2026
$1.22Min annual rent restored to the community
7.3×rent recovered in year one vs. total investment
30prospective residents now on the waitlist

The problem

Brownsboro Park is a family-owned independent retirement community on 14 acres in Louisville. For most of its history it never had to think about vacancies. Word of mouth, a strong local name, and a loyal resident base kept it full.

After COVID, that changed. By late summer 2025 the community had 34 empty apartments. With all-inclusive rent averaging about $3,000 a month, that was $102,000 a month, or $1,224,000 a year, in revenue the community was not collecting.

The brief

Fill the building, and prove which marketing did it. Brownsboro Park did not want impressions and clicks reported back as success. They wanted signed leases they could trace to a source.

Black Label took over the full digital program in August 2025 for a flat $6,000 a month, covering ad spend, management, SEO, and the website.

Watch the building fill

Each shape is one apartment. Drag through the months to see occupancy change.

August 2025
34vacant
Aug 2025Feb 2026Aug 2026
VacantFilled since we started

Monthly rent restored: $0

What we built

We treated the move-in decision as the long funnel it is. Choosing a retirement community is often a months-long process involving the prospective resident and their adult children, so each channel was given one job.

Budget stayed flexible. Any month a channel underspent or underperformed, the money moved to whatever was converting, usually Google Search.

Google Search: the conversion engine

Branded and non-branded campaigns for high-intent searches like independent senior living and retirement communities in Louisville. Built for phone calls, because that is how this audience converts: 91 of the first 108 conversions were calls.

Meta: awareness and retargeting

Broad local reach across Louisville and Southern Indiana, plus retargeting of people who had already visited from search. Reached adult children (35–64) as well as prospective residents (65+).

Website and SEO

Rebuilt floor plan pages with pricing, technical cleanup, accessibility and privacy work, new content targeting real questions families ask, and local citations.

AI search (LLM SEO)

Structured data, an llms.txt file, and content written to be quoted by AI assistants, so Brownsboro Park shows up when families ask ChatGPT or Google's AI where to look.

The return

Every apartment filled is rent the community collects every month after. Counting only the months after each apartment was filled, compared against the August 2025 starting point, and subtracting October's one extra vacancy:

$78,000Total investment, Aug 2025–Aug 2026 ($6,000 × 13 months, counting the setup month)
$567,000Additional rent collected, Sept 2025–Aug 2026 (189 filled apartment-months × $3,000)
7.3×Return in year one ($489,000 net). Going forward the restored run-rate is $1.22M a year, 17× the $72,000 annual fee.
Vacant apartments by month, August 2025 to August 2026: 34, 33, 35, 31, 30, 28, 23, 18, 12, 8, 1, 0, 0010203034Aug33Sep35Oct31Nov30Dec28Jan23Feb18Mar12Apr8May1Jun0Jul0Aug

Vacant apartments by month. Vacancies ticked up once in October 2025 before falling every month after.

How we prove it

ROI claims are cheap. We built the tracking so Brownsboro Park could check ours.

Every lead is logged with its source. Calls from Google Ads are matched by phone number, date, and call length against the community's own leasing log of calls, tours, and signings. When a caller's number from an ad lines up with a signed lease, that signing is credited to the campaign that produced it.

In October 2025 we moved all call tracking to CallRail, with a unique number per channel and dynamic numbers on the website. That closed the gap where Google's call forwarding hid caller IDs, and it made every match auditable.

Early proof: the first three months

MeasureResult
Signed leases matched to Google Ads8
Annual rent from those 8 residents$288,000
High-intent leads, first full month32 (23 calls, 9 forms)
Brand search cost per conversion$21.80
Non-brand cost per conversion$60.83
Non-brand conversion rate10.7%

Those 8 matched signings alone were worth the $72,000 annual fee.

What changed along the way

  1. Aug 2025

    Audit, Google Ads rebuild, Meta launch, technical SEO fixes, floor plan pages rewritten with pricing.

  2. Sep 2025

    First signings matched to ads. llms.txt published; AI search health 89% → 95%. Accessibility and privacy work.

  3. Oct 2025

    CallRail goes live. Schema markup, internal linking, metadata rewrite.

  4. Dec 2025–Jan 2026

    Promo campaigns for move-in specials. Programmatic budget shifted into Google Search as it proved stronger.

  5. Mar 2026

    192 ranking keywords, the most since 2022. Organic users up 28% month over month. Site health 98%.

  6. Jul 2026

    Zero vacancies. Focus moves to waitlist conversion and conversion-rate work on the site.

Decisions the data made for us

Call-only ads were outperformed by standard search ads, so we paused them. Two ad groups that competed with stronger keywords or drew little traffic were cut. Programmatic display built awareness but could not be tied to signings the way search could, so its budget moved to Google.

Call recordings showed people phoning Brownsboro Park while looking for competitors, a signal that shaped keyword and messaging decisions.

Site performance today: Lighthouse 99 performance, 98 accessibility, 100 best practices, 100 SEO.

A team result

Occupancy is a team result. Brownsboro Park's leasing staff give the tours and close the leases, and their team's work on-site matters as much as anything we do in the ad accounts. We match the move-ins we can trace back to our channels, and we give the client the data to check them.