$19
Per month to operate
0
Engineers on team
26
Data sources integrated
ZONE 01 The Pipeline architecture · ingest · compute · intelligence · tech stack
Architecture

The system — every component

26 data sources → 13 ingest Lambdas → S3 + DynamoDB → 5 compute Lambdas → 4 output channels. All on AWS. Costs ~$19/month. Built by one person using AI as a development partner.

DATA SOURCES INGEST STORE COMPUTE OUTPUTS WEARABLES Whoop · Eight Sleep Garmin · Apple Health HRV · Sleep · Steps · HR NUTRITION + METABOLIC MacroFactor · Dexcom CGM Calories · Macros · Glucose Withings · Blood Pressure BEHAVIORAL Habitify · Notion · Todoist Strava · State of Mind Weather · Supplements LAB + CLINICAL Labs ×7 · DEXA Scans Genome 110 SNPs EventBridge cron 06:45–11:00 AM PDT gap-aware backfill 13 Ingest Lambdas Python 3.12 · stdlib only urllib · no external deps Secrets Manager auth Manual + Webhooks Labs · DEXA · Genome S3 upload → Lambda trigger triggers S3 Raw Store matthew-life-platform raw/{src}/{type}/{Y}/{M}/{D} KMS encrypted · delete-protected DynamoDB life-platform table PK: USER#matthew#SOURCE#* SK: DATE#YYYY-MM-DD single-table · no GSIs · us-west-2 Lambda Layer ai_calls · scoring_engine board_loader · output_writers 5 Compute Lambdas character-sheet adaptive-mode · daily-metrics daily-insight · hypothesis-engine → pre-computed before 11 AM MCP Lambda 121 tools · 35 modules Claude Desktop + claude.ai OAuth 2.1 · natural language 7 Email Lambdas daily-brief fires at 11 AM Amazon SES · templates weekly chronicle · digests Daily Brief Email 11 AM · personal coaching 26 sources → 1 insight averagejoematt.com S3 + CloudFront CDN Site API Lambda us-east-1 Claude Desktop / AI MCP protocol · 121 tools natural language queries /ask · /subscribe rate-limited public API anon 3/hr · subscriber 20/hr ~$19 / month DynamoDB + Lambda + S3 + CF DAILY SCHEDULE 06:45–11:00 AM PDT EventBridge cron · UTC-fixed
Python Lambda
DynamoDB
S3 / EventBridge
MCP / Claude
Region: us-west-2 (us-east-1 for Site API)
System design

Five-layer architecture

All data converges to a single DynamoDB table (no GSIs, PK+SK only). Compute Lambdas pre-calculate intelligence results before the email delivery window. The MCP server exposes 121 tools to Claude over OAuth 2.1 — queries stay in natural language, not SQL.

INGEST
26 sources → DynamoDB
Whoop Withings Strava Apple Health MacroFactor Eight Sleep Garmin Hevy Habitify Notion Journal Todoist Dexcom CGM Lab Draws ×7 DEXA Scans Genome 110 SNPs Blood Pressure State of Mind Weather Supplements
STORE
Single-table DynamoDB
DynamoDB on-demand S3 raw + config Single-table design PITR 35-day KMS CMK encryption Deletion protection No GSI — PK+SK only TTL on cache partition
COMPUTE
Pre-brief intelligence
character-sheet-compute daily-metrics-compute daily-insight-compute adaptive-mode-compute hypothesis-engine (Sun) weekly-correlation-compute IC-4 failure patterns (May) IC-5 momentum warning (May)
SERVE
121 MCP tools → Claude
Remote MCP (OAuth 2.1) Claude Desktop (local) claude.ai + mobile Lambda Function URL HMAC Bearer auth 26h TTL cache Nightly warmer (13 tools) 1024MB / 300s timeout
EMAIL
7 AI digests / week
Daily Brief (11 AM) Monday Compass Wednesday Chronicle Weekly Digest (Sun) Nutrition Review (Sat) Weekly Plate (Fri) Monthly Digest Anomaly Detector
Intelligence layer

121 tools across 35 domain modules

The MCP server is a Lambda-backed tool registry exposing direct read access to every metric in DynamoDB. Claude calls tools in natural language; the server handles query composition, DynamoDB projection expressions, and result formatting.

Domain modules cover sleep, training, nutrition, CGM, labs, journal, correlation, character, board, lifestyle, and strength — each with dedicated tools purpose-built for their data shapes.

Daily brief pipeline: compute Lambdas run first (character-sheet, adaptive-mode, insight, hypothesis-engine), pre-calculating scores and hypotheses. The email Lambda reads these cached results rather than re-querying live data, keeping latency under 2 seconds.

Weekly hypothesis engine runs a Pearson correlation matrix across 23 metric pairs with Benjamini-Hochberg FDR correction, then feeds statistically significant findings to Claude for biological hypothesis generation.

The platform runs 14 intelligence systems every morning.
See what the AI does →
Tool spotlight

Tool of the week

One of 121 MCP tools that Claude uses to query health data. Inputs, outputs, and a representative finding.

get_sleep_environment_analysis BS-SL1 · Opus

Cross-references Eight Sleep bed temperature data with Whoop sleep staging to find the optimal temperature for deep sleep. Runs multi-signal analysis across 14+ nights.

Input: date range, Eight Sleep + Whoop data
Output: optimal temperature range, deep sleep correlation, adjustment recommendations
Finding: Lowering bed temp by 2°F added +18 min deep sleep per night

// Tool spotlight rotates periodically. Ask the platform anything →

Tech stack

What it's built on

Infrastructure
AWS Lambda + CDK
62 functions across 8 CDK stacks. All IAM roles dedicated and least-privilege. EventBridge scheduling on fixed UTC crons (no DST drift).
DynamoDB + S3
Single-table design. On-demand billing. PITR 35-day. KMS CMK encryption. Raw JSON archived to S3 at raw/{source}/{datatype}/{YYYY}/{MM}/{DD}.json.
SES + SNS + SQS
Email delivery via SES, alert routing through SNS, dead-letter queues for failed Lambda invocations.
AI / Intelligence
Claude (Anthropic)
Sonnet for coaching and analysis, Haiku for classification. ~$3/month API cost. MCP protocol for tool calls.
MCP Server (custom)
121-tool Lambda backed by DynamoDB. OAuth 2.1 + HMAC auth. 35-module package. 26h TTL cache with nightly warmer across 13 high-cost tools.
Hypothesis Engine
Weekly Pearson correlation matrix (23 pairs, BH FDR correction) feeds Claude for biological hypothesis generation.
Quality + CI/CD
853 automated tests
CDK handler consistency, S3 path linting, IAM/secrets cross-check, MCP registry integrity, DynamoDB key pattern validation.
GitHub Actions CI
Lint → test → plan → deploy (manual approval gate). OIDC federation — no long-lived AWS keys. Auto-rollback on smoke test failure.
Synthetic canary
Every 4 hours: DynamoDB round-trip, S3 round-trip, MCP endpoint health check. SES alert on any failure.
ZONE 02 The Guarantees security · cost · architecture reviews
Security posture

Hardened by default

Every architectural decision includes a security dimension. The site-facing API is read-only by design; the data layer is air-gapped from public writes.

Access control
— One IAM role per Lambda (least-privilege)
— Secrets Manager only — no .env files
— OIDC federation for CI/CD (no static keys)
— OAuth 2.1 + HMAC auth on MCP endpoint
— Rate limiting: 3 anon / 20 subscriber per hour on /ask
Data protection
— KMS CMK encryption on DynamoDB + S3
— DynamoDB deletion protection enabled
— S3 bucket policy blocks DeleteObject on raw/*
— PITR 35-day point-in-time recovery
— Site API Lambda: read-only, never writes to DynamoDB
Observability
— X-Ray tracing on all Lambdas
— CloudWatch alarms on error rate + latency
— Dead-letter queues on all async invocations
— Synthetic canary every 4 hours
— SES alert on any canary failure
FinOps

What it costs to run

62 Lambda functions, DynamoDB on-demand, S3, CloudFront, SES, 7 AI-generated digests per week, and a public site with live data. All serverless — no EC2, no containers, no reserved capacity.

Total monthly
$19
/month
Claude API
$3
Sonnet + Haiku
AWS infra
$10
Lambda + DDB + S3
Engineers on team
0
Built with Claude

// Pay only for what runs. Full breakdown at /cost/ →

Architecture reviews

Reviewed 19 times by a 12-member AI board

Every major change triggers a structured architecture review. 12 expert AI personas — cloud architect, security lead, statistician, product architect, adversarial reviewer — vote, score, and issue findings against a fixed rubric.

Read the latest review (R20: A) →

R20
Apr 4, 2026
A
DPR-1 deep page review. 43 findings across 13 pages. ADR-046 S3 prefix separation. Hourly ingestion. Secret caching.
R19
Mar 30, 2026
A
Full 6-phase remediation. 100% CDK adoption, 100% alarm coverage, PITR drill passed, /api/healthz. All R18 findings resolved.
R18
Mar 28, 2026
B+
v4.3.0 sprint review. CDK drift + doc mismatch flagged. 9 findings, all remediated in R19.
R17
Mar 22, 2026
A-
WAF deployed, rate limiting, privacy policy. Cross-region latency flagged.
R16
Mar 15, 2026
A
CI/CD activation, Google Calendar retired. All 6 R15 findings resolved.
R15
Mar 15, 2026
A
Platform steady state. Zero dimension changes from R14.
ZONE 03 The Surfaces every page · every data stream · every tool
The AI

14 intelligence systems running every day

Correlation engine. Hypothesis generator. Adaptive mode. Metabolic-adaptation detector. Anomaly scanner. Each one runs on a schedule, writes structured findings to a single record, and surfaces in the morning brief. The architecture is documented above; this is what those Lambdas actually do.

Correlation Engine

Weekly Pearson r across all measured variables, Benjamini–Hochberg-corrected at p<0.05. Flags the top 3 non-trivial relationships and the 3 it specifically rules out.

Hypothesis Generator

Reads the unified record, drafts testable hypotheses with priors, tracks each one to confirmation/refutation/abandonment. Visible on the Intelligence page.

Adaptive Mode

Senses whether today is a flourishing / standard / struggling day from sleep, HRV, mood, and adherence — and shifts the brief's tone + asks accordingly.

Metabolic Adaptation Detector

Watches for the divergence between expected and actual weight loss given the deficit. Surfaces a flag, not a verdict; pairs it with what to ask next.

Anomaly Scanner

Per-metric residuals against the 30-day baseline. Anything >2σ ends up in the brief with the contextual signal that should have predicted it (or didn't).

+ 9 more

Character engine, journal enrichment, freshness checker, cost governor, budget guard, predictions ledger, cycle-pause sentinel, daily-brief composer, board orchestrator.

Read the full Intelligence essay →

The Board

Six advisors. One question.

The AI Board is the cross-disciplinary panel the platform consults when a question is too complex for a single coach. Each advisor reads the same unified record but answers from their own domain. Disagreements are surfaced, not hidden — that's the point.

Dr. Henning Brandt
Biostatistics · N=1 research
Dr. Amara Patel
Metabolic health · CGM
Dr. Lisa Park
Sleep · circadian rhythm
Dr. Marcus Webb
Evidence-based nutrition
Dr. Sarah Chen
Exercise physiology · strength
Dr. Nathan Reeves
Psychiatry · behavioral patterns

Each advisor's perspective is rendered by Bedrock Claude (Sonnet for narrative, Haiku for structured) with the same prompt template, the same data context, and explicit instructions never to defer to consensus. The point is to see them disagree.   Ask the Board →

The Coaches

Eight specialists, one body

The coaching team is the daily layer — eight domain specialists who each track their slice of the unified record and write a paragraph in the morning brief. Unlike the Board (consulted), the Coaches are always on.

Sleep
Dr. Lisa Park
Nutrition
Dr. Marcus Webb
Training
Dr. Sarah Chen
Mind
Dr. Nathan Reeves
Physical
Dr. Victor Reyes
Glucose
Dr. Amara Patel
Labs
Dr. James Okafor
Explorer
Dr. Henning Brandt

Each coach runs as a separate Lambda. Shared context (yesterday's brief, the 7-day window, current goal) is cached for prompt-caching efficiency. Outputs go through a quality gate before the orchestrator stitches them into the brief.   Open the live coaching dashboard →

Go deeper

Explore the Build

🤖
The AI
14 systems running daily
$19
The Cost
Every line item, explained
🎯
Ask the Board
6 AI advisors, one question
📏
Methodology
N=1 science, FDR correction
🔧
Free Tools
Zone 2, HRV, protein calculators
💬
Ask the Data
Natural language queries
This platform generates a weekly chronicle. An AI journalist reads the data and writes about what she finds. Read the latest →