The CEO Operating Log Concept
The Daily Recap isn't just a summary - it's an executive briefing for your life. Inspired by how CEOs get morning briefings on business KPIs, the CEO Operating Log gives you a daily score across the four pillars that matter most.
The Four CEO Pillars
Unlike user-customizable pillars for general tracking, the CEO Pillars are fixed - they represent the universal balance executives need:
Family
Relationships, presence, connection
Health
Physical, mental, energy
Net New Revenue
Growth, pipeline, new business
Client Retention
Existing relationships, renewals
The Scoring System
Each pillar gets a score from 1-10, mapped to letter grades:
| Score | Grade | Label | Meaning |
|---|---|---|---|
| 9-10 | A | Excellent | Crushing it. Sustainable excellence. |
| 7-8 | B | Consistent | Solid performance. Meeting expectations. |
| 5-6 | C | Mixed | Some wins, some misses. Needs attention. |
| 3-4 | D | Off-track | Slipping. Course correction needed. |
| 1-2 | F | Critical | Red alert. Immediate intervention required. |
// Grade calculation
function scoreToGrade(score: number): { grade: string; label: string } {
if (score >= 9) return { grade: 'A', label: 'Excellent' };
if (score >= 7) return { grade: 'B', label: 'Consistent' };
if (score >= 5) return { grade: 'C', label: 'Mixed' };
if (score >= 3) return { grade: 'D', label: 'Off-track' };
return { grade: 'F', label: 'Critical' };
}
// Weighted average (equal weights for now)
function calculateOverallScore(scores: PillarScores): number {
const weights = { family: 0.25, health: 0.25, revenue: 0.25, retention: 0.25 };
return (
scores.family * weights.family +
scores.health * weights.health +
scores.revenue * weights.revenue +
scores.retention * weights.retention
);
}
Slips vs Outs
One of the most powerful concepts in TimOS is the distinction between Slips and Outs:
Slips
Clear misses - things that didn't happen that should have.
- Skipped the gym (no reason)
- Forgot the call with Mom
- Didn't follow up on the lead
- Missed the client check-in
Outs
Conscious trade-offs - intentional sacrifices with clear reasoning.
- Skipped gym for daughter's recital
- Delayed client call for family emergency
- Postponed sales push for product fix
- Traded revenue focus for team health
Why This Matters
Most productivity systems treat all misses the same. But there's a huge difference between laziness and intentional prioritization. An Out isn't a failure - it's a choice. Tracking both helps you see patterns: Are you always "choosing" to skip health? That's not trade-offs, that's avoidance masquerading as decisions.
The Daily Recap UI
// Daily Recap Report Structure
interface DailyRecap {
date: string;
overallScore: number;
overallGrade: string;
pillarScores: {
family: { score: number; grade: string; highlights: string[]; concerns: string[] };
health: { score: number; grade: string; highlights: string[]; concerns: string[] };
revenue: { score: number; grade: string; highlights: string[]; concerns: string[] };
retention: { score: number; grade: string; highlights: string[]; concerns: string[] };
};
dailyFlow: {
morningPulseCompleted: boolean;
dailyEntryCompleted: boolean;
eodReflectionCompleted: boolean;
};
feels: {
mentalState: string;
strongestEmotion: string;
pressureOrPurpose: 'pressure' | 'purpose' | 'mixed';
};
slips: Array<{ pillar: string; description: string }>;
outs: Array<{ pillar: string; description: string; reasoning: string }>;
highlights: string[];
concerns: string[];
recommendations: string[];
courseCorrection: string; // For tomorrow's Morning Pulse
}
Course Corrections
Each Daily Recap generates a "Course Correction" - a single, actionable focus for the next day. This appears on the next Morning Pulse as a reminder:
Yesterday's Course Correction
"Family score dropped to 4. You mentioned missing dinner three nights this week. Today's focus: Block 6-7pm as non-negotiable family time."
From Dec 1, 2025 Daily RecapData Persistence
Unlike ephemeral reports, Daily Recap data is persisted for historical analysis:
// api/src/prisma/vault.prisma
model DailyRecapData {
id String @id @default(uuid())
userId String @map("user_id")
date DateTime @db.Date
reportId String? @map("report_id")
// CEO Pillar Scores (1-10)
familyScore Int? @map("family_score")
healthScore Int? @map("health_score")
revenueScore Int? @map("revenue_score")
retentionScore Int? @map("retention_score")
weightedScore Float? @map("weighted_score")
overallGrade String? @map("overall_grade")
// Daily Flow Completion
morningPulseCompleted Boolean @default(false)
dailyEntryCompleted Boolean @default(false)
eodReflectionCompleted Boolean @default(false)
// Feels Data (queryable)
mentalState String? @map("mental_state")
strongestEmotion String? @map("strongest_emotion")
pressureOrPurpose String? @map("pressure_or_purpose")
// Encrypted content (highlights, insights, slips, outs, etc.)
encryptedContent String @db.LongText @map("encrypted_content")
contentIv String @map("content_iv")
source String @default("daily_recap")
aiModel String? @map("ai_model")
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@unique([userId, date])
@@map("daily_recap_data")
}
Local vs AI Generation
The Daily Recap can be generated two ways:
Local Generation
No AI required - uses rule-based analysis
- Instant generation
- No API costs
- Works offline
- Deterministic output
AI-Enhanced
Uses your configured AI provider
- Richer insights
- Pattern recognition
- Personalized recommendations
- Natural language course corrections
CEO Operating Log Stats
CEO Pillars: 4 (fixed)
Score range: 1-10 with A-F grades
Data points tracked: 15+ per day
Implementation time: ~4 hours
Key Takeaways
- Fixed CEO Pillars provide consistent executive-level tracking
- Slips vs Outs distinguishes failure from intentional trade-offs
- Course Corrections create actionable next-day focus
- Persisted data enables week-over-week and month-over-month trends
- Local + AI options balance cost, speed, and insight depth