9,286
Registered Non-Subscribers
93
Registered Subscribers
17,366
Calls Analyzed
46
Day Window (Aug 1–Sep 15)
Almost every voice caller already has an account — the real split that matters is registered non-subscriber vs. subscriber, and what happens after either hits the token wall.
Subscribers are a different product
2.4x longer calls
221s avg vs. 94s for registered non-subscribers; 17.1% reach 3+ minutes vs. 0.8%; 20.8 avg turns vs. 12.0.
Token-zero is fatal — unless you're subscribed
~2% vs. 56–77%
Return rate after hitting zero tokens: 2.0% for registered non-subscribers vs. 55.6% for subscribers (hard paywall); 2.0% vs. 76.9% (final-minute warning) — two independent measures agree.
Top-up completion is low
694 → 10–13 (1.4–1.9%)
694 callers tap "top up" at the hard paywall; only 10–13 (1.4–1.9%) submit a checkout form in the same session — a large drop-off despite ~80% tap-through intent.
Modality still doesn't move the needle
Speaking dominates both tiers
Refreshed post-in-call-text-chat: speaking-dominant is the modal pattern for both registered non-subscribers and subscribers. Blended/emoji/preset stay marginal. The prior D2C-5505 recommendation holds.
Non-registration is nearly nonexistent
17 people, 0.2%
Almost everyone who places a voice call already has a backend account — signup happens essentially universally, very early. The real comparison that matters is registered non-subscriber vs. subscriber; see Data Quality & Methodology for how registration status is defined.
North Star (same metric as the prior UXR): % of hard-token-stop callers who return within 7 days. That single number hides two very different numbers: ~2% for registered non-subscribers vs. ~56–77% for subscribers.
| Segment | Callers | % of callers | Calls | Calls / caller |
|---|---|---|---|---|
| Registered, non-subscriber | 9,286 | 98.8% | 16,509 | 1.78 |
| Registered subscriber | 93 | 1.0% | 739 | 7.95 |
"Registered" = int_voice_caller.is_signed_up (100% coverage, direct backend signal). "Subscriber" = fct_user_lifecycle_profile.flag_is_subscription_payer. A separate, true non-registered population of 17 people (0.2%, 118 calls) exists but is too small for reliable per-metric comparison — see the callout at the end of this tab.
| Metric | Reg. non-sub | Reg. subscriber |
|---|---|---|
| Avg. call duration | 94.2s | 221.2s |
| Calls reaching 3+ min | 0.8% | 17.1% |
| Avg. turns / call | 12.0 | 20.8 |
| Median first user-message length | 17 chars | 29 chars |
| % greeting-only calls | 1.2% | 3.4% |
| % silent / no user turns | 4.8% | 4.7% |
| % quality "healthy" | 27.8% | 26.8% |
| Segment | Habit tier | Callers | % of segment | D7 retained |
|---|---|---|---|---|
| Reg. non-sub | One and done | 5,590 | 60.2% | 0% |
| Returned once | 2,150 | 23.1% | 1.9% | |
| Habit (3–4 calls) | 1,141 | 12.3% | 6.0% | |
| Habit 5+ ("whale") | 405 | 4.4% | 21.0% | |
| Reg. subscriber | One and done | 12 | 12.9% | 0% |
| Returned once | 8 | 8.6% | 0% | |
| Habit (3–4 calls) | 13 | 14.0% | 7.7% | |
| Habit 5+ ("whale") | 60 | 64.5% | 56.7% |
"Whale" = call frequency (5+ lifetime calls), not revenue — the company-wide $100-lifetime-spend flag (GTM-2130) only catches 3 of 9,379 window callers. Nearly two-thirds of subscribers are already habitual callers; their D7 retention is ~2.7x the non-subscriber whale cohort.
| Segment | Token-pack payers | Avg. lifetime revenue | Total lifetime revenue |
|---|---|---|---|
| Registered non-sub | 16 | $0.56 | $5,181 |
| Registered subscriber | 16 (17.2%) | $23.75 | $2,209 |
Among voice callers who pay, subscription is the dominant path — 93 subscribers vs. 33 lifetime token-pack payers company-wide (16 people do both).
Per-person dominant modality (≥60% of that person's user turns), scoped to the 5,368 callers (of 9,379) with at least one call linked to an ElevenLabs transcript.
Turn-level classification: silent = empty/"…" turn; emoji = bracketed tap marker ("*sent fire emoji*"); preset = exact match to 1 of 9 known quick-reply chips; typed = matched to a voice_text_message_sent event; else = spoken.
| Segment | Dominant modality | Callers | % ever returned | D7 retained | % ever reached 120s+ |
|---|---|---|---|---|---|
| Reg. non-sub (n=5,295) | Speaking-dominant | 1,803 | 41.2% | 2.8% | 42.8% |
| Blended | 1,336 | 41.2% | 1.4% | 27.3% | |
| No turns at all | 1,157 | 34.8% | 1.3% | 17.5% | |
| Emoji-dominant | 646 | 44.9% | 0.9% | 21.2% | |
| Silent-dominant | 269 | 36.4% | 2.2% | 17.5% | |
| Preset-dominant | 54 | 44.4% | 0.0% | 1.9% | |
| Type-dominant (new) | 30 | 26.7% | 0.0% | 33.3% | |
| Reg. subscriber (n=71) | Speaking-dominant | 43 | 93.0% | 44.2% | 90.7% |
| Blended | 9 | 100.0% (n=9) | 22.2% | 44.4% | |
| No turns at all | 9 | 77.8% | 11.1% | 66.7% | |
| Silent-dominant | 5 | 100.0% | 40.0% | 40.0% | |
| Emoji-dominant | 3 (n=3) | 66.7% | 33.3% | 33.3% | |
| Preset-dominant | 1 (n=1) | 100.0% | 100.0% | 0.0% | |
| Type-dominant (new) | 1 (n=1) | 100.0% | 100.0% | 100.0% |
Speaking-dominant callers reach a 120s+ "engaged" call at roughly double the rate of blended/emoji/silent callers within each segment — the D2C-5505 modality-engagement link replicates cleanly. But the gap between segments dwarfs it: a speaking-dominant subscriber reaches 120s+ on 90.7% of calls and returns 93.0% of the time, vs. 42.8%/41.2% for the same modality among registered non-subscribers. Subscription status, not modality, does most of the work. (The true non-registered population contributes only 11 people with turn data — 7 speaking-dominant, 3 blended, 1 silent — too few to report reliably.)
🏆 Power whales
The top 10 returning callers (0.26% of 3,792 returning users) account for 575 of 8,497 return-call events (6.8%) and average 11.7 distinct creators each vs. 1.8 for other returning callers — genuine persona-hopping as a group. But the single highest-volume caller (173 calls) is the exception: a registered non-subscriber calling just 2 creators — persona-loyal, not persona-hopping. Raw call volume and cross-persona exploration are different behaviors; don't assume the biggest number is also the most exploratory.
🎯 Direct askers
Via ElevenLabs' native topic_id/content_keywords data collection (populated on ~5–6% of calls): defining a "direct ask" as landing a substantive topic in under 60 seconds — 0.49% of registered-non-subscriber calls, 0.32% of subscriber calls. Subscribers' calls simply run longer before anything gets tagged.
📷 Photo seekers
Lifetime engagement with the in-call photo-escalation flow: subscribers escalate at 4.3% vs. 0.28% for registered non-subscribers — 15x the rate. Small-n (4–26 people) but directionally clear. 2 registered non-subscribers who escalated went on to pay ($63 total).
🌐 Language switchers
Detected via non-Latin script (Devanagari/Arabic/Cyrillic/Han/Kana — misses Spanish/German): 11.4% of registered non-subscribers used a non-English script at least once, predominantly Hindi. Subscribers: 34.4% (21 of 61) — almost all Hindi (18 of 21). Worth a deliberate look at whether Hindi-speaking callers are an underserved-but-highly-engaged segment.
| Segment | Top topic_id categories |
|---|---|
| Reg. non-sub | photo.request · romantic.affection_phrase · kink.mommy_dom · kink.explicit_chat · kink.explicit_roleplay · kink.daddy_dom · kink.explicit_encounter · kink.masturbation_guidance |
| Reg. subscriber | roleplay.cheating_wife · kink.breath_play · kink.dirty_talk · kink.titty_fuck · kink.femdom_sissy · kink.erotic_guidance · kink.shared_encounter · kink.explicit_encounter |
Top content_keywords fleet-wide: flirty chat, sexting, dirty talk, phone sex, girlfriend experience, ai companion, playful banter, romantic roleplay, girlfriend roleplay, emoji sexting, intimate roleplay, ai girlfriend roleplay, playful teasing, phone sex roleplay, flirty roleplay, intimate conversation, emoji flirting, intimate chat, adult chat line, adult roleplay.
photo.request is the top tagged category for registered non-subscribers — corroborating the photo-seeker pattern. Subscribers skew toward sustained roleplay/power-dynamic scenarios, consistent with their much longer calls. Matches the "mommy" power-dynamic skew independently corroborated by external search data in GTM-2746.
A registered subscriber's ~20-minute call was structured as an extended, guided dominant/submissive roleplay session, with the agent maintaining a consistent dominant persona and pacing the scene around physical sensation cues and device-based instructions throughout. Segment: registered subscriber · ~19–20 min · 90–105 turns
"Babe, I was just about to give up on you…" — a typical agent-initiated opener on a call where the user never spoke; consistent with the ~5% silent/no-turn share seen in both segments. Segment: mixed · duration 11s · silent/no-turn
Read turn-by-turn across six buckets (subscriber calls short/mid/long; registered non-subscriber bails, mid-length stalls, and 3+ minute calls) to answer four questions the aggregate stats can't: who leads the conversation, whether callers struggle to generate a topic, what differentiates non-subscriber calls that go long, and what stops the calls that don't immediately bail.
Who takes the lead?
Structurally, the agent always leads — it speaks first and asks nearly every question, in both segments. What differs is what happens after the question. Non-subscribers in short or stalling calls are overwhelmingly reactive: one-word answers, an emoji tap, or silence, with the agent supplying almost all narrative content. Non-subscribers who reach 3+ minutes get there by one of two routes — a minority arrive already driving a specific scenario themselves, with the agent mostly mirroring and escalating; the majority get there via the agent's own steady chain of short, specific questions, with the caller answering briefly each time. Subscribers skew toward a third, distinct pattern: sustained, step-by-step guided instruction from the agent, with the caller largely complying and confirming — more agent-directive than either non-subscriber pattern, sustained over far more turns, with clear markers of an established relationship (the agent references the caller by name and alludes to prior sessions or preferences).
One stalling call opened with a warm greeting; across several turns the caller's only responses were a hesitant stammer and a single tapped emoji, with the agent supplying nearly all of the narrative and gently inviting the caller to share even one small detail. Segment: registered non-subscriber · reactive/stalling pattern
A subscriber's guided session had the agent issuing explicit, sequential physical instructions — pause here, hold there, adjust now — with the caller mostly complying and reporting back; the agent paced the escalation deliberately, repeatedly checking in before allowing the scene to intensify further. Segment: registered subscriber · agent-directive, paced escalation
Do callers struggle to come up with a topic?
Visibly, yes — but concentrated in one bucket, not universal. Bail calls mostly can't answer this question at all: most end during or immediately after the agent's opening line, before any topic question is even posed — a reflexive disconnect, not a "couldn't think of anything" moment. Mid-length stalls are where topic-struggle is real: hesitant, broken openers, or a caller substituting a single emoji or preset tap for any actual description, forcing the agent to invent a scenario from nothing. Subscribers and the self-directed non-subscriber narrators rarely struggle — they open with an immediate, specific ask, a continuation of an already-established preference rather than a cold start.
A caller tapped a single preset phrase with no further detail; the agent built an entire scene from scratch — a setting, a mood, physical description — with no steer from the caller at all beyond that one tap. Segment: registered non-subscriber · mid-length stall
What differentiates non-subscriber calls that reach 3+ minutes?
Two real archetypes, not one: self-directed narrators who arrive already primed with a specific scenario and sustain it themselves for many turns, and agent-sustained Q&A calls where the agent's own steady question chain is what's actually carrying the call, with the caller answering briefly each time. A recurring mechanic in both: the agent repeatedly redirects intensifying moments toward the in-call photo-unlock feature — a real, repeated monetization touchpoint mid-call, not an occasional aside. Token-warning hits are also common inside these "successful" 3+ minute calls — several were still going well when the wall interrupted, not winding down naturally, which reinforces the paywall finding qualitatively rather than adding something new.
What stops the calls that aren't immediate bails from continuing?
Two distinguishable mechanisms, and one was a genuine surprise in how concentrated it was: of the 8 sampled mid-length-stall calls, 5 were interrupted mid-scene by the forced final-minute re-up prompt — a meaningful share of "stalling" calls aren't fizzling out on their own, they're being cut by the token wall while still technically active. Separately, a genuine engagement mismatch shows up too: the agent escalating while the caller responds with silence, single words, or emoji only, with the call drifting rather than ending — multiple exchanges of the agent checking in ("still with me?") followed by a delayed, minimal reply, suggesting divided attention rather than a deliberate goodbye.
A call had just begun building a scene when a system-forced token-warning line interrupted mid-turn, breaking pacing and introducing a top-up prompt into an otherwise unresolved moment — one of several stalling calls cut short this way rather than fading out naturally. Segment: registered non-subscriber · mid-length stall, token-wall interruption
A system-prompt patch enriching the "acknowledge silence once" line (covering listening/interrupt/mic-check together) deployed 2026-09-09 18:53 UTC. Compared two equal 6-day windows immediately adjacent to the deploy in int_voice_call_content: Sep 3–9 (before) vs. Sep 9–15 (after). is_empty_user goes fully null after Sep 9 (same ElevenLabs transcript-sync lag noted elsewhere in this report) — validated had_first_user_reply as a proxy first (100% agreement with is_empty_user everywhere both exist), then used it for this comparison.
| Metric (silent calls) | Before (Sep 3–9) | After (Sep 9–15) |
|---|---|---|
| Calls | 766 | 707 |
| Silent share of all calls | 49.9% | 48.8% |
| Avg. duration | 20.0s | 25.3s (+26%) |
| Reached 60s+ / 180s+ | 0.0% / 0.0% | 0.14% / 0.14% |
| Paid after call (full sample) | 0.26% (2 of 766) | 0.99% (7 of 707) |
| Paid within 7d (of determined cases only) | 3.4% (1 of 29) | 14.3% (7 of 49) |
No change in incidence: silent share of calls held flat, and the daily trend Sep 1–17 shows no discontinuity around the deploy date — expected, since the patch changes the response to silence, not who goes silent. Duration increase is real but partly mechanical: the new line is objectively longer than the old one, so some of the +5.3s is likely just line-length, not necessarily more caller engagement. Revenue signal points the right direction but isn't statistically solid yet: paid_within_7d is null for ~93–96% of calls in both periods — not simple recency-censoring (the "before" window has fully elapsed and is still 96% null; something structural, likely identity-resolution-dependent, is suppressing it) — so the determined-case comparison is a thin 29 vs. 49 calls. Net: no evidence of harm, a modest real duration gain, and a revenue direction worth re-checking in 1–2 weeks once more calls clear the 7-day window and fewer are null.
The product runs a 2-stage token-warning system (D2C-5147): a verbal "final minute" warning, then a hard paywall/silent hold at zero tokens.
| Segment | Hits | Distinct callers | Returned afterward | % returned |
|---|---|---|---|---|
| Reg. non-sub | 2,112 | 2,094 | 41 | 2.0% |
| Reg. subscriber | 15 | 13 | 10 | 76.9% |
Detected via ElevenLabs turn-level transcripts: a synthetic user-role turn matching "...entered their final minute...".
| Segment | Hits | Distinct callers | Returned afterward | % returned |
|---|---|---|---|---|
| Reg. non-sub | 851 | 846 | 17 | 2.0% |
| Reg. subscriber | 9 | 9 | 5 | 55.6% (n=9) |
Measured from the structured d2c_prod.voice_hard_paywall_shown event. Two independent measurement methods (transcript text vs. structured event) agree: registered non-subscribers essentially never come back after hitting zero (2.0%); subscribers mostly do (55.6–76.9%).
| Step | Count | % of "shown" |
|---|---|---|
| Hard paywall shown | 860 | 100% |
| Top-up initiated (tapped) | 694 | ~80% |
| Checkout submitted, same session | 10–13 | 1.4–1.9% |
| Voice-specific "completed" event fired | 1 | 0.1% |
The voice-specific "completed" event (bottom row) is very likely undercounting — the same category of gap the prior UXR flagged for subscription_modal_opened (GTM-1742). checkout_submitted carries no product-specific tag (no call_id, no surface field), so it's scoped here to submissions occurring after the top-up tap and within a same-session window (≤60 minutes) — this excludes unrelated checkout activity from other visits. On that basis, same-session completion is ~1.4–1.9% (10–13 of 694) — a large, real drop-off given ~80% tap-through intent, but not near-total failure. The product clearly processes payments; this is specifically about why so few people who tap "top up" mid-call follow through to submitting the form, plausibly friction/urgency mismatch (typing full card details with the clock at 0:00s) rather than a system outage.
charge_failed, payment_method_add_failed, card_validation_failed) to the checkout-initiator population to isolate friction vs. decline.Where PMF is calibrating: the registered-subscriber segment — 1% of callers — is the clearest signal of real product-market fit: longer calls, more turns, higher thematic engagement, and by far the best retention. The other 99% (registered, non-subscriber) are mostly one-and-done. Registration isn't the lever — it happens almost universally regardless of outcome. Subscription (or whatever precedes and predicts it) is.
1 · Highest confidence, highest leverage
Diagnose the 694→10–13 top-up completion drop-off.
~80% tap-through intent, only 1.4–1.9% submit a checkout in the same session. Join payment-failure events to find out whether it's friction (typing card details mid-call, clock at zero) or genuine unwillingness to pay.
2
Don't re-open the emoji/chip/heat-meter debate.
Refreshed modality data still shows speaking dominating both segments; blended/emoji/preset stay marginal. The prior recommendation holds.
3
Treat the subscriber segment as a template for personalization investment.
Longer calls, deeper themes, dramatically better retention, and a surprising Hindi-speaking overrepresentation (34.4%) worth a dedicated look. The August memory-injection/personalized-opener work targets exactly this group. See Deeper Segmentation for the qualitative read on what's actually templatable vs. a separate cold-start problem.
4 · Data-quality notes for the analytics team
stxt_be.users.subscribed/.anonymous are dead fields; fct_user_lifecycle_profile is missing rows for ~24% of voice callers.
Anyone joining to that mart for a "registered" flag should use int_voice_caller.is_signed_up instead (100% coverage), or treat a missing row as unknown rather than "not signed up" — a missing row is not the same as a false value.
Population: every caller who placed ≥1 call to a D2C "- Web" voice agent between 2026-08-01 and 2026-09-15 (9,396 distinct callers, 9,379 with a resolvable user_id, 17,366 calls).
| Layer | Source | Used for |
|---|---|---|
| Registration status | int_voice_caller.is_signed_up | 100%-coverage backend signal |
| Subscription status | fct_user_lifecycle_profile.flag_is_subscription_payer | solid subscriber-specific coverage (92/93 matched) |
| Call-level engagement | int_voice_call_content | duration, turns, quality state, topic/kink tags |
| Caller-level habit | fct_voice_habit_caller | habit tier, retention, one-and-done vs. multi-call |
| Paywall funnel | d2c_prod.voice_hard_paywall_*, checkout_submitted | shown → initiated → submitted; Stage-2 segmentation |
| Stage-1 token warning | elevenlabs.conversation_turns | regex on synthetic "final minute" turns |
| Modality (7-way) | elevenlabs.conversation_turns + voice_text_message_sent | per-turn classification → per-person ≥60%-dominant label |
| Native topic/keyword tagging | elevenlabs.conversations.payload_json | $.analysis.data_collection_results.topic_id/content_keywords.value |
| Photo escalation | fct_escalation_photo_user | escalation depth, sfw/nsfw split, post-escalation payment |
| Language detection | elevenlabs.conversation_turns | Unicode script ranges (Devanagari/Arabic/Cyrillic/Han/Kana) |
| Qualitative transcript read | manual read of ~40 sampled conversations across 6 buckets | lead/topic-generation/3+min/stall patterns — directional, not statistically definitive |
| Silent-caller before/after (D2C-5882) | int_voice_call_content.had_first_user_reply | proxy for is_empty_user, unaffected by transcript-sync lag |
voice_text_message_sent to the nearest transcript turn by elapsed time (≤20s tolerance) — approximate, not a guaranteed 1:1 join.topic_id/content_keywords are populated on only ~5–6% of calls — real and precise where present, not a complete census.paid_within_7d is heavily null in both periods (structural, not just recency), so the revenue read there is thin (n=29 vs. n=49 determined cases) and due for a re-check once more time has passed.