Content Analytics — how this works
In the app: /content/analytics
How it works
Two fact streams: every ContentPiece (its pipeline status, approval tier, and beast CONTENT-00's aiGenerated flag) and every ScheduledPost (its platform + posted/failed/scheduled outcome). The funnel/tier/disclosure numbers are computed live from the whole ContentPiece table — there's no date window, since a piece's status IS its lifecycle position, not a time-bounded event. Per-platform postRate only counts RESOLVED outcomes (posted+failed); a still-scheduled post doesn't count for or against it.
Data source
src/lib/content/contentAnalytics.ts (pure aggregations) + src/lib/content/contentAnalyticsRepo.ts (the ContentPiece/ScheduledPost loader).
Troubleshooting
Platform numbers look thin? Only pieces that were actually scheduled via Social Command (beast N9/SOCIAL-00) produce a ScheduledPost row — a published piece with no per-platform schedule shows in the funnel but not in the platform breakdown. Real reach/engagement per platform is beast SOCIAL-05's job once platform OAuth is live.
Who can see this: admin, content