Findings · 30–31 July 2026

What changed since the 26 Jul L10, what was measured rather than assumed, and the two things that are now decided. Everything below was tested — where something is an inference or still unverified, it says so.

QR geolocation Live

Shlink now geolocates every scan. This closes the 26 Jul to-do “could we create something like scan.ourlocalspotlight.com…” — the answer is yes, and the QR stack is feature-complete.

We did not need a MaxMind account. Shlink's licence key only drives its auto-downloader. It will happily read a database you place at db_location yourself — so we installed DB-IP's free IP-to-City Lite (same MMDB format, no registration) into a named Docker volume. Verified end-to-end.

But city-level accuracy does not work, and can't be bought

Three real phone scans, same standing spot in Bishop's Stortford, three networks:

NetworkReported cityError
Toob (FTTP)Chilworth92 miles
4G mobileRomford20 miles
Virgin MediaHarlow7 miles

Country and region were correct all three times. City was wrong all three times. Toob is a Southampton company, so its entire IP range reports Southampton regardless of where the customer lives. Cloudflare's own geolocation and iplocation.net independently agree — so this is not a database-quality problem and swapping providers won't fix it.

City error is not a tolerance — it's unpredictable. It tracks the visitor's ISP registration, not distance from anything. Two neighbours on different providers can report 85 miles apart, so there is no honest error bar to quote. Never put city on an advertiser-facing report.
Use the rid instead. Every card carries a unique recipient id, so a scan ties to a known address by construction — exact, not inferred. Geo is colour; rid is the attribution. It also means geo cannot confirm a drop landed in the right area — that's an rid question.

Detail: qr-tracking/README.md → “Accuracy — measured”. Run your own test any time: ./geocheck.sh

Scan beacon — bot filtering & language Live

The demo landing pages now capture what a scan can tell us without asking the visitor for anything — no GPS, no permission dialog, no consent surface. Cloudflare resolves the network at the edge; the IP is never stored.

CapturedWhat it's for
ASN + AS organisationBot filtering. A scan from a datacentre ASN is a link-preview bot, not a prospect
Accept-LanguageUK vs DE targeting — the open L10 question, answered free
Connection typeMobile vs fixed = scanned-in-the-street vs scanned-at-a-desk
Country / regionThe reliable geo fields only
Why this matters more than it sounds. WhatsApp and Facebook fetch a link before the human opens it. Without this filter, every shared card inflates the scan count — and when you're reading 3 scans, one phantom is the difference between a signal and a mirage.

We deliberately did NOT add GPS. It's redundant (the rid already identifies the household), the permission prompt lands at exactly the moment Kennedy warns about attrition in the offline→online handoff, and it's precise location data on a cold prospect. Wrong trade.

Server: barber-demo/functions/api/scan.js · Client: barber-demo/scan-beacon.js · Store: klaudius_scans · Diagnostic: /api/scan (GET, writes nothing)

Royal Mail door-drops — can we target by demographic? Qualified yes

The idea: pick Bishop's Stortford households over £50k median income, drop cards, track scans, and know the profile of who scanned. Right in direction, wrong in three details — per our own _KO/RESEARCH-royal-mail-door-to-door.md §4.

AssumptionReality
Select households by income Royal Mail books at postcode sector only (~3,000 addresses). Mosaic/Cameo profiling is consultant-led and “narrows which sectors, it does not sub-divide one”
Every door in the area gets one Majoritisation (T&C 5.5.1): cards may go to parts of sectors not on your schedule and skip parts that are, ±5% volume tolerance. If items run short, Royal Mail picks who gets one
A scan tells us their demographics It tells us the segment, not the household. A sector at £50k median contains plenty of households well below it
Do not claim “this scanner earns £50k”. That's an ecological fallacy and it's the kind of claim an advertiser could hold us to.
But segment-level attribution is exactly the product. Our own research §5 already concluded it: Royal Mail issues no delivery documentation of any kind, and Tebo §9.4 says incumbent operators refuse to give advertisers QR tracking at all. So “unique QR + unique landing page per advertiser slot, per sector” is a real differentiator in a market whose alternative is nothing. Sell measurable response, not delivery proof.

The beacon already accepts a sid (sector id) alongside rid, so the pipeline supports both honestly: rid = exact household for addressed mail, sid = sector for unaddressed door drops. Not yet built minting sid codes per sector × advertiser slot in klaudius_qr.py — held until the shared-mailer lane is actually decided.

Germany — Oliver's lane Economics yes, legality unconfirmed

Researched 26–28 July from primary Deutsche Post PDFs and put through an adversarial verification pass — _KO/RESEARCH-germany-direct-mail.md. All figures EUR, net (netto, zzgl. USt); Deutsche Post publishes these products net only.

The product is POSTAKTUELL, the true equivalent of Royal Mail Door to Door: fully unaddressed, geographically selected, delivered on the normal postal round. POSTWURFSENDUNG no longer exists in the tariff — it is a retired product name that DP still uses as generic marketing language. POSTWURFSPEZIAL is not the equivalent — it is part-addressed.

Germany is faster, cheaper and finer-grained than the UK

UK — Royal Mail D2DGermany — POSTAKTUELL
Lead time Plan 5–6 weeks. Handover 18–10 days before start; Local Handover ≥13 days; booking ~3 weeks in practice E+4 — delivery normally within 4 working days of handover, Tue–Sat
Minimum Volume floors apply No minimum piece count. Only a €300 net minimum order value (≈2,326 pieces at the full-coverage rate)
Granularity Postcode sector (~3,000 addresses) Down to one Zustellbezirk ≈ 600 households — finer than anything Royal Mail offers
Rate (≤20g, full coverage, Kerngebiet) £75.60–£82.40 / 1,000 €129.00 net / 1,000 = 12.9c per piece 2027: €137.00
Cheapest variant €76.00 net / 1,000 = 7.6c — but that is “an Haushalte mit Tagespost”, only households getting other mail that day (~23.1m vs ~32.1m). Not like-for-like with D2D
The wait times are not similar — that assumption is wrong by an order of magnitude. The UK gates you at roughly six weeks from advertisers-sold to doormat. Germany is four working days from handover. Any joint plan should sequence the German drop after the UK one and still land first.

Format fits either way. DP's spec is L 140–353mm, W 90–250mm, ≤30mm thick, 250g standard maximum. A5 (148×210) and A4 (210×297) both sit comfortably inside it — and note the thickness allowance is 30mm against Royal Mail's 5mm, so a rigid card is a non-issue in Germany. (Format arithmetic is our reading of the published spec, not a DP statement.) All items in a run must be inhaltsgleich — identical in content.

The blocker is the shared card itself. Deutsche Post publishes no multi-advertiser product, no multi-ad price and no multi-ad clause — and equally no prohibition. There is no German counterpart to Royal Mail's T&C 4.2.3 “Multi-ad Item” / category 16A anywhere in the 2026 Versandhandling brochure, the 2026/2027 price sheets, Leistungen und Preise 07/2026, the Produktsteckbrief, or AGB BRIEF NATIONAL 2025. Worse signal: DP ran its own shared mailer, EINKAUFAKTUELL, and shut it down on 1 April 2024 — it exited the business rather than productising it.
The single action for Oliver. Get written confirmation from Deutsche Post Geschäftskundenservice that one POSTAKTUELL item may carry multiple advertisers under a single contractual Absender. Everything else in the brief is ready to execute the moment that comes back yes. Do not commit to a German shared-mailer build before that answer.

Mirror-image risk in the UK worth naming in the same breath: Royal Mail T&C 4.11 caps an agent at nine clients per financial year — a 16-slot card breaches it on day one unless RM treats us as a publisher buying for its own title. Both countries have an unresolved legal question; they are just different questions. Both need written rulings

Additional services — the ladder For decision

Answers the open Issue and Rock. Each candidate was scored against a five-part productisation test rather than on appeal, because the binding constraint is Oliver's Issue — “how do we minimise work and not become web designers.”

Recommend a ladder, not a menu. A menu invites negotiation. A ladder caps scope structurally — each rung is only sold once the previous one is live.
0

The website

Already productised. The wedge.

1

Enquiry triage — email + SMS

Built once already for Emily. One container, human approves before send, so it can't embarrass them.

2

Direct mail, done for them

Uses the QR tracking nobody else in the category will give an advertiser.

3

After-hours voice

Only for clients whose call volume we've already seen.

4

Scheduled social distribution

Posting assets they already own — explicitly not content creation.

Financial dashboards stay off-menu — offered to the client who already bought three things, never listed. Every connector is an OAuth integration that rots on someone else's schedule, and a cafe with a £400 website does not have a data problem.

The through-line that makes it one product: “we answer the enquiries your marketing creates.” Website and mail create them; triage and voice catch them. That's a doorstep sentence — and it's precisely what the shared-mailer competitors can't say, because they refuse to measure anything.

Three corrections to carry into the conversation

Triage is 3 channels, not 4 Email, SMS, Messenger. WhatsApp is not built. Messenger is hard-gated to a test PSID until Meta grants Advanced Access — it refuses real members by design
Voice = after-hours only Otherwise the failure mode is unbounded. A bad email draft gets caught by the human approving it; a bad phone call has already happened
The KB is the unpriced cost Retrieval-drafting is only as good as the client's written policies, and this ICP has none. Writing it is real work and must sit in the onboarding price
Before selling triage to anyone: half-day spike to confirm Emily's code is actually portable. It's Ritual-branded and Ritual-schema'd throughout — reuse is currently an assumption, not a fact.

Full workings: strategy/ADDITIONAL-SERVICES-SPEC.md

The dither hero technique Built & tested

Oliver sent Nick Saraev's “$1 website effect that looks like $10K” and Nick's 288-page template site. The technique: a video is chopped into ~55 stills at 11fps, each drawn into a tiny offscreen canvas, luma-converted, then quantised through an 8×8 Bayer matrix into circles. Cursor movement displaces the sampling coordinates, so the interaction is free. Nick's 288 pages cost him about $17.

We rebuilt it clean-room from the published spec rather than copying his code — his licence isn't stated, and the spec is explicitly published as a reproducible prompt. One file, zero dependencies, 12 self-test assertions passing including the one that matters (dot density stable across the loop — the pulsing bug that ruins most attempts).

Why it's strategically interesting, not just pretty. Our Kennedy KO flags W6 — he explicitly warns against driving offline prospects online, which is the sharpest objection to the whole QR mechanic. That objection is really about attrition at the handoff: the prospect holds a physical card, takes the trouble to scan, and lands on something that feels cheaper than the card did. A hero that reads as expensive in 400ms is the counter.
It also answers two open Issues at once. The engine is parameterised on foreground, ground, colorMix and saturation — exactly what Oliver's proposed “gatherer” would scrape from a prospect's existing site or flyer. Pipe a brand palette straight in and every site carries the client's own colours while sharing one distinctive engine. That's “feels like them” solved without bespoke design, which is also “we don't become web designers” solved.
Time-boxed, though. Nick published this recipe to a large audience on 29 Jul. It's a 3–6 month distinctiveness window, not a moat. If we want it to last, the differentiator has to be the data in it — e.g. dithering our own QR scan heatmap from a real drop — not the effect itself. Worth also evaluating Paper Shaders (Apache 2.0, released 15 Jul, 30+ WebGL effects) as the second look.

Engine + demo: research/web-techniques-20260730/klaudius-demo/ · Technique spec: templates/prompts_03-dither-engine.md · Transcript: video/transcript-nick-saraev-dither.md

IdeaBrowser MCP Connected

API key created and stored in Doppler infra/prd (IDEABROWSER_API_KEY, IDEABROWSER_MCP_URL). Tested live — handshake, 49 tools, real data from get_founder_profile and browse_ideas.

Paul's account is on the Free plan. All 49 tools are listed but the platform gates by tier: Free = browse ideas + AI coach; Starter = trends and personalised recommendations; Pro = custom research, agent library, workspaces. So a tool appearing in the list does not mean it will run. Oliver said on 29 Jul he was buying yearly Pro — his surface may be wider.

The existing launchd scraper also ran fine (09:01 daily, nothing to troubleshoot). The MCP is a cleaner second path to the same data — structured JSON instead of scraped HTML — so there's a consolidation opportunity that would kill the ~28% historical miss rate.

The one number that matters

Every response metric is still zero, and none of them are blocked by tooling. Direct mail pieces sent: 0. Test pieces: 0. QR claim-page visits: 0. Claims: 0. £ collected: £0.

Infrastructure and knowledge are a long way ahead of activity. The QR stack is now feature-complete, the geolocation works, the bot filtering works, three courses are knowledge-optimised and four research documents are done. Nothing physical has been posted. That is the constraint — not capability.

Every zero above turns into a number the week one test batch goes out. Oliver's 28 Jul Stannp call secured a test phase for sample runs; that thread is still open.

The week ahead — Paul away from Wed 5 Aug

The organising principle: anything running on someone else's clock must start by Tue 4 Aug — it then progresses while Paul is away, which is free time. Anything needing only Paul's hands can wait. Deferring your own work costs a week; deferring an external clock costs a month.
Royal Mail door-drop lead time is 5–6 weeks. Booking 3 weeks minimum, handover 13–18 days before delivery starts. Our own research: “advertisers sold, artwork locked and printed roughly six weeks before anything hits a doormat.” If the shared-mailer lane matters, the phone call happens this week or the first drop slides to mid-September.
WhenWhat
Fri 31
today
Run the L10 and close the six already-done items · Call Royal Mail 0345 266 0858 — answers in writing · Submit Meta Advanced Access so the review queue runs while away
Sat 1 – Sun 2 Leave it. Nothing lead-time-bound lands on a weekend. At most, ten minutes looking at the dither demo
Mon 3 – Tue 4 Get the Stannp test batch ordered — the highest-value action of the week · Clear the provider registration blocker: chase Intelliprint's pay-now-later or just pay the £10 and stop waiting on it
Wed 5 onward
away
Don't plan to build. Chase written answers · photograph samples when they arrive · ./geocheck.sh if cards get scanned · read, don't build
If only one thing happens this week: order the test batch. Everything else is preparation for a business that has not yet posted a postcard. The Royal Mail call is second, purely because of the six-week clock.

Deliberately parked until Paul is back — and deliberately not put on the board, because to-dos you know won't get done erode a board's credibility: the QR landing page on the dither hero, sid minting per sector, and evaluating Paper Shaders.

Board housekeeping Done

Six new to-dos added with due dates, and the board tidied around them: 19 open → 14, with the top seven all dated. Nothing to action in the meeting — just worth telling Oliver what moved.

ChangeWhat and why
Closed ×3 The A5/shared-mailer investigation, the Skool postcard ingest, and the scan.ourlocalspotlight.com QR question — all genuinely done
Deleted ×2 Oliver's “Look into a gatherer…” (superseded by the brand-palette gatherer, which names the output contract) and Oliver's “Get a test from print.one delivered” (duplicate of the new Print.one item)
Rewritten ×1 Paul's “Resolve issues with Print.one” — see the correction below
One correction worth flagging. The earlier advice here said to merge three Print.one items into one. That was wrong. The Direct Mail rock records “Paul is overcoming hurdle with Registration” — so Paul's item is an account/registration blocker, not a quality test, and folding it into an Oliver-owned to-do would have silently deleted a live blocker. It has instead been made specific, now absorbs the Intelliprint pay-now-later chase, and is dated Tue 4 Aug.

Left alone deliberately: the seven undated backlog items — cold-email domains, opt-out mechanism, niche selection, UK/DE split, the Apify KO feed, the pipeline dashboard, and Oliver's cafe follow-up. Several are arguably Rocks or Issues rather than to-dos, but that's a call for the meeting.

Pre-change snapshot of all four tables: meetings/backups/eos-board-20260731-pre-merge.json — the two deletions are recoverable.

Prepared 31 Jul 2026 for the Klaudius L10. Full meeting guide: meetings/L10-PREP-2026-07-31.md.