RESTRICTED · INTERNAL ONLY
VANTAGE-OTC LABS · STUDIO
VANTAGE-OTC Studio
Studio · Phase 1 execution doctrine
← Back to Studio
RATIFIED
Phase 1 execution doctrine for VANTAGE-OTC.com · approved in principle 2026-05-22 · founder + Claude · scope freeze active · no strategic reopening during execution.
2026-05-22
16:00 CET
VANTAGE-OTC.com · Phase 1 execution doctrine · canonical
EXECUTE · 26 MAY → 15 JUN 2026 · 15 WORKING DAYS
v1.0 · single source of truth
·Phase 1 · the first live operating loop

One module. Five layers. Two markets.
Shipped into production.

Phase 1 ends when Pollen Pulse™ runs end-to-end as one believable operating loop inside vantage-otc.com — not in studio, not in labs, not as a mockup — and a Bayer category director can see Claritin's actual category live on the screen. Every other module, every other market, every other sponsor is deferred. This document is the single source of truth for Phase 1 execution.

1
Module · Pollen Pulse™
Not seven · one
2
Markets · DE + NL
DE live · NL build
15
Working days
26 May → 15 Jun
Bayer · Reckitt
Sponsor sequence
13 Jun · 15 Jun
01The product · not what we built · what we believe

The cascade IS the product. Not pollen scores. Not dashboards. Not widgets.

VANTAGE-OTC.com's first operational grammar. Every Phase 2+ module — Flu & Cough Watch™ · AI-SoV · Retail Velocity · Switch Signals · Ecosystem Layer · Category Acceleration · Opportunity Engine · Marketplace matching — inherits this same five-step structure. Protect the clarity of the loop above everything.

The operational grammar of Vantage-OTC.com

SIGNAL → INTERPRETATION → COMMERCIAL MEANING → MARKET CONTEXT → ACTION

01 · SIGNAL
What is happening · the raw observation from upstream sources.e.g. "Birch pollen accelerating · DE 4.2 ↑ +38% w/w · NL 3.8 ↑"
02 · INTERPRETATION
What this means in OTC terms · translation from biological signal to category-readable.e.g. "Expected antihistamine demand acceleration · 7-14 day forward window"
03 · COMMERCIAL MEANING
Who is affected · brands · category velocity · whose shelf moves.e.g. "Claritin · Allegra · Cetirizine · own-label · category exposure rising · velocity +28-34%"
04 · MARKET CONTEXT
Why this market differs · channel · regulatory tier · purchase behaviour.e.g. "DE pharmacy · OTC2 · pharmacy-led · NL drogist · OTC1 · open-shelf impulse"
05 · ACTION
What the CHC operator can do next · concrete buttons · not prose.e.g. [Monitor stock] [Activate campaign] [Track AI-SoV]
02Doctrine · six locked principles

The six principles that govern every decision during Phase 1.

If a proposed change cannot be justified against these six principles, it doesn't happen during Phase 1. Period.

D1 · DOMINANT FILTER

Morning-open behaviour

Every feature proposal must materially strengthen the answer to one question: "Would a CHC operator open VANTAGE-OTC.com again tomorrow morning because of this feature?"

If uncertain or no — the feature defers to Phase 2. Visual sophistication that doesn't drive return is noise. Forecasting complexity that doesn't drive return is overengineering.

Success ≠ feature quantity. Success = daily operator return. Coherence beats breadth.
D2 · PRODUCT IDENTITY

The cascade is the product

Not pollen scores. Not weather data. Not dashboards. Not seasonal widgets. The product is the five-step cascade itself — SIGNAL → INTERPRETATION → COMMERCIAL MEANING → MARKET CONTEXT → ACTION — applied to Pollen Pulse™ in Phase 1, inherited by every other module in Phase 2+.

Every visual decision · every copy decision · every UX decision answers to: does this clarify the cascade or does it dilute it?

D3 · PRODUCTION-FIRST

Trust > speed

15 June is a target date, not an identity. If on any Friday gate the answer is "not believable yet," slip by one week to 22 June. Fallback is non-negotiable.

Production-quality bar: believable · stable · coherent · trustworthy · integrated · alive. Not: broad · overloaded · over-designed · feature-rich.

Enterprise behaviour means: stored interpretation (not generated ad hoc) · YAML rule versioning · source attribution · confidence handling · stale-state UX · deterministic logic · fallback behaviour · rule_version traceability. No magic AI black box.

D4 · SCOPE DISCIPLINE

Constraint is an asset

One module · two markets · one API · one portal surface · one embed · one sponsor sequence. The biggest improvement in this plan is what we excluded.

During implementation there will be temptation to add "one more thing" — a map · another category · a predictive graphic · an AI chat · another market · another signal type. Do not. Constraint is the asset that makes Phase 1 shippable.

D5 · INTEGRATION-FIRST

No parallel universes

All Phase 1 work uses the production VANTAGE-OTC.com shell · production CSS / classes · production architecture. No standalone visual languages. No isolated labs UX. No detached "labs-only" thinking.

The seasonal intelligence loop reinforces the existing terminal — it does not become its own separate site. Continuity strengthens belief. Fragmentation destroys it.

D6 · COHERENCE OVER BREADTH

One unforgettable loop

Phase 1 succeeds through coherence, not breadth. One module done beautifully > seven modules done partially. Enterprise buyers are excellent at extrapolation when belief exists; they are equally excellent at dismissal when belief is fragmented.

If Pollen Pulse™ works beautifully, Reckitt extrapolates Flu & Cough Watch™ on faith. If five modules work partially, Reckitt extrapolates nothing.

03Scope freeze · in writing

What ships in Phase 1 · what defers to Phase 2+.

Anything not in the IN column doesn't happen during Phase 1. The OUT column is not "won't happen ever" — it's "won't happen during 26 May → 15 Jun." Most OUT items move into Phase 2 by Q3 2026.

IN SCOPE · 26 MAY → 15 JUN

  • One module · Pollen Pulse™
  • Two markets · DE (DWD live) + NL (KNMI build)
  • Five-layer cascade · Signal · Interpretation · Commercial Meaning · Market Context · Action
  • One ingestion source extension · KNMI for NL
  • Live interpretation layer · rule-based · YAML-versioned
  • One API endpoint · /api/v1/intelligence/pollen-pulse/{market}/current
  • One terminal surface · vantage-otc.com/portal/intelligence/pollen-pulse/
  • One embed bundle · vanilla JS · ~30 kb · CSP-safe · /embed/pollen-pulse.js
  • One Claritin-branded demo · /demo/claritin-pollen-pulse/ · Cloudflare Access-gated
  • Bayer sponsor pitch kit · 1-pager · email · cold-approach · demo script · ROI · FAQ
  • Reckitt pitch kit · same template · sent 48 hours after Bayer
  • One new SIGNALS group header in existing portal nav · single entry: Pollen Pulse™
  • Cloudflare Access temp policy per sponsor reviewer · 14-day session

OUT OF SCOPE · DEFERRED TO PHASE 2+

  • Flu & Cough Watch™ · Quit Watch™ · WR · SS · HS · SR (six modules)
  • UK · CH · BE · IE · FR · IT · ES · Nordics (all other markets)
  • Met Office · MeteoSwiss · Copernicus · ECMWF · ECDC · WHO FluNet (all other sources)
  • ML-based interpretation · NielsenIQ calibration · predictive ML
  • Sponsor portal · public API · rate-limiting tiers
  • Multi-tenant white-label embed configuration
  • Desktop widget · Mac + Windows installers
  • React rewrite · web components · npm package
  • AI chat · AI-generated copy · LLM-driven interpretation
  • Navigation redesign · command palette · role-aware visibility
  • New domains · new shells · new CSS systems
  • Marketing collateral · press kits · launch event
  • Strepsils-branded variants of FW widget (Reckitt's interest is extrapolated from PP demo)
  • Bayer pitch deck for hayfever 2027 commercial activation (uses Phase 1 demo · doesn't expand scope)
0415 working days · day-by-day deploy sequence

Three weeks. Five Fridays as gates. One target ship date.

Each week ends on a Friday gate · GO/NO-GO decision · slip 1 week if not believable yet. Founder bandwidth is the rate limiter — Tue + Thu 2pm CET deploy windows · two deploys/week max. Batch PRs to fit the windows.

WEEK01

Backend foundation

LAYER 1 + LAYER 2 · DATA + INTERPRETATION
FRIDAY GATELive API in prod
DAY
OWNER
DELIVERABLE
GATE
MON 26
Backend
KNMI access investigation · API auth or open endpoint identified · sample NL data pulled · viability confirmed
KNMI viable?
TUE 27
Backend
Migration 004_pollen_interpretation.sql written · tested against prod-copy · reversible
Migration safe?
WED 28
Backend
knmi_sync.py written · interpretation rules YAML drafted · founder reviews copy
Services importable?
THU 29
Backend
API endpoint /api/v1/intelligence/pollen-pulse/{market}/current · response shape locked · OpenAPI documented
Endpoint frozen?
FRI 30
Founder + Backend
Production deploy · migration runs · feature flag = founder-only · 24h soak · first live API response from prod
GO/NO-GO W2
WEEK02

Terminal surface

LAYER 4 · TERMINAL · INSIDE VANTAGE-OTC.COM
FRIDAY GATEPage live for founder
DAY
OWNER
DELIVERABLE
GATE
MON 02
Frontend
Page scaffold at /portal/intelligence/pollen-pulse/ using existing portal CSS · empty-state renders
Page in shell
TUE 03
Frontend
Live data binding · five-layer cascade displays top-to-bottom · real DE + NL data
Cascade renders
WED 04
Frontend
Loading state · empty state · error state · stale-data flag · "next refresh in X" countdown
Degrades gracefully
THU 05
Frontend
Cross-link from portal nav · new "SIGNALS" group header · Pollen Pulse™ as first entry · no other nav changes
Visible in portal
FRI 06
Founder
Review · feedback round · feature flag stays founder-only over weekend
GO/NO-GO W3
WEEK03

Brand surface + sponsor pitch

LAYER 3 + LAYER 5 · BRAND + NARRATIVE
FRIDAY GATEBayer email sent
DAY
OWNER
DELIVERABLE
GATE
MON 09
Frontend
Embed bundle /embed/pollen-pulse.js · ~30 kb · CSP-safe · vanilla JS · fetches API · renders cascade
Embed loads on test page
TUE 10
Frontend
/demo/claritin-pollen-pulse/ · Claritin-themed variant · Cloudflare Access-gated · 14-day session policy template ready
Demo URL gated · live
WED 11
Founder + Claude
Bayer 1-pager · email draft · cold-approach playbook · ROI calculator (Claritin-specific) · FAQ
Kit ready · proof-read
THU 12
Founder + Claude
Demo script · 15-min walkthrough scripted inside 30-min call · rehearsal · screenshot deck as fallback
Demo flow clean
FRI 13
Founder
Bayer email sent. Reckitt kit prepared for Sunday 15 Jun send · 48-hour offset
FIRST PITCH OUT
05Anti-patterns · the temptations to refuse

During implementation the real risk is narrative expansion · not technical risk.

Each of the following will be tempting during weeks 1-3. Each one would dilute Phase 1's coherence. Each one is deferred to Phase 2 by doctrine D4. If any of these come up during stand-up, the answer is: "yes · Phase 2 · not Phase 1."

Refuse these · without exception

The list of things that will be tempting to add during the 3-week build. Each one has been considered. Each one has been deferred. The doctrine answer to every one of them is: "yes, that's interesting · Phase 2."

No · while we're at it
Adding ECDC ILI ingestion because the FastAPI codebase is openFlu is Phase 2 · do not touch in weeks 1-3
No · KPI dashboard
Adding a "category KPIs at the top" panelThe cascade IS the surface · KPI cards dilute the loop
No · React rewrite
Rewriting the embed in React for "future flexibility"Vanilla JS · 30 kb · CSP-safe · no build step · ship
No · ML interpretation
Using LLM or ML to generate interpretation copyRule-based · YAML · founder-reviewed · auditable · never ML until calibration data exists
No · sponsor edit
Letting sponsors edit interpretation copy on their branded embedDestroys the editorial trust position · the cascade is the editorial product
No · social signal
Adding Twitter / TikTok / Reddit pollen-allergy signalLow signal-to-noise · expensive maintenance · no commercial story
No · navigation redesign
Redesigning the sidebar to "scale better"Phase 4 problem · solve when pressure justifies · add Pollen Pulse™ under new SIGNALS header only
No · extra market
Adding UK because "the data is there anyway"DE + NL only · UK is Phase 2 · stay disciplined
No · maps
Adding regional heatmaps · interactive geo views · GISVisual sophistication ≠ morning-open behaviour · defer
No · AI chat
Adding a chat interface "ask the cascade questions"The cascade is structured intelligence · chat dilutes structure
No · multi-sponsor week
Sending Bayer + Reckitt + Haleon + P&G in the same weekBayer 13 Jun · Reckitt 15 Jun · then assess · do not flood inboxes
No · positioning rewrite
Reopening Consumer Healthcare Growth Intelligence framing mid-buildStrategic phase is mature · execute · learn through production friction
06Production-specific risk register

Ten risks · ranked · with mitigation written before week 1 starts.

Production risks are different from concept risks · they're operational · they have specific mitigations. Each row here gets reviewed at the Friday gate. If a HIGH risk is unmitigated by Friday, slip the schedule.

ID
RISK
SEV
MITIGATION
P1
Migration breaks existing pollen_observation queries
DE production data already lives in this table since 11 May
HIGH
Migration adds tables only. No ALTER on existing tables. Reversible. Tested against prod-copy first. Roll-back script committed alongside.
P2
KNMI API access falls over or rate-limits
NL ingestion source · single point of failure for second-market story
HIGH
Cached fallback 48h. Stale-flag UX. Mon 26 May investigation confirms viability before any other Week 1 work proceeds. If KNMI not viable, fall back to DE-only Phase 1 (still believable).
P3
DWD upstream outage during Bayer demo
Only live data source for DE · Phase 1 collapse if outage on demo day
HIGH
Same 48h cache. Stale-flag UX. Monitoring alert within 15 min. Pre-demo checklist 1h before call confirms live data.
P4
Interpretation copy wrong-tone or brand-sensitive
YAML rule changes can ship inappropriate phrasing
MED
Founder reviews every YAML rule change before merge. No auto-deploys for copy. Single review gate per copy change · documented in commit message.
P5
API endpoint slow under load
No real load expected during Phase 1
LOW
Response is pre-computed by cron · single indexed query · ~5 ms expected. Revisit if usage justifies rate limiting.
P6
Embed bundle rejected by partner CSP
Sponsor sites have strict Content Security Policies
MED
Self-hosted on vantage-otc.com (no external CDN dependency). No inline JS. No eval. CSP-safe by design. Test against Reckitt's CSP profile in Week 3 before pitch.
P7
Feature flag stays "on" after rollback
Could expose half-broken feature to subscribers
LOW
Flag config in env var (not DB). Documented rollback runbook · 60-second flip. Founder verifies post-rollback that flag is off.
P8
DST transition 25 Oct 2026 breaks cron timing
Cached interpretation could drift by 1 hour
LOW
UTC everywhere internally. Display converts only. Tested in staging before Oct. Phase 2 problem · noted for tracking.
P9
Bayer reviewer sees stale data on demo
Demo URL renders without fresh signal
HIGH
Pre-demo checklist · 1h before call: confirm DWD + KNMI fresh within last 6h · refresh API · check portal renders · check embed loads · check Claritin variant. Five-minute verification routine.
P10
Founder bandwidth bottleneck on deploys
Single review gate · founder availability rate-limits velocity
HIGH
Two deploy windows per week (Tue + Thu 2pm CET). Single-concern PRs batched to fit windows. Async review with explicit GO criteria (test pass + scope match). Founder approves at the window · not on-demand.
07Authorization gates · needed before Monday 26 May

Six decisions to lock before Week 1 starts.

None block tonight's documentation work. All six are needed before the Friday 30 May production deploy. Defaults proposed where reasonable · founder can confirm or override.

#
DECISION
PROPOSED DEFAULT
G1
Production deploy authorization
Who pushes to Railway · founder hands or engineer
Founder until engineer hired · 1-2 day gate per deploy · two windows per week
G2
Deploy windows
When deploys happen · prevents Friday-afternoon production touches
Tuesday + Thursday · 2pm CET · two per week max
G3
KNMI access investigation
Open public API or paywalled · viable for production use
Mon 26 May 9am · founder or engineer · Claude provides API documentation references
G4
Interpretation copy review process
YAML rule changes containing commercial-meaning text
Founder reviews every YAML rule change before merge. Single gate · commit message documents rationale
G5
Feature flag conventions
How features get turned on/off
Env var FEATURE_POLLEN_PULSE=true|false per environment · default false
G6
Portal subscription gating
Who sees the Pollen Pulse™ page during Phase 1
All authenticated subscribers see it during Phase 1 · revisit gating in Phase 2 when commercial story matures
08Related Studio documents

Studio documents · what they are now · in the Phase 1 / Phase 2+ frame.

The Studio is alive · its role has shifted. Phase 1 ships in production at vantage-otc.com. This Studio holds Phase 2+ supporting strategy and the canonical Phase 1 execution doc (this page).

·The one-line

Phase 1 ends with one believable live operating loop in production · Bayer demo live · Reckitt 48 hours behind.

Everything else is Phase 2+.

VANTAGE-OTC.COM · PHASE 1 · EXECUTION DOCTRINE
Canonical · v1.0 · 2026-05-22 · single source of truth
All Phase 1 work answers to this document · changes to scope require explicit founder ratification · do not reopen during execution