response_latency_secsecFan→chatter reply gap. Fast replies convert; slow ones ghost.
Real-time fan ↔ creator chat intelligence
Chatalyze turns raw OnlyFans chat into deterministic signals, session analytics, and triage — event-sourced on Cloudflare, no auto-send, no black box.
@chatalyze/metrics
Deterministic extractors over ordered events. No LLM required — models label later, rules measure now.
response_latency_secsecFan→chatter reply gap. Fast replies convert; slow ones ghost.
turn_countcountSpeaker switches per session. Dialogue beats monologue.
silence_pct0–1Share of wall-clock lost to long gaps. Lower is warmer.
session_aht_minminAverage handling time — session start to finish.
question_ratio0–1Questions per chatter message. Curiosity keeps turns alive.
cta_countcountCalls-to-action sent. Too few starve revenue; too many push away.
emoji_densityratioWarmth per message. A tone proxy that needs no model.
sentiment_fan0–1Fan mood per session. Rule-scored today, model-labeled in Wave 3.
hours_to_outcomehrsTime from open to paid outcome. The funnel clock.
Illustrative values. Each variable feeds VariableInsight + DecisionCard rules automatically.
live ops
Deterministic priority from read models: awaiting-reply time, lifetime spend, recency. SLA on first reply.
GET /api/sessions?sort=priority&awaiting=1rm_fanswave 3 preview
What fans actually talk about — volume, share, and 7-day trend per theme.
under the hood
Every fact is an immutable event. Read models are disposable projections — replayable anytime.
apps/apisigned, idempotent ingestpackages/adapters/ofapithe only field-mapping layerapps/dos/chat-sessionopen / rotate / close policypackages/adapters/d1-eventstoreappend-only source of truthpackages/projectionsrm_* read models in D1apps/web /livepriority inbox · Fan360 · SLA