- Bo to a Million: Bootstrapping to $1M ARR (54% now)
- Posts
- 54% of $1M ARR Hit—Google Ads Chaos & How I Got Detained at U.S. Border
54% of $1M ARR Hit—Google Ads Chaos & How I Got Detained at U.S. Border

New month, new report!
Quick reminder for new readers: I'm Bo, building SavvyNomad—software that helps U.S. expats legally reduce their tax bill by claiming domicile in zero-income-tax states.
June served up a quirky mix of wins and headaches, but the headline is simple: we blew past the halfway mark to our $1 M ARR goal. Total MRR closed at $45,006—just over 54 % of $1 M ARR—thanks to a record‑breaking $7,000 in new MRR from our freshly launched premium plan. All this despite landing 29 % fewer new customers, a slowdown we expected after tax season.
Sign‑ups did double, but the surge came from a geo‑glitch in Performance Max that kept routing ads to the Philippines, Thailand, and other low‑intent regions. We’re actively untangling that mess.
Signups doubled this month, but not due to genuine top-of-funnel growth. Rather, it resulted from ongoing issues with our Google Ads geo-targeting and difficulties managing our Performance Max campaign. This campaign, designed to target competitors and similar business websites, inadvertently drew many low-quality signups from the Philippines, Thailand, and other regions. We're actively working on addressing these targeting challenges.
On a brighter note, churn notably improved. Historically, months with high seasonal influxes (like tax season) typically see increased churn rates afterward. The lower churn this month is thus an encouraging sign of improved retention during quieter periods.
Organic traffic also had an interesting story: while visits rose 27% and impressions doubled, our CTR dropped by nearly 50%. This indicates ongoing shifts in the Google Search landscape that we continue to monitor closely.
Here's the detailed breakdown:

Key metrics
Signups surged by 114%, primarily due to mis-targeted traffic in our Google Ads Performance Max campaign, which significantly impacted signup-to-customer conversion rates.
Metric | May 2025 | June 2025 | % Change |
---|---|---|---|
Signups | 2,063 | 4,424 | +114% |
Website visits (new users) | 36,000 | 63,019 | +75% |
Visit → Signup CR | 5.7% | 7.0% | +22% |
Signup → Customer CR | 4.6% | 1.47% | -70% |
Added MRR | $6,542 | $7,031 | +7.5% |
Total MRR | $38,252 | $45,006 | +18.5% |
Active subscribers | 522 | 578 | +10.8% |
New subscribers | 95 | 65 | -32% |
Churn rate | 5.95% | 2.36% | -60% |
Where did new customers come from?
In June, we acquired 65 new paying subscribers.
Interestingly, our analytics data highlighted Google Ads as the strongest source, closely followed by direct visits and organic search.

In contrast, our optional self-attribution surveys from introductory calls, and we've recently introduced post-subscription self-attribution questions, although this data hasn't been integrated into our analytics yet, indicated that most customers credited organic search or direct visits.

Key Insights:
Analytics vs. Self-attribution: While analytics pinpoint paid ads as the primary source, customers themselves often remember discovering us organically or directly, highlighting the interplay between paid and organic channels. I also know that older users don’t understand the difference between organic search results and paid ones.
Paid Ads Performance: Adjustments in our Google Ads strategy led to a notable uptick in paid conversions; however, improving lead quality remains essential.
Next, we'll dive deeper into our Organic Traffic metrics.
Organic Traffic

June’s organic performance was a tale of more eyes—and modestly more clicks—but a sharply lower click‑through rate. Impressions doubled month‑over‑month, while visits climbed 27 %, so overall CTR was cut in half.
What changed?
Google’s rollout of AI Overviews surfaced our content in far more queries, driving the impression spike, but many searchers now get answers directly in the AI panel, dampening click‑through to the site.
Early win
The two interactive calculators we launched in late May—the US Expat Tax and FEIE tools—recorded their first traffic this month (36 clicks from 871 impressions, 4.5 % CTR). It’s a small sample, but it validates our bet on utility tools.

Bing
Traffic from Bing dipped slightly: 1,300 → 1,200 clicks (‑8 %). Impressions stayed roughly flat at 36.8 K, and average CTR sat at 3.27 %. Bing remains a modest, reliable stream, contributing about one click for every 30 Google clicks and converting at a comparable rate.

Google Ads

June was a roller‑coaster on the paid front: ad‑generated sign‑ups soared to 4,133, but only 21 became paying customers (down slightly from 24 in May). The same unresolved Performance Max geo‑mis‑targeting issues continue to funnel low‑intent traffic from the Philippines, Thailand, and other regions.
We still haven’t gotten a response from support. Our open ticket—filed mid‑May—remains unanswered. Google has unassigned yet another account manager (our fourth in 12 months).
YouTube

I’ve set an objective in May’s report to publish three long‑form videos in June, and delivered them. Testing two additional freelance editors streamlined post‑production, letting us find more reliable editors.
Next up
Reach a 4‑videos‑per‑month pace.
Double down on shorts: 3-4 clips per long video to widen discovery.
Personal updates
June didn’t go exactly as planned on the travel front. I’d intended to spend three months stateside, but a surprise denial of entry at U.S. immigration rerouted me straight back to Europe (the irony: while I was offline in secondary inspection, SavvyNomad quietly ticked past $40 k MRR 🎉).

I regrouped in Madrid to see family and am now working my way through Portugal with a few more European stops penciled in.
On the health side, I treated June as a mini-baseline month:
DEXA scan → 21 % body fat, just 351 g visceral fat (low‑risk), robust bone density across spine and hips.
VO₂‑max lab test → 32.8 mL·kg⁻¹·min⁻¹ at Bogotá altitude (~40 mL·kg⁻¹·min⁻¹ sea‑level equivalent), ~72 % of age‑predicted—trending up as the conditioning block bites.

my first VO2 max test
Comprehensive bloodwork → cardio‑metabolic markers all solid; two watch‑outs: elevated homocysteine (23.6 µmol/L) and low‑normal B12 (297 pg/mL).
Lastly, I dropped a new YouTube video where I unpack our bootstrapped strategy and the trade‑offs of taking outside capital.
Plans for July
YouTube cadence – Publish 4 full-length videos in July (stretch target: test a 2‑videos‑per‑week schedule by late month). Shorts will continue at 3-4 clips per long video.
New content formats – Evaluate launching a newsletter.
Attribution revamp – Finish piping self‑attribution survey data into dashboards.
SEO & AI Overviews – I want to test a few approaches to impact Google’s AI Overview.
As always, I’ll report back next month on what sticks—and what flops.
Thanks for reading, and see you in the next one:)