Skip to main content

Syntropy Health Product Vision

Core Platform: Protocol-Driven Wellness Commerce

Syntropy Health is a protocol-driven wellness platform that bridges commerce and outcomes. DTC supplement and wellness brands create structured usage protocols tied to their products. Consumers adopt these protocols into their profile, receive AI-managed reminders, track adherence through daily check-ins, and build longitudinal evidence of what works. Both sides see their data in The Lounge — consumers see personal adherence and outcomes, partners see aggregate compliance and feedback.

Three Pillars, One Ecosystem

┌─────────────────────────────────────────────────────┐
│                  Syntropy Health                      │
│                                                       │
│  ┌─────────────┐  ┌──────────────┐  ┌──────────────┐ │
│  │  The Shrine  │  │  The Lounge   │  │ Integration  │ │
│  │  Health      │  │  Adherence    │  │ API (v1)     │ │
│  │  Command     │  │  + Catalog    │  │              │ │
│  │  Center      │  │              │  │ • Protocol   │ │
│  │ • Health     │  │ • PDC,       │  │   sync       │ │
│  │   insights   │  │   streaks,   │  │ • Adherence  │ │
│  │ • Shrine AI   │  │   timeline   │  │   analytics  │ │
│  │ • Protocol   │  │ • Notes feed │  │ • Feedback   │ │
│  │   management │  │ • Protocol   │  │ • Retention  │ │
│  │ • Check-ins  │  │   catalog    │  │ • Token auth │ │
│  └──────┬───────┘  └──────┬───────┘  └──────┬───────┘ │
│         └─────────────────┼─────────────────┘         │
│                    ┌──────┴───────┐                    │
│                    │  Protocol    │                    │
│                    │  Engine      │                    │
│                    │  (Core Data) │                    │
│                    └──────────────┘                    │
│                           ▲                            │
│                    ┌──────┴───────┐                    │
│                    │  External    │                    │
│                    │  Shopify App │                    │
│                    │  (TypeScript)│                    │
│                    └──────────────┘                    │
└─────────────────────────────────────────────────────┘

Protocol System Architecture

Data Models

The protocol system introduces three core models that extend the existing database schema:
Protocol (partner-created)
├── id: UUID
├── partner_id: FK → User (partner role)
├── name: str
├── description: text
├── schedule: JSON
│   ├── frequency: "daily" | "twice_daily" | "weekly" | "cycling"
│   ├── timing: "morning" | "evening" | "with_meals" | "before_bed"
│   ├── cycle_on_days: int (for cycling protocols)
│   └── cycle_off_days: int
├── duration_days: int (30, 60, 90, 0=ongoing)
├── instructions: text (freetext usage guidance)
├── product_ids: list[FK → CatalogItem] (vendor-agnostic)
├── status: "active" | "paused" | "archived"
├── created_at: datetime
└── updated_at: datetime

UserProtocol (consumer-adopted)
├── id: UUID
├── user_id: FK → User
├── protocol_id: FK → Protocol
├── started_at: datetime
├── target_end_date: datetime (calculated from duration_days)
├── status: "active" | "completed" | "abandoned"
├── reminder_time: time (user-configurable)
├── share_data_with_partner: bool (default: false)
└── created_at: datetime

ProtocolCheckIn (daily tracking)
├── id: UUID
├── user_protocol_id: FK → UserProtocol
├── scheduled_date: date
├── completed_at: datetime (null if missed)
├── status: "taken" | "skipped" | "missed"
├── note: text (optional, max 500 chars)
└── created_at: datetime

Vendor-Agnostic Product References

Protocols reference products via CatalogItem which already supports multiple vendors:
class CatalogItemSource(str, Enum):
    INTERNAL = "internal"
    AMAZON = "amazon"
    SHOPIFY = "shopify"
    WOOCOMMERCE = "woocommerce"
    CUSTOM_LINK = "custom_link"
A protocol can reference products from any source. The protocol is the unit of engagement — the product source is just where users buy it.

Data Flow

Protocol Creation (Partner Side — via Integration API)

Partner installs Shopify app → App obtains API token
  → POST /api/v1/protocols (name, schedule, instructions, duration)
  → Protocol created with source="shopify"
  → Protocol appears in The Lounge "Protocol Catalog" for consumers
  → Partner pulls analytics via GET /api/v1/analytics/*
  → Shopify app displays adherence stats in partner dashboard

Protocol Adoption (Consumer Side)

Consumer sees protocol link → Views protocol details (public page)
  → "Add to My Protocols" (requires auth)
  → UserProtocol created → Reminder scheduled
  → Daily check-in notification fires
  → User checks in (taken/skipped + optional note)
  → Adherence data flows to personal Lounge view
  → If opted in: anonymized aggregate data visible to partner

Adherence Tracking

ProtocolCheckIn created each day (scheduled_date populated)

  ├── User checks in before end of day → status = "taken" or "skipped"
  │   └── Optional note saved (e.g., "felt good today", "slight headache")

  └── No check-in by midnight → status = "missed" (background job)

Streak calculation:
  consecutive_taken = count of unbroken "taken" statuses
  adherence_pct = taken / (taken + skipped + missed) * 100
  pdc = taken / total_scheduled * 100 (Protocol Delivery Compliance)

Data Sharing

User settings: share_checkin_data = false (default)

  ├── If false: Partner sees adoption count + average adherence only

  └── If true: Partner additionally sees:
      ├── Individual anonymized check-in status (taken/skipped/missed)
      ├── Anonymized notes (no user identity attached)
      └── Adherence timeline for this user (anonymized)

Integration Points with Existing Infrastructure

Check-In System Extension

The existing CheckIn model (syntropy_journals/app/data/schemas/db/models/checkins.py) tracks general health check-ins. Protocol check-ins are a new model (ProtocolCheckIn) but share the same notification infrastructure.

Notification System

The existing notification system (syntropy_journals/app/states/app/notification/) supports TIPS/SUGGESTION/ALERT levels. Protocol reminders use the TIPS level with protocol-specific content:
Notification:
  type: "TIPS"
  title: "Protocol Reminder: {protocol_name}"
  message: "Time for your {schedule.timing} dose. Tap to check in."
  action: link to check-in UI

Settings

The existing Settings model needs one addition:
share_checkin_data: bool = False  # Opt-in to share anonymized check-in data with partners

Partner Portal

The existing partner portal (syntropy_journals/app/states/partner/) has:
  • PartnerProtocolState — needs to connect to real Protocol DB model (currently uses demo data)
  • AdherenceAnalyticsState — needs to consume real ProtocolCheckIn data
  • ShopifyConnectionState — already handles OAuth, product import

CatalogItem

Protocols reference products via CatalogItem.id. No changes needed to the catalog model — protocols are a layer on top of existing products.

The Lounge: Dual-View Architecture

Routing Logic

The Lounge renders different views based on user role:
# Simplified routing logic
if user.role == "partner":
    render_partner_view()  # Aggregate analytics, feedback stream
elif user.has_active_protocols():
    render_consumer_view()  # Personal adherence, timeline, notes
else:
    render_protocol_library()  # Browse available protocols

Consumer View Components

  1. Protocol Cards: Active protocols with progress ring, streak count, next reminder time
  2. Adherence Calendar: Month view with daily status indicators (green=taken, yellow=skipped, gray=missed)
  3. Response Timeline: Chronological feed of check-in notes and self-reported outcomes
  4. Trend Charts: Adherence % over time (weekly/monthly)

Partner View Components

  1. Protocol Dashboard: Cards per protocol showing adoption, active users, avg PDC
  2. Adherence Distribution: Histogram showing user clusters by compliance level
  3. Feedback Stream: Anonymized, time-stamped notes from opted-in users
  4. Retention Metrics: 30/60/90-day completion funnel

Shrine AI: Agent Capabilities for Protocols

Protocol-Aware Agent Behaviors

Shrine AI (the existing LangGraph agent at syntropy_journals/app/functions/llm/agent.py) gains protocol-related capabilities:
  1. Protocol Q&A: “When should I take my Vitamin D?” → checks user’s active protocols and provides timing-specific advice
  2. Adherence Coaching: “You’ve been at 100% this week — keep it up!” or “You missed yesterday’s check-in. Want to log it now?”
  3. Interaction Awareness: “You’re taking Magnesium and Calcium — consider spacing them 2 hours apart”
  4. Reorder Nudges: “Your 90-day Omega-3 protocol ends in 5 days. Want to reorder?”
These are implemented as tool functions that the ShrineAgent can call, accessing the Protocol and ProtocolCheckIn data.

MVP Implementation Phases

PhaseWhatDepends OnDeliverables
1Protocol Data ModelsDB models, Alembic migration, CRUD db_utils
2Partner Protocol CRUDPhase 1Partner portal forms, protocol list/detail, real data replaces demo
3User Protocol AdoptionPhase 1Public protocol page, “Add to My Protocols”, user dashboard
4Adherence TrackingPhase 1Check-in UI, notification integration, streaks, missed detection
5Lounge Dual ViewPhase 3+4Consumer adherence view, partner analytics view, data sharing settings
Phases 3 and 4 can run in parallel (different UI domains, same data models).

Key Technical Decisions

DecisionChoiceWhy
Protocol references CatalogItemVendor-agnosticProducts come from Shopify, Amazon, WooCommerce — protocol shouldn’t care
Separate ProtocolCheckIn modelNot reusing existing CheckInProtocol check-ins have different schema (scheduled_date, protocol context) and different analytics needs
Opt-in data sharingDefault OFFPrivacy-first builds trust; FTC compliance for health-adjacent data
Streak calculation is real-timeNot cachedSimple count query; no need for materialized views at MVP scale
Missed detection via background jobNot client-sideReliable even if user doesn’t open app; runs at midnight per user timezone

Voice & Chat First (Retained)

The original voice/chat-first paradigm applies to protocol management:
  • Voice check-in: “Hey Shrine, I took my Vitamin D” → marks today’s check-in as taken
  • Chat Q&A: “Can I take this with coffee?” → contextual answer from Shrine AI
  • Proactive nudges: Shrine AI sends reminder at user’s configured time
  • Natural language protocol discovery: “Show me protocols for sleep” → searches protocol library

Multi-Channel Presence

Shrine AI lives where users already are:
  • Web — Primary interface with full Lounge dashboard
  • Mobile — Push notifications for check-in reminders
  • Slack — Enterprise protocol management
  • WhatsApp/SMS — Lightweight check-in confirmation (future)

Shopping Integration (Updated)

Protocol-First Commerce

Instead of just tracking purchases, we now lead with protocols:
Old ModelNew Model
Buy product → auto-track purchaseSee protocol → adopt protocol → buy product → track adherence
Purchase data enriches health profileAdherence data enriches health profile AND partner analytics
Passive consumption trackingActive protocol engagement
One-way (consumer to platform)Two-way (consumer ↔ brand via The Lounge)

Integration Flow

Partner creates protocol on Syntropy
  → Links to products (Shopify, Amazon, any source)
  → Shareable link generated
  → Consumer discovers protocol (link, search, AI recommendation)
  → Adopts protocol → gets reminders → checks in daily
  → Consumer sees personal adherence in Lounge
  → Partner sees aggregate data in Lounge (if user opted in)
  → Retention loop: engaged users reorder, brands see proof

The OpenDiet Knowledge Graph

The proprietary intelligence behind Shrine AI’s dietary recommendations is the OpenDiet Knowledge Graph — a unified food-to-compound-to-symptom ontology developed in the open-diet-data research repository.

What It Contains

LayerScaleSource
Herbs2,376 plantsDr. Duke’s Phytochemical Database (CC0)
Compounds94,512 bioactive moleculesDr. Duke’s + FooDB + CMAUP
Herb-Compound Links99,280 associationsDr. Duke’s (plant part, PPM concentrations)
Compound-Food Links4,149,541 mappingsFooDB cross-referenced with OpenNutrition (326K foods)
Symptoms47 categoriesSeeded from Duke bioactivities
Molecular TargetsCMAUP + TTD databasesProtein targets for compounds
Disease AssociationsCTD toxicogenomicsCompound-disease relationships

How It Powers Shrine AI

User logs food → Food parsed to compounds → Compounds matched to targets
  → Targets linked to symptoms/conditions → Personalized insight generated
  → "Your lunch contains quercetin (from onions) — supports the same
     anti-inflammatory pathway as the ashwagandha in your protocol"
This knowledge graph is delivered as a metered MCP service for community edition users. Hosted (Syntropy Cloud) users get full access included. The graph compounds value per user over time — more food logs = more personalized compound-pathway insights.

Research MCP Servers

The research repository exposes 23 MCP tools across two servers:
  • mcp-herbal-botanicals (15 tools): Herb search, compound lookup, food-herb overlap, symptom-to-herb mapping, molecular target queries, semantic search via LightRAG/Neo4j
  • mcp-opennutrition (8 tools): 326K food database with 90-nutrient profiles, barcode lookup

Get Started

For DTC Brands: Create your first protocol at syntropyhealth.bio/partners For Consumers: Browse protocols at syntropyhealth.bio/protocols For Developers: Self-host the community edition — see docs.syntropyhealth.bio Free to start. No credit card required. Apache 2.0 licensed.