The Coach — Research Dashboard

The Coach — Marketing Strategy

LOCKED Apr 20, 2026

Hormozi x Suby x Dane Maxwell Hybrid

Positioning

"The first headless fitness coach. No app. No UI. Just a conversation."

"Other apps track calories. We track why you quit."

Value Equation (Hormozi)

Value Stack v2 ($2,188 → $297 founding / $49 regular)

  1. Billy AI Coach — daily behavioral check-ins, root cause analysis ($997)
  2. Weekly Scorecard + Dashboard — trends, rolling averages ($297)
  3. Nutrition Engine — cal/protein tracking, meal plans, grocery lists ($497)
  4. Base 6 Curriculum — sleep, exercise, journaling, meditation coaching ($397)

Funnel (Suby 8-Phase)

  1. ATTRACT: Meta ads + IG content + personal DMs (Dane: hot leads first)
  2. CAPTURE: Base 6 Guide PDF (HVCO / lead magnet)
  3. NURTURE: 5-email sequence (Days 0, 2, 4, 6, 8)
  4. CONVERT: 14-Day Challenge → founding offer at $297
  5. DELIVER: Billy bot daily coaching
  6. MULTIPLY: Client outcome stories → ad creative loop

Guarantee

Billy 30-Day: 10 lbs in 6 weeks at 80%+ Base 6 compliance or full refund.

Scarcity

First 100 founding members at $297 lifetime. After that: $49/mo.

Customer Acquisition Priority (Dane Effort Matrix)

  1. HOT: Text people Josh knows (Week 1 — 20 people)
  2. WARM: Fitness communities, Reddit, Facebook groups
  3. COOL: Zoom demos, webinars
  4. COLD: Meta ads, email sequences

Key Insight (Dane Behavior Spectrum)

Position as ELIMINATING behavior (meal planning, research, decision fatigue) not ADDING behavior (logging). "Stop thinking about what to eat. Just ask Billy."

14-Day Challenge Funnel (Dane)

Path to $10K

Schedule

Key Quotes

"Three weeks of pain for 30 years of wealth." —Dane Maxwell
"Make people an offer so good they'd feel stupid saying no." —Sabri Suby
"Don't fall more in love with your product than the market will." —Dane Maxwell
"800 million heartbeats. Don't spend them on ideas that don't reward you." —Dane Maxwell

Night Research — Apr 21, 2026

Skill Sharpening + Competitive Intelligence

Meta Ads — Key Updates for The Coach

Compliance (Critical for Launch)

Andromeda Algorithm (2026)

Action Items


Email Nurture — Platform Decision

Recommendation: MailerLite

Sequence Best Practices


Competitive Landscape

Market: $10.68B AI fitness (2025) → $57.8B by 2035 (19.3% CAGR)

CompetitorPriceWeakness
Noom$70/mo1.09/5 BBB, essentially a chatbot
SimpleFreemiumIF only, narrow
WellingSubPhoto logging, no accountability
BodyBuddyLow-costBudget positioning, less credible
MFPFreemium150M data breach, tracker not coach

Stanford Research: AI + human coaching = 74% more weight loss than AI alone (~5 lbs vs ~3 lbs over 3 months). This validates The Coach's hybrid model — AI coaching with real human credibility.

White Space: Nobody combines AI coaching + NASM credentials + anti-guru voice + Telegram-native + behavioral tracking (Base 6). The "headless fitness coach" positioning is genuinely unique.


AM Brief Skill Sharpening Highlights

  1. Meta compliance pivot: Position ads as fitness coaching, not weight loss — unlocks before-and-after imagery
  2. Email platform decided: MailerLite (free tier, full automation, $50/mo at scale)
  3. Stanford validates hybrid model: AI + human credibility = 74% more weight loss
  4. Competitive gap confirmed: Nobody is doing headless AI coaching on Telegram with real credentials
  5. Creative strategy: 10 core concepts x 2-3 formats = 20-30 active creatives for Advantage+
  6. Bot API 9.5 streaming: sendMessageDraft enables ChatGPT-style token streaming for Billy
  7. Stars subscriptions: Near-zero commission, native Telegram billing — consider as payment rail
  8. OpenFoodFacts: Free barcode lookup API, no auth needed — wire into Billy as primary barcode handler
  9. Claude Opus 4.7 GA: Better vision + coding — consider upgrading Billy's brain from Haiku

Telegram Bot Development — Key Updates

Bot API 9.5 (March 2026)

Competitor Bots (direct)

BotPriceDifferentiator
CalPal.Pro$3.30/moPhoto/barcode/voice/text. Most polished. No coaching.
Delta Driven$3.99/moWorkouts + nutrition. 10 free messages. Basic.
BodySherpaSubMeal plans + macro tracking. No behavioral coaching.
SnackWatchFree?Group tracking only.

None of them have Base 6, behavioral coaching, or real credentials behind them. The Coach's moat is deep.

Stars Payments

OpenFoodFacts API (free, no auth)

Food Logging Accuracy

Anthropic Updates

Action Items for Billy v2

  1. Wire OpenFoodFacts as primary barcode handler (free, accurate)
  2. Add sendMessageDraft streaming for AI responses
  3. Evaluate Stars subscriptions as alternative to Stripe ($297 = ~22,000 Stars)
  4. Add voice input via ElevenLabs Scribe (already have the key)
  5. Consider Opus 4.7 upgrade for coaching brain (better vision for food photos)

The Coach — Email Nurture Sequence

Trigger: Base 6 Guide PDF download
Goal: Guide → Trust → Trial → Founding Offer


Email 1: Deliver the Guide + Introduce Base 6 (Day 0 — immediate)

Subject: Your Base 6 Guide is here — and one thing to try tonight

Hey {{first_name}},

Your guide is attached. But before you read it, I want to tell you something most fitness apps won't:

Tracking calories isn't why you keep failing.

You already know what to eat. You've probably known for years. The problem isn't information — it's the six behavioral patterns that determine whether you'll actually stick to the plan past day 12.

That's what the Base 6 system tracks:

  1. Sleep — because you can't out-discipline exhaustion
  2. Food — calories and protein, yes, but WHY you skipped matters more than WHAT you skipped
  3. Exercise — movement, not perfection
  4. Journaling — 2 minutes of honesty with yourself
  5. Quiet Time — prayer, devotion, stillness. The thing you keep pushing off.
  6. Meditation — 5 minutes. Just breathing.

None of these are hard individually. But tracking all six together reveals the patterns that predict whether you'll quit — or whether this time is actually different.

Tonight, try this: Before bed, score yourself 0-2 on each one. Sleep, food, exercise, journal, quiet time, meditation. That's your Base 6 score for today. A perfect day is 12. Most people start around 4-5.

That number is more predictive than your scale weight. I'll explain why in my next email.

Talk soon,
Josh
Founder, The Coach | NASM CPT | BS Data Analytics

P.S. I'm doing this myself right now. Started at 275.9 lbs on April 12th. I'm tracking my Base 6 publicly because I believe in this system enough to bet my own body on it.


Email 2: Why Willpower Fails — Systems > Motivation (Day 2)

Subject: You didn't fail your diet. Your diet failed you.

Hey {{first_name}},

Quick question: How many times have you started a diet, lost some weight, felt great... and then gained it all back?

If you're like most people, the answer is "more times than I want to admit."

Here's what nobody tells you: willpower is a resource that depletes. It's not a character trait. It's a battery. And every diet plan that relies on motivation is asking you to run a marathon on a phone at 3% battery.

The Base 6 system works differently.

Instead of relying on willpower to make good choices, we build systems that make good choices the default. When you track all six behavioral indicators — not just food — you can see the collapse coming BEFORE it happens.

Here's what that looks like in practice:

These patterns are invisible if you're only counting calories. But when you track all six, the data tells a story. And once you can see the story, you can change the ending.

This is why I built an AI coach that tracks behaviors, not just macros. His name is Billy, and he's annoyingly persistent in the best possible way.

More on Billy in my next email. For now — did you try scoring yourself? Reply and tell me your Base 6 score. I read every one.

Josh


Email 3: Josh's Story — The Builder Who Dogfoods His Own Product (Day 4)

Subject: I'm 275 lbs. Here's why I'm the right person to coach you.

Hey {{first_name}},

I know what you're thinking. "Why would I take weight loss advice from someone who weighs 275 pounds?"

Fair question. Here's my answer:

I'm not selling you a six-pack transformation photo. I'm building a system — and I'm testing it on myself first.

My background:

I've spent my career building systems that work under pressure. Nuclear reactors don't run on motivation. They run on checklists, accountability, and data.

That's exactly what The Coach is.

On April 12, 2026, I stepped on the scale at 275.9 lbs. I'm tracking every day — publicly — using the same Base 6 system I'm building for you. Every check-in, every score, every stumble. Nothing hidden.

Why? Because I got tired of fitness influencers with perfect bodies selling programs they built AFTER they got in shape. I wanted to build something while I'm IN the fight. Not from the finish line — from the trenches.

The Coach isn't a meal plan. It's not a workout app. It's an AI coaching relationship that tracks the six behaviors that actually predict whether you'll succeed — and calls you out when you're slipping.

His name is Billy. He's a mountain goat. He's stubborn, encouraging, and he doesn't let you lie to yourself.

I'm putting together a founding group — the first 100 people who want to test this system with me. Founding members get lifetime access. No monthly fees. Ever.

If that sounds interesting, I'll have details in my next email.

Josh

P.S. Current weight: {{current_weight}} lbs. I'll update this number in every email until I hit 200. That's the deal I made with myself.


Email 4: Social Proof + Base 6 Data Story (Day 6)

Subject: What my first 2 weeks of Base 6 data revealed

Hey {{first_name}},

I've been tracking my Base 6 scores every day for {{days_tracking}} days. Here's what the data shows:

The pattern: Every time my sleep score dropped below 1 for two consecutive days, my food score crashed within 48 hours. Every. Single. Time.

The insight: I wasn't failing at nutrition. I was failing at sleep, and the nutrition collapse was a downstream effect.

No calorie counting app would have caught that. MyFitnessPal would have shown me "you went over your calories" — which I already knew. It wouldn't have shown me WHY.

That's the Base 6 difference. Six behavioral indicators, tracked daily, revealing the root cause patterns that no food diary can see.

Here's what the research backs up:

The Coach combines all three: AI personalization + messaging-based (no app to download) + behavioral tracking that goes deeper than calories.

Billy's weekly scorecard shows you a rolling trend — not just today's number, but the pattern across weeks. You start to see yourself honestly. And that honesty is what makes this time different.

Tomorrow I'm going to share the founding member details. If you've been thinking about it — tomorrow's the email to watch for.

Josh


Email 5: The Founding Offer (Day 8)

Subject: 100 spots. $297. Lifetime. Doors open now.

Hey {{first_name}},

This is the one.

I'm opening The Coach to 100 founding members. Here's what you get:

The Coach — Founding Member Access

  1. Billy AI Coach — daily behavioral check-ins, root cause analysis, personalized accountability. Not a chatbot. A coaching relationship. ($997 value)
  2. Weekly Scorecard + Dashboard — visual progress tracking, rolling averages, trend analysis. Proof that the system is working, even when the scale doesn't move. ($297 value)
  3. Nutrition Engine — calorie and protein tracking, personalized meal suggestions, weekly grocery lists generated to your targets. The mechanism. ($497 value)
  4. Base 6 Curriculum — structured coaching on sleep optimization, exercise programming, journaling prompts, meditation guides. The edge that keeps you from quitting. ($397 value)

Total value: $2,188
Founding member price: $297 — one time. Lifetime access. No monthly fees. Ever.

After 100 spots fill, the price goes to $49/month. No exceptions.

The Billy 30-Day Guarantee: Hit 80% Base 6 compliance for 6 weeks and don't lose 10 lbs? Full refund. I'm betting on the system — and I'm betting on you.

Why lifetime at $297?

Because everything in The Coach is earned, not purchased. No premium tiers. No locked features. No pay-to-win. If you show up and do the work, you get everything. That's the deal.

I'm building this because I needed it myself. I'm at {{current_weight}} lbs and counting down. I want 100 people to do this with me.

JOIN THE FOUNDING 100 →

Josh
Founder, The Coach
NASM CPT | US Navy Veteran | Currently in the arena at {{current_weight}} lbs

P.S. You don't need another app. You need someone who won't let you quit. That's Billy. That's The Coach. That's us.

The Base 6 Guide

The 6 Things You're NOT Tracking That Are Sabotaging Your Weight Loss

By Josh Tibbetts | NASM CPT | Certified Nutrition Coach | BS Data Analytics


You Already Know What to Eat.

Let's get this out of the way: you don't need another meal plan.

You know that protein matters. You know vegetables are good for you. You know that the third slice of pizza at 11 PM is probably not advancing your goals.

The information isn't the problem. You've had the information for years.

The problem is that you keep quitting.

And you keep quitting because every app, every program, and every influencer is tracking the WRONG things. They're watching the scoreboard when they should be watching the players.

Calories are the scoreboard. The Base 6 is the game.


What Is the Base 6?

The Base 6 is a daily behavioral tracking system built on six indicators that predict — with startling accuracy — whether you'll stick to your health goals or abandon them by week three.

These six behaviors aren't random. They're drawn from behavioral psychology, habit formation research, and my own experience as a NASM-certified personal trainer, nutrition coach, and data analyst who spent 8.5 years in the US Navy's nuclear program building systems that don't fail.

Nuclear reactors don't run on motivation. They run on checklists, accountability, and data. Your health should work the same way.

Here are the six:


1. SLEEP

Score: 0-2 daily

This is number one for a reason. Not because it's the most exciting — because it's the most predictive.

When your sleep deteriorates, everything downstream collapses. Your food choices get worse within 48 hours. Your exercise motivation disappears. Your emotional regulation tanks, which means stress eating spikes.

Every "I fell off the wagon" story I've ever heard starts the same way: "I wasn't sleeping well."

What to track:

Scoring:

The insight most people miss: Sleep isn't recovery from your day. Sleep is preparation for tomorrow. A bad night tonight doesn't just make tomorrow harder — it makes tomorrow's FOOD CHOICES harder. The research is clear: sleep-deprived people consume 300-400 more calories per day, mostly from high-carb, high-fat snacks. You're not weak. You're tired.


2. FOOD

Score: 0-2 daily

Yes, calories matter. Yes, protein matters. But the Base 6 doesn't ask you to weigh your chicken breast on a food scale.

Instead, we track two numbers: total calories and grams of protein. That's it. Not macros. Not micronutrients. Not whether your avocado was organic.

Why just two? Because compliance beats precision. A system you'll actually use for 6 months beats a perfect system you'll abandon in 6 days.

What to track:

Scoring:

The insight most people miss: The goal isn't perfection. The goal is AWARENESS. Most people have no idea how much they actually eat. When you start tracking — even imperfectly — you naturally adjust. The act of tracking IS the intervention. The number is secondary.

Quick protein targets:


3. EXERCISE

Score: 0-2 daily

Movement. Not a perfect workout program. Not a PR on your deadlift. Movement.

The biggest predictor of long-term weight loss isn't gym time — it's NEAT (Non-Exercise Activity Thermogenesis). That's the calories you burn doing everything that isn't formal exercise: walking, taking stairs, fidgeting, standing.

Steps are the simplest proxy for NEAT. That's why we track them.

What to track:

Scoring:

The insight most people miss: You don't need the gym to lose weight. You need to move. A daily walk does more for sustained weight loss than three intense gym sessions followed by four days on the couch. Consistency beats intensity. Always.


4. JOURNALING

Score: 0-2 daily

This is the one that makes gym bros roll their eyes. And it's the one that separates people who lose weight from people who lose weight and KEEP IT OFF.

Journaling isn't writing poetry about your feelings. It's 2-3 minutes of honest self-assessment. What went well today? What didn't? Why?

The "why" is everything. "I ate 3,000 calories" is data. "I ate 3,000 calories because I had a fight with my partner and I stress-eat when I feel unheard" is insight. One tells you what happened. The other tells you how to prevent it from happening again.

What to track:

Scoring:

The insight most people miss: Journaling creates a feedback loop that no app can replicate. When you write down WHY you made a choice, you build self-awareness. Self-awareness is the only sustainable weight loss tool. Everything else is a temporary patch.


5. QUIET TIME

Score: 0-2 daily

This is the spiritual discipline. Prayer, devotion, scripture, contemplation — whatever your practice is.

Why is this in a weight loss guide? Because weight loss is not a body problem. It's a whole-person problem. The people who sustain major weight loss aren't the ones with the best meal plans. They're the ones with the deepest sense of purpose.

Quiet time connects you to something bigger than the scale. It reminds you WHY you're doing this — not to look good at the beach, but to be the person you were designed to be.

What to track:

Scoring:

The insight most people miss: Every study on sustained behavioral change points to the same thing: people who maintain a spiritual or contemplative practice are significantly more likely to maintain health changes long-term. It's not woo-woo. It's data.


6. MEDITATION

Score: 0-2 daily

Separate from quiet time. Meditation is the practice of sitting with your own mind without trying to fix, solve, or escape it.

Why does this matter for weight loss? Because the #1 reason people break their nutrition plan is emotional reactivity. Stress, boredom, anxiety, loneliness — these are the triggers that send you to the pantry at 10 PM.

Meditation builds the gap between trigger and response. It doesn't eliminate cravings. It gives you 3 seconds of space to CHOOSE instead of react.

What to track:

Scoring:

The insight most people miss: You don't need to be good at meditation. You don't need to clear your mind. You just need to sit there. The practice of TRYING to be still — even badly — is the intervention. Five minutes of distracted meditation still beats zero minutes.


How to Use the Base 6

Every day, score yourself 0-2 on each of the six behaviors. Your daily Base 6 score ranges from 0 to 12.

Scoring guide:

The weekly view matters more than the daily view.

A bad day doesn't mean failure. A bad WEEK reveals a pattern. Track your Base 6 daily, but review it weekly. Look for:

The most important pattern: In my own tracking, every time my sleep score dropped for 2+ days, my food score collapsed within 48 hours. Every time. Your pattern might be different — maybe skipping meditation leads to stress eating, or missing exercise leads to poor sleep. The Base 6 reveals YOUR specific cascade.


Why This Works When Everything Else Failed

Every diet you've tried focused on ONE thing: food. Calories in, calories out. Macros. Meal plans. Points.

And it worked — for a while. Then you quit.

You quit because nobody was tracking the five other things that determine whether you'll stick to the food plan. Nobody noticed your sleep was falling apart. Nobody asked if you'd journaled. Nobody checked whether you'd taken five minutes to breathe.

The Base 6 tracks the WHOLE SYSTEM. Because you're not a calorie calculator. You're a human being with a body, a mind, and a soul — and all three need to be working together for sustainable change.


What Happens Next

You've got the framework. You know the six behaviors. You can start tracking today — a notebook, a spreadsheet, anything.

But if you want an AI coach who tracks it WITH you, holds you accountable, notices your patterns before you do, and won't let you quit on yourself...

Meet Billy.

Billy is an AI coaching relationship built on the Base 6 system. He checks in with you daily, scores your behaviors, generates weekly scorecards, and — most importantly — tells you WHY you're slipping, not just THAT you're slipping.

He's a mountain goat. Stubborn, surefooted, and he keeps climbing when everyone else quits.

I'm opening The Coach to 100 founding members at $297 — lifetime access. No monthly fees. Ever.

JOIN THE WAITLIST →


Josh Tibbetts is a NASM Certified Personal Trainer, Certified Nutrition Coach, and holds a BS in Data Analytics. He spent 8.5 years as a nuclear-trained electrician in the US Navy, where he learned that sustainable systems beat motivation every time. He's currently at {{current_weight}} lbs, tracking his own Base 6 publicly, proving the system works from the inside out.

The Coach is built by Ascent AI Automations. Billy the Goat approves this message.

Billy Onboarding Redesign

From "weak sauce" to Hooked Model

Current State (5-question text flow)

  1. First name
  2. Current weight
  3. Goal weight
  4. Biggest obstacle (a/b/c/d)
  5. Prior attempts (a/b/c/d)

→ Claude generates welcome message → done

Problems:


Redesigned Flow: The Hooked Model

Spark → Mirror → Floor → Launch

Design principles:


PHASE 1: SPARK (The Hook — no data collection yet)

Message 1 (on /start):

Hey. I'm Billy.

I'm a mountain goat — stubborn, surefooted, and I keep climbing
when everyone else quits.

I'm also your new weight loss coach. But not the kind that gives
you a meal plan and disappears. I check in EVERY day. I notice
patterns. And I don't let you lie to yourself.

Sound intense? Good. That's the point.

Ready to see what makes me different?

Let's go → Tell me more first →

If "Tell me more":

Most weight loss apps track one thing: food.

I track six. Because your sleep, your journaling, your quiet time
— those predict whether you'll quit your diet on day 12 better
than any calorie counter.

It's called the Base 6. And it's why I actually work.

Ready?

Let's go →


PHASE 2: MIRROR (Reflect their situation back — data collection WITH context)

Message 2:

First things first — what do I call you?

(Free text — capture first_name)

Message 3:

Nice to meet you, {{first_name}}.

Now — I need two numbers. No judgment, just data.
Where are you now, and where do you want to be?

Current weight (lbs)?

(Free text — capture current_weight)

Message 4:

Got it. {{current_weight}} lbs.

And where are we headed?

Goal weight (lbs)?

(Free text — capture goal_weight)

Message 5:

{{first_name}}, that's {{lose_amount}} lbs. Totally doable.

Here's the real question though — and this one matters more
than the numbers:

What keeps getting in the way?

⏰ Time — I can't find the hours 🔥 Motivation — I start strong but fade 🧠 Knowledge — I don't know what works 🔄 Consistency — I know what to do but can't stick to it

Message 6:

{{obstacle_response}}

Last one. How many times have you tried to lose weight before?

First time → 1-2 times → 3-5 times → Lost count →

Obstacle responses (personalized):


PHASE 3: FLOOR (Set the minimum — first taste of Base 6)

Message 7:

Here's the deal, {{first_name}}.

I'm not going to give you a perfect plan and hope you follow it.
I'm going to check in with you every single day and track the
6 behaviors that predict whether this time is actually different.

The Base 6:
  Sleep
  Food
  Exercise
  Journal
  Quiet Time
  Meditation

Each one scored 0-2. Max score: 12/day.

You don't need a 12. You need consistency above 8.
That's where the magic happens.

Want to do your first check-in right now?

Let's do it → Maybe later →

If "Let's do it": Trigger the /checkin flow immediately (inline buttons, same as current)

If "Maybe later": Skip to Launch phase


PHASE 4: LAUNCH (Set expectations + daily rhythm)

Message 8 (after first check-in, or after "maybe later"):

{{first_checkin_response}}

Here's how this works going forward:

  I'll check in with you once a day
  /scorecard shows your weekly trends
  /mealplan generates a custom meal plan
  Text me anytime — I'm always here

One hoof in front of the other, {{first_name}}. Let's go.

First check-in responses (personalized by score):


Code Changes Required

1. Replace ONBOARDING_QUESTIONS array:

Replace the 5-question text array with a state machine that handles the Hooked flow (8 messages, mix of text and inline buttons).

2. Add onboarding_step values:

3. Add callback_query handlers for onboarding buttons:

4. Personalized obstacle responses:

Map obstacle selection to a specific Billy response that validates their experience.

5. Immediate first check-in:

After onboarding, the user's first action IS a check-in — not waiting until tomorrow.

6. Fix the "water break" fallback:

Instead of "Billy's taking a water break," use a pre-written fallback response based on the context (onboarding complete, check-in score, etc.) so the user never sees a generic error.


DB Schema Changes

-- Add onboarding_phase column for tracking Hooked flow
ALTER TABLE coach_users ADD COLUMN IF NOT EXISTS onboarding_phase VARCHAR(20) DEFAULT 'spark';

-- Existing onboarding_step can remain for backwards compat, but the new flow uses onboarding_phase:
-- 'spark', 'name', 'weight', 'goal', 'obstacle', 'attempts', 'floor', 'launched'

Why This Is Better

  1. Emotional hook first — Billy introduces himself with personality before asking for anything
  2. Value before data — user understands the Base 6 concept before being asked to use it
  3. Inline buttons — reduces friction on multiple-choice questions
  4. Personalized responses — obstacle answer generates a custom response, user feels heard
  5. First check-in during onboarding — removes the gap between signup and first action
  6. Graceful errors — no more "water break" generic fallback
  7. Billy has voice from message one — "stubborn, surefooted, keeps climbing"

The Coach — DM Templates for Personal Outreach

For Josh's AM Block Week 1 — text these to people you know


Template 1: The Honest Ask (best for close friends)

Hey [name], I'm building something and I need honest feedback. It's an AI weight loss coach that lives in Telegram — checks in with you daily, tracks 6 behaviors that predict whether you'll actually stick to it this time. Not just calories.

I'm looking for 10 people to test it free for 14 days. Interested?

Template 2: The Personal Story (for people who know about your fitness journey)

Hey [name], you know I've been on my own weight loss thing — started at 276 a week ago. I'm actually building the tool I wished existed: an AI coach in Telegram that checks in every morning, tracks your food automatically, and won't let you quit.

Want to try it? Free for 2 weeks. I just need real people to test it with.

Template 3: The Dane Maxwell (for acquaintances / less close contacts)

Hey [name], quick question — I'm building an AI weight loss coach and I'm honestly not sure if it's any good yet. Could I get your gut reaction? It lives in Telegram, checks in daily, tracks 6 key behaviors. No app to download.

Would something like that be useful to you or anyone you know?

Template 4: The One-Liner (for mass texting)

Hey, would you try a free AI weight loss coach that texts you daily? Building one now and need 10 testers.

Follow-Up (if no response after 2 days)

Hey just bumping this — no pressure either way. If you know anyone who's been trying to lose weight and would appreciate a daily check-in buddy (AI-powered), send them my way. Appreciate you!

If They Say Yes

Awesome! Here's how it works:
1. Download Telegram (free, 30 seconds)
2. Search for @BillyTheCoachBot
3. Press /start

Billy will walk you through setup. Takes about 2 minutes. Then he'll check in with you every day for 14 days.

Fair warning — he's a mountain goat and he's persistent

Let me know once you're in and I'll make sure everything's working for you.

Who to Text (Josh's network categories)

  1. Gym buddies / people who've mentioned wanting to lose weight
  2. Navy friends who got out and put on weight
  3. Ultimate frisbee teammates
  4. Church community members
  5. Former personal training clients
  6. Family members who've tried diets
  7. Anyone who's complained about Noom/MFP/WW

Rules

5 Days in the Life of Dave

A 38-year-old dad trying to lose weight with The Coach

Written per Dane Maxwell's Day in the Life framework — sells the product before it exists.


Day 1: Monday

Dave weighs 242 lbs. He's tried Noom twice, MyFitnessPal three times, and a personal trainer once ($800 for two months, cancelled when his kid got sick and he missed three sessions). He knows what to eat. He just can't make himself do it past Thursday.

His friend Josh texts him: "Hey, I'm building an AI weight loss coach. Want to try it free for 2 weeks?"

Dave downloads Telegram in 30 seconds. Searches for @BillyTheCoachBot. Presses /start.

A mountain goat named Billy introduces himself. Asks Dave five questions: name, current weight, goal weight, biggest obstacle, how many times he's tried before. Dave types "consistency" and "lost count." Billy says:

"Consistency. That's the honest answer. And it's exactly what I'm designed for. Here's the deal, Dave — I'm going to check in with you every single day and track six things that predict whether this time is different. Ready for your first check-in?"

Six taps. Sleep? Yes. Food? Didn't track today. Exercise? Walked the dog. Journal? No. Quiet time? No. Meditation? No. Score: 2/12.

Billy says: "Honest start. That's all I need. We build from here. Tomorrow the only goal is: score higher than today."

Dave closes Telegram. Total time: 4 minutes.


Day 2: Tuesday

7:14 AM. Dave's brushing his teeth and his phone buzzes. It's Billy.

"Morning, Dave. Quick question — what are you having for breakfast?"

Dave types: "Probably just coffee and a bagel."

Billy responds: "The bagel's fine. Add 2 eggs and you'll hit 30g protein before 8 AM. That'll keep you from raiding the vending machine at 10:30. Trust me on this one."

Dave makes the eggs. It takes 4 minutes. He texts Billy: /food bagel with cream cheese and 2 scrambled eggs

Billy comes back instantly:

Food logged!
Bagel w/ cream cheese: 350 cal / 9g protein
2 scrambled eggs: 180 cal / 12g protein
This meal: 530 cal / 21g protein
Today's total: 530 / 2,100 target

Dave thinks: "That was easier than MyFitnessPal."


Day 3: Wednesday

Dave's at Chipotle for lunch. He takes a photo of his bowl and sends it to Billy.

Billy responds in 8 seconds:

Food logged!
Chicken burrito bowl w/ rice, beans, salsa, cheese: ~720 cal / 42g protein
Today's total: 1,340 cal / 78g protein
Remaining: 760 cal / 122g protein
Tip: You're heavy on carbs today. Dinner suggestion: grilled chicken
salad or a protein shake to close the protein gap.

Dave's wife asks what he's doing on his phone. "Texting my goat," he says. She looks confused. He shows her the conversation. She says: "Can I get one of those?"


Day 4: Thursday

This is the day Dave usually quits. He slept badly (kid was up at 2 AM). He skipped breakfast. He's stress-eating trail mix at his desk at 3 PM.

Base 6 check-in comes through. Sleep? Bad. Food? Off plan. Exercise? No. Journal? No. Quiet time? No. Meditation? No. Score: 1/12.

Billy doesn't guilt-trip. Billy says:

"Score: 1/12. Rough one. But here's what I notice — your sleep dropped, and your food followed. That's not a willpower failure. That's a cascade. Bad sleep → bad food choices. Every time. The fix isn't 'try harder tomorrow.' The fix is: what can you do tonight to sleep better? One thing. That's the whole assignment."

Dave puts his phone on the charger at 9:30 instead of scrolling until 11. He sleeps 7 hours for the first time in a week.


Day 5: Friday

Sleep: 7 hours. Food: tracked all three meals. Exercise: walked 6,000 steps. Journal: wrote two sentences ("Slept better. Felt clearer today."). Quiet time: 5 minutes in the car before work. Meditation: skipped.

Score: 9/12.

Billy says:

"9/12. Dave. Look at that. Yesterday was a 1. Today was a 9. You didn't change your diet. You didn't do a workout program. You slept better. That's the Base 6 — when the foundation is solid, the rest follows. Keep stacking days like this and we'll have a conversation about your scale weight next week that's going to make you smile."

Dave screenshots the scorecard and sends it to his wife. She downloads Telegram.


The Pattern

Dave didn't download a fitness app. He didn't create an account. He didn't set up a meal plan. He didn't join a gym.

He texted a goat. The goat texted back. And for the first time in his adult life, he made it past Thursday.


The Coach. AI accountability that lives in your Telegram. No app. No account. No excuses.

Join the founding 100 at the-coach.pages.dev

Billy SMS Architecture Spec

The Coach — SMS-First Coaching Engine

Version 1.0 | April 21, 2026


1. System Overview

USER (SMS/MMS)
      ↔
   TWILIO
   (webhook in/out)
      ↔
   BILLY ENGINE (Node.js on VPS)
      │
      ├── INPUT LAYER
      │   ├── Text → direct to Orchestrator
      │   ├── Voice (MMS) → ElevenLabs Scribe → text → Orchestrator
      │   └── Photo (MMS) → Claude Vision triage → Orchestrator
      │
      ├── ORCHESTRATOR (LLM Intent Classifier)
      │   └── Haiku classifies → routes to Handler
      │
      ├── HANDLERS (Deterministic)
      │   ├── food_log → API Ninjas + food_log table
      │   ├── check_in → Base 6 scoring flow
      │   ├── coaching → RAG search + Sonnet response
      │   ├── journal → save to daily_metrics
      │   ├── weight → save to daily_metrics
      │   ├── feedback → save to feedback table
      │   ├── onboarding → state machine
      │   ├── command → (STOP, HELP, STATUS, SCORECARD)
      │   ├── greeting → quick reply
      │   └── crisis → escalate to Josh
      │
      ├── RESPONSE LAYER
      │   ├── Sonnet (coaching conversations)
      │   ├── Haiku (data confirmations, food parsing)
      │   └── Template (structured responses, no LLM needed)
      │
      └── DATA LAYER
          ├── PostgreSQL (structured data)
          └── Qdrant (coaching_context + user_coaching_history)

2. Input Layer

2a. Text Input

2b. Voice Input (MMS)

2c. Photo Input (MMS)


3. Orchestrator (LLM Intent Classifier)

System Prompt

You are an intent classifier for a fitness coaching SMS bot. Given the user's
message and their current state, classify the intent into exactly ONE of these
categories. Return ONLY the JSON object, nothing else.

Categories:
- food_log: user is describing food they ate or asking to log a meal
- check_in: user is reporting on their Base 6 habits
- weight: user is reporting their weight (a number between 100-500)
- journal: user is writing a journal entry or reflection
- coaching: user is asking about nutrition, exercise, habits, or motivation
- feedback: user is giving feedback, reporting a bug, or requesting a feature
- onboarding: user is answering an onboarding question (only when state = onboarding)
- command: user is sending a keyword command (STOP, HELP, STATUS, SCORECARD, MENU)
- greeting: user is saying hi, good morning, etc.
- crisis: user expresses self-harm, severe distress, or dangerous behavior

Return: {"intent": "<category>", "confidence": 0.0-1.0, "extracted": "<any structured data>"}

Input to Classifier

{
  "message": "<user's text or transcription>",
  "user_state": "<onboarding_step | active | paused>",
  "last_intent": "<previous message intent>",
  "time_of_day": "<morning | afternoon | evening | night>"
}

Output

{
  "intent": "food_log",
  "confidence": 0.95,
  "extracted": "2 eggs and toast with butter"
}

Routing Rules


4. Handlers (Deterministic)

4a. food_log

Input: extracted food description
Pipeline:
  1. Claude Haiku parses into API-friendly queries (existing FOOD_PARSE_SYSTEM)
  2. API Ninjas lookup per item
  3. Sum totals (cal, protein, carbs, fat)
  4. INSERT into food_log table
  5. Query today's running total
Response template:
  "Logged: [items]. This meal: [cal] cal / [protein]g protein.
   Today's total: [total_cal] / 2300 cal | [total_protein] / 200g protein"
LLM needed: Haiku (parsing only)

4b. check_in

Input: Base 6 responses
Pipeline:
  1. Parse scores (SMS format: "2,1,2,0,1,0" or conversational)
  2. If conversational → Haiku extracts scores
  3. INSERT/UPDATE coach_checkins
  4. Calculate daily score
Response:
  Sonnet generates coaching commentary based on scores + user history
LLM needed: Haiku (parsing) + Sonnet (coaching response)

4c. coaching

Input: user's question or statement
Pipeline:
  1. Search Qdrant coaching_context (science/programs)
  2. Search Qdrant user_coaching_history (personal patterns)
  3. Pull last 5 check-ins from PostgreSQL
  4. Build context: user profile + RAG results + recent data
  5. Sonnet generates response (max 300 tokens for SMS)
Response: Sonnet coaching message
LLM needed: Sonnet

4d. journal

Input: journal text
Pipeline:
  1. Save to daily_metrics.journal_text (append if exists)
  2. Weekly: batch embed journal summaries to user_coaching_history
Response template:
  "Journal saved. Keep writing — patterns emerge over time."
LLM needed: None

4e. weight

Input: number (100-500 range)
Pipeline:
  1. UPDATE daily_metrics SET weight = X
  2. Query last 7 weights for trend
  3. Calculate rolling average
Response template:
  "[weight] lbs logged. Trend: [direction] [amount] from last week.
   Rolling avg: [avg] lbs."
LLM needed: None

4f. feedback

Input: feedback text
Pipeline:
  1. INSERT into feedback table (user_id, text, category, timestamp)
  2. Haiku auto-categorizes: bug | feature_request | positive | negative
Response template:
  "Feedback received — thanks. This goes directly to the team."
LLM needed: Haiku (categorization only)

4g. onboarding

State machine — see Section 5.

4h. command

STOP      → Twilio auto-handles opt-out. Log to DB. Mark user paused.
HELP      → Template: "Billy commands: text CHECKIN, FOOD, WEIGHT,
             SCORECARD, JOURNAL, FEEDBACK, or STOP. Or just talk to me."
STATUS    → Template: today's Base 6 score + food total + weight
SCORECARD → Generate weekly scorecard, send as text + URL to visual
MENU      → Same as HELP

4i. greeting

Response: Quick contextual greeting based on time of day + last interaction
  Morning:   "Morning [name]. Ready for today's check-in?"
  Afternoon: "Hey [name]. How's the day going?"
  Evening:   "Evening [name]. How'd today go?"
LLM needed: None (template with time-of-day logic)

4j. crisis

Input: distress signals detected by classifier
Pipeline:
  1. Send immediate supportive response (template — NOT LLM-generated)
  2. "I hear you. If you're in crisis, please text HOME to 741741
     (Crisis Text Line) or call 988."
  3. Flag in DB: crisis_flag = true, timestamp
  4. Send alert to Josh via Telegram
  5. Do NOT attempt to coach through it
LLM needed: None — template only. Safety-critical path must be deterministic.

5. Onboarding State Machine (SMS)

All conversational. No buttons. Billy asks, user texts back.

State 0: WELCOME
  Billy: "Hey! I'm Billy. I'm your AI fitness coach. I'm here to
  help you hit your goals — not judge you, not lecture you, just
  help. Ready to get set up? Takes about 2 minutes."
  Wait for any response → State 1

State 1: NAME
  Billy: "What should I call you?"
  Save first_name → State 2

State 2: GOAL
  Billy: "Nice to meet you, [name]. What's your main goal?
  1 - Lose weight
  2 - Eat better without thinking about it
  3 - Get a workout plan I'll stick to
  4 - Just be healthier overall"
  Save goal_type → State 3

State 3: CURRENT_WEIGHT
  Billy: "Got it. Current weight in lbs?"
  Save current_weight → State 4

State 4: GOAL_WEIGHT
  Billy: "[weight] lbs. Where do you want to be?"
  Save goal_weight → State 5

State 5: SCHEDULE
  Billy: "What time do you usually wake up? (like 6:30)"
  Save wake_time → State 6

State 6: BEDTIME
  Billy: "And what time do you usually go to bed?"
  Save bed_time → State 7

State 7: INTERACTIVITY
  Billy: "How much do you want me in your life?
  1 - Light — just check in once a day
  2 - Medium — daily check-in + tips + nudges
  3 - Full send — coach me hard, don't let me slide"
  Save interactivity_level → State 8

State 8: DELIVERY
  Billy: "Last one. How do you want your daily lessons?
  1 - Text message (read it)
  2 - Voice message (listen to it)
  3 - Both"
  Save delivery_pref → State 9

State 9: PRIVACY
  Billy: "One thing before we start — your data is yours. Your
  journal, your weight, your check-ins — only Billy sees them.
  I can't see your individual data. If I ever need to, I'll ask
  and you can say no. Cool?"
  Wait for any response → State 10

State 10: FIRST CHECK-IN
  Billy: "Alright [name], let's do your first Base 6 check-in.
  Quick scores, 0-2 each:
  Sleep / Food / Exercise / Journal / Quiet Time / Meditation
  Send as six numbers like: 2,1,1,0,0,0"
  Parse + save → State 11

State 11: LAUNCH
  Billy: "Score: [X]/12. [Personalized Sonnet response].
  Here's how this works from here:
  - I'll text you at [wake_time] every morning
  - Quick daily lesson + check-in
  - Text me anytime — food, questions, anything
  - Text SCORECARD for your weekly report
  - Text STOP anytime to pause
  One hoof in front of the other, [name]. Let's go."
  Set onboarding_step = 0 (complete) → ACTIVE

6. Scheduled Messages (Cron via Node.js)

PER USER (based on their wake_time and bed_time):

wake_time:       "Morning [name]. Base 6 check-in time. How'd you sleep? (0-2)"
wake_time + 30m: Daily curriculum lesson (Week X, Day Y content)
bed_time - 15m:  "Winding down? Quick end-of-day Base 6: text your scores (S,F,E,J,Q,M)"
bed_time:        "Lights out, [name]. Rest well. Tomorrow we go again."

WEEKLY (Sunday):
  Generate scorecard → send as text summary + URL to visual scorecard
  "Here's your week: [text summary]. Full report: [URL]"

MISSED CHECK-IN (no response by noon):
  "Hey [name], missed you this morning. Everything good?
   Quick score whenever you're ready — or just say hi."

3-DAY SILENCE:
  "Haven't heard from you in a few days. No judgment — just checking in.
   Text anything to pick back up, or STOP if you need a break."

7. Database Schema Updates

-- Update coach_users for SMS
ALTER TABLE coach_users ADD COLUMN IF NOT EXISTS phone_number VARCHAR(20);
ALTER TABLE coach_users ADD COLUMN IF NOT EXISTS channel VARCHAR(10) DEFAULT 'sms';
ALTER TABLE coach_users ADD COLUMN IF NOT EXISTS goal_type VARCHAR(50);
ALTER TABLE coach_users ADD COLUMN IF NOT EXISTS wake_time TIME;
ALTER TABLE coach_users ADD COLUMN IF NOT EXISTS bed_time TIME;
ALTER TABLE coach_users ADD COLUMN IF NOT EXISTS interactivity_level VARCHAR(10)
  DEFAULT 'medium';
ALTER TABLE coach_users ADD COLUMN IF NOT EXISTS delivery_pref VARCHAR(10)
  DEFAULT 'text';
ALTER TABLE coach_users ADD COLUMN IF NOT EXISTS data_consent VARCHAR(20)
  DEFAULT 'anonymized_only';
ALTER TABLE coach_users ADD COLUMN IF NOT EXISTS consent_expires_at TIMESTAMPTZ;
ALTER TABLE coach_users ADD COLUMN IF NOT EXISTS crisis_flag BOOLEAN DEFAULT false;
ALTER TABLE coach_users ADD COLUMN IF NOT EXISTS curriculum_week INT DEFAULT 1;
ALTER TABLE coach_users ADD COLUMN IF NOT EXISTS curriculum_day INT DEFAULT 1;

-- Update coach_checkins for 0-2 scoring
ALTER TABLE coach_checkins ALTER COLUMN sleep TYPE SMALLINT
  USING CASE WHEN sleep THEN 2 ELSE 0 END;
ALTER TABLE coach_checkins ALTER COLUMN food TYPE SMALLINT
  USING CASE WHEN food THEN 2 ELSE 0 END;
ALTER TABLE coach_checkins ALTER COLUMN exercise TYPE SMALLINT
  USING CASE WHEN exercise THEN 2 ELSE 0 END;
ALTER TABLE coach_checkins ALTER COLUMN journal TYPE SMALLINT
  USING CASE WHEN journal THEN 2 ELSE 0 END;
ALTER TABLE coach_checkins ALTER COLUMN quiet_time TYPE SMALLINT
  USING CASE WHEN quiet_time THEN 2 ELSE 0 END;
ALTER TABLE coach_checkins ALTER COLUMN meditation TYPE SMALLINT
  USING CASE WHEN meditation THEN 2 ELSE 0 END;
-- score now out of 12 not 6

-- Feedback table
CREATE TABLE IF NOT EXISTS feedback (
  id SERIAL PRIMARY KEY,
  user_id VARCHAR(20) NOT NULL,
  category VARCHAR(20),  -- bug | feature | positive | negative
  message_text TEXT NOT NULL,
  created_at TIMESTAMPTZ DEFAULT NOW()
);

-- Curriculum progress
CREATE TABLE IF NOT EXISTS curriculum_progress (
  id SERIAL PRIMARY KEY,
  user_id VARCHAR(20) NOT NULL,
  week INT NOT NULL,
  day INT NOT NULL,
  pillar VARCHAR(20) NOT NULL,
  lesson_id VARCHAR(50),
  completed BOOLEAN DEFAULT false,
  completed_at TIMESTAMPTZ,
  quiz_score INT,
  UNIQUE(user_id, week, day)
);

8. Model Tiering

TaskModelCost/msgWhy
Intent classificationHaiku~$0.001Speed. Runs on every message.
Food parsingHaiku~$0.001Structured extraction, no creativity needed.
Photo triageHaiku (vision)~$0.003Quick barcode/food detection.
Feedback categorizationHaiku~$0.001Simple classification.
Coaching responsesSonnet~$0.01Nuanced, personalized, references RAG.
Post-checkin commentarySonnet~$0.01Needs pattern recognition + personality.
Onboarding welcomeSonnet~$0.01First impression matters.
Voice transcriptionElevenLabs Scribe~$0.005Best accuracy for short voice clips.

Estimated cost per user per day: ~$0.03-0.05 (3-5 messages)
At $49/mo: 98% margin on AI costs.


9. Twilio Integration

Webhook Endpoint

POST https://[VPS_IP]:8881/sms/incoming
Headers: Twilio signature validation
Body: From, To, Body, NumMedia, MediaUrl0, MediaContentType0

Outbound

const twilio = require('twilio');
const client = twilio(ACCOUNT_SID, AUTH_TOKEN);

async function sendSMS(to, body) {
  return client.messages.create({
    body,
    from: BILLY_NUMBER,
    to
  });
}

async function sendMMS(to, body, mediaUrl) {
  return client.messages.create({
    body,
    from: BILLY_NUMBER,
    to,
    mediaUrl: [mediaUrl]
  });
}

Scheduled Messages

Node.js cron jobs query coach_users for each user's wake_time/bed_time, converts to UTC, sends at the right time. Uses node-cron or a simple setInterval check every minute.


10. File Structure

/root/telos-ea/billy-sms/
├── server.js              # Express server, Twilio webhook handler
├── orchestrator.js        # LLM intent classifier
├── handlers/
│   ├── food.js            # Food logging handler
│   ├── checkin.js         # Base 6 check-in handler
│   ├── coaching.js        # RAG + Sonnet coaching handler
│   ├── journal.js         # Journal save handler
│   ├── weight.js          # Weight logging handler
│   ├── feedback.js        # Feedback handler
│   ├── onboarding.js      # Onboarding state machine
│   ├── commands.js        # STOP/HELP/STATUS/SCORECARD
│   └── crisis.js          # Crisis escalation handler
├── services/
│   ├── twilio.js          # Twilio send/receive helpers
│   ├── claude.js          # Claude API (Haiku + Sonnet)
│   ├── elevenlabs.js      # Voice transcription
│   ├── qdrant.js          # RAG search helpers
│   ├── nutrition.js       # API Ninjas + OpenFoodFacts
│   └── db.js              # PostgreSQL connection + queries
├── scheduler.js           # Per-user scheduled messages
├── curriculum/
│   ├── week1-sleep.json   # Day 1-5 sleep lessons
│   ├── week2-food.json
│   ├── week3-exercise.json
│   ├── week4-journal.json
│   ├── week5-qt.json
│   └── week6-meditation.json
└── package.json

11. Build Priority (This Week)

DayTaskBlocked By
Mon PMDB schema updatesNothing
Mon PMSpec complete (this doc)Nothing
Mon NightTwilio webhook + basic send/receiveTwilio credentials (Fred)
Tue AMOrchestrator (intent classifier)Nothing
Tue PMOnboarding state machine (SMS)Twilio working
Tue NightFood + weight + journal handlersNothing
Wed AMCoaching handler (RAG + Sonnet)Qdrant corpus ingested
Wed AMIngest coaching corpus to QdrantNothing
Wed PMScheduled messages (wake/bed)Twilio working
Wed PMQA with AI test personasAll handlers working
ThuFirst beta tester onboard (Zoom screen-share)Everything above
FriFix what broke, onboard remaining testersThursday learnings

Built for Monday. Owned, not rented. One hoof in front of the other.