This page lists every table Cadence creates on your device. Each card shows what the table stores, whether it ever leaves your device, and an example of what a row looks like. No black boxes.
Database schema version: 16
Your data
Entries
Your daily logs — mood, food, sleep, caffeine, movement, stress, and anything else you track. Each entry has a type, timestamp, and the values you recorded.
Indexed fields
id (primary key)typetimestamptype + timestamp (compound)tags (multi-entry)
Example row
{
"id": "e_abc123",
"type": "mood",
"timestamp": "2026-03-12T08:30:00Z",
"value": 4,
"tags": [
"morning",
"rested"
],
"note": "Slept well, feeling good"
}Table name: entries
Goals
Your personal goals and habits — what you want to achieve, with status tracking and optional parent-child relationships for sub-goals.
Indexed fields
id (primary key)statuscategoryparentIdtypestatus + category (compound)createdAt
Example row
{
"id": "g_xyz789",
"title": "Drink 8 glasses of water daily",
"status": "active",
"category": "health",
"type": "habit",
"createdAt": "2026-03-01T10:00:00Z"
}Table name: goals
Goal check-ins
Daily progress on your goals — whether you completed a habit or moved toward a milestone on a given day.
Indexed fields
id (primary key)goalIddategoalId + date (compound)
Example row
{
"id": "gc_001",
"goalId": "g_xyz789",
"date": "2026-03-12",
"completed": true,
"value": 8
}Table name: goalCheckIns
Reflections
Your evening reflection sessions — the guided conversations where you look back on your day and surface patterns.
Indexed fields
id (primary key)date
Example row
{
"id": "rs_abc",
"date": "2026-03-12",
"messages": [
"Today felt balanced...",
"I noticed I had more energy after..."
],
"completedAt": "2026-03-12T21:15:00Z"
}Table name: reflectionSessions
Morning intentions
Your daily intentions set each morning — what you plan to focus on and how you want your day to feel.
Indexed fields
id (primary key)date
Example row
{
"id": "mi_001",
"date": "2026-03-12",
"intention": "Stay present during meetings",
"createdAt": "2026-03-12T07:00:00Z"
}Table name: morningIntentions
Commitments
Action items you commit to during reflections — concrete next steps you decide to take based on your insights.
Indexed fields
id (primary key)datecompletedAt
Example row
{
"id": "cm_001",
"date": "2026-03-12",
"text": "Go for a 20-minute walk after lunch",
"completedAt": null
}Table name: commitments
Custom trackers
Tracker definitions you create yourself — any metric Cadence does not cover out of the box, with your chosen value type and scale.
Indexed fields
id (primary key)namecreatedAt
Example row
{
"id": "ct_001",
"name": "Gratitude",
"valueType": "scale",
"scaleOptions": [
"low",
"medium",
"high"
],
"createdAt": "2026-03-01T12:00:00Z"
}Table name: customTrackers
Settings
Your preferences — display name, enabled categories, notification times, AI personality, privacy choices, and onboarding state.
Indexed fields
id (primary key)
Example row
{
"id": "user_settings",
"displayName": "Alex",
"tracking.enabledCategories": [
"mood",
"food",
"sleep"
],
"ai.personality": "gentle_challenger",
"privacy.analyticsConsent": false
}Table name: settings
Saved meals
Stores your favorite and frequently logged meals for quick re-entry. Includes food items, meal type, and usage statistics — all on-device.
Indexed fields
id (primary key)nameisFavoritelastUsedAtuseCountcreatedAt
Example row
{
"id": "saved_meal_001",
"name": "Morning oatmeal",
"items": [
{
"name": "Oatmeal",
"calories": 150
}
],
"mealType": "breakfast",
"isFavorite": true,
"useCount": 5
}Table name: savedMeals
Internal & system tables
These tables store app internals like cached research and usage signals. They do not contain your personal journal data.
Research insights
Curated research-backed insights matched to your tracking domains. Downloaded from our research library, not generated from your data.
Indexed fields
id (primary key)domainrelatedEntryTypes (multi-entry)confidencedomain + confidence (compound)
Example row
{
"id": "ins_001",
"domain": "sleep",
"title": "Consistent bedtime improves sleep quality",
"confidence": 0.85
}Table name: insights
Citations
Academic references backing the research insights — study metadata so you can verify claims yourself.
Indexed fields
id (primary key)yearstudyType
Example row
{
"id": "cit_001",
"year": 2023,
"studyType": "meta-analysis",
"title": "Sleep regularity and health outcomes"
}Table name: citations
Research chunks
Downloaded segments of the research library, versioned and timestamped for efficient updates.
Indexed fields
domain (primary key)versiondownloadedAt
Example row
{
"domain": "sleep",
"version": 2,
"downloadedAt": "2026-03-10T00:00:00Z"
}Table name: researchChunks
Insight interactions
How you have responded to research insights — dismissed, saved, or acted on — so Cadence can prioritize relevant ones.
Indexed fields
id (primary key)insightIdstatusinsightId + status (compound)
Example row
{
"id": "ii_001",
"insightId": "ins_001",
"status": "saved"
}Table name: insightInteractions
Personal research
Your own research notes and bookmarks on health topics, optionally included in AI analysis.
Indexed fields
id (primary key)domainincludeInAnalysis
Example row
{
"id": "pr_001",
"domain": "nutrition",
"includeInAnalysis": true,
"note": "Intermittent fasting study from..."
}Table name: personalResearch
User profile
Basic profile metadata used internally for personalization. Does not contain identifying information beyond what you provide.
Indexed fields
id (primary key)
Example row
{
"id": "profile",
"createdAt": "2026-03-01T00:00:00Z"
}Table name: userProfile
Usage stats
Aggregated usage counters stored locally — total entries, streaks, and session counts for achievements and progress tracking.
Indexed fields
id (primary key)
Example row
{
"id": "stats",
"totalEntries": 142,
"currentStreak": 7,
"longestStreak": 14
}Table name: usageStats
Achievements
Milestones and badges you have earned — streak records, entry counts, and feature discoveries.
Indexed fields
id (primary key)categoryearnedAtseen
Example row
{
"id": "ach_001",
"category": "streak",
"earnedAt": "2026-03-10T20:00:00Z",
"seen": true
}Table name: achievements
User sessions
Session tracking for internal analytics — when you opened the app and how long you used it. Never sent to servers.
Indexed fields
id (primary key)startedAt
Example row
{
"id": "sess_001",
"startedAt": "2026-03-12T08:00:00Z",
"durationMs": 300000
}Table name: userSessions
Data exports
A log of when you exported your data — timestamps and formats, so you know when your last backup was.
Indexed fields
id (primary key)exportedAt
Example row
{
"id": "exp_001",
"exportedAt": "2026-03-11T18:00:00Z",
"format": "json"
}Table name: dataExports
Feedback queue
Feedback messages you have submitted — queued locally and sent to our feedback endpoint when you are online.
Indexed fields
id (primary key)statuscreatedAt
Example row
{
"id": "fb_001",
"status": "pending",
"content": "I'd love a water tracking feature",
"createdAt": "2026-03-12T10:00:00Z"
}Table name: feedbackQueue
Anonymous signals
Anonymized usage signals — page views, tap counts, and timing data. Only sent if you enable analytics consent.
Indexed fields
id (primary key)typetimestampsynced
Example row
{
"id": "sig_001",
"type": "page_view",
"timestamp": "2026-03-12T08:00:00Z",
"synced": false
}Table name: signals
AI data log
A transparency log of every AI API request made from your device — shows what sanitized data was sent, which provider was used, and how long it took.
Indexed fields
id (primary key)timestampprovider
Example row
{
"id": "ailog_001",
"timestamp": "2026-03-13T20:15:00Z",
"provider": "managed",
"model": "gpt-4o-mini",
"sanitizedPrompt": "User logged [NAME] felt [MOOD]...",
"responsePreview": "Based on your patterns...",
"piiTokensFound": 2,
"durationMs": 1250
}Table name: aiDataLog
Food corrections
Tracks corrections you make to AI food identification — used to improve accuracy over time by learning from mistakes.
Indexed fields
id (auto-increment)correctedTotimestamp
Example row
{
"id": 1,
"originalGuess": "rice bowl",
"correctedTo": "quinoa salad",
"timestamp": "2026-03-13T12:30:00Z"
}Table name: foodCorrections
AI usage
Tracks AI API usage for cost monitoring — records each request with model, task type, and token counts.
Indexed fields
id (primary key)timestamptaskTypemodel
Example row
{
"id": "usage_001",
"timestamp": "2026-03-13T20:15:00Z",
"taskType": "reflection",
"model": "gpt-4o-mini",
"inputTokens": 150,
"outputTokens": 200
}Table name: aiUsage
Prompt history
A record of AI-generated reflection questions — used to avoid repeating the same questions and to track prompt diversity over time.
Indexed fields
id (primary key)datequestionTypequestionHash
Example row
{
"id": "ph_001",
"date": "2026-03-13",
"questionType": "dayReview",
"questionText": "What surprised you about your energy levels today?",
"questionHash": "a1b2c3d4",
"frameworkUsed": "surprise"
}Table name: promptHistory
Reflection program enrollments
Tracks your progress through guided reflection programs — which program you enrolled in, what day you are on, and your daily responses.
Indexed fields
id (primary key)programIdstatusstartedAt[programId+status]
Example row
{
"id": "enroll_001",
"programId": "mood-awareness-21d",
"status": "active",
"startedAt": "2026-03-13T08:00:00Z",
"currentDay": 3
}Table name: programEnrollments
Food nutrition cache
Caches nutrition lookup results from the local database, Open Food Facts API, and AI estimates to avoid redundant lookups. All data stays on-device.
Indexed fields
foodName (primary key)sourcecachedAt
Example row
{
"foodName": "apple",
"calories": 95,
"protein": 0.5,
"carbs": 25,
"fat": 0.3,
"source": "local",
"cachedAt": "2026-03-20T10:00:00Z"
}Table name: foodNutritionCache
Food photos
Stores meal photos as base64 mementos attached to food entries. Photos are compressed to max 1024x1024 JPEG quality 0.7. All data stays on-device.
Indexed fields
id (primary key)entryIdcapturedAt
Example row
{
"id": "fp_abc123",
"entryId": "e_food456",
"dataUrl": "data:image/jpeg;base64,...",
"capturedAt": "2026-03-23T12:30:00Z"
}Table name: foodPhotos