Your four callouts, addressed. Dollar sign in front, real public hours, honest call count, and a rating that fans actually give. This is a mockup — nothing here is wired yet. Approve it and I implement exactly this.
What your studio looks like after
WI✎
Will's studio
joinpayphone.com/will
$240
Upcoming calls
3 scheduled calls · listed below
$0
Earned today
Paid the second each call ends
0
Video calls · all time
Same number fans see on your page
New
Rating
Shows a ★ average after your first rated call
● Live calls new
What a fan pays to jump on when you're live, and the longest each caller gets. Right now the product silently charges your first scheduled price. This makes it yours to set.
Price to jump on$Max length
Fans on your page while you're live see: Jump on now · $40 · up to 5 min. When time's up the next caller connects.
Scheduled calls
Set each length and price fans can book inside your hours. This is what fans see. You keep 80%.
min·$
min·$
min·$
Hours fans can book you new
Fans can only book inside these windows. A booked time is a real appointment: it's paid, it lands in your Scheduled calls, and you pick up at that time. Going live is separate — do that whenever you want.
S
M
T
W
T
F
S
From
to
Fans see: Takes calls Tue & Thu, 7:00–10:00 PM — and every bookable time comes from this window instead of a fixed 7–9.
Scheduled calls new
3 · $240 booked
TR
Tasha R.
Tonight 7:00 PM · 10 min · paid, waiting on you
you keep $80
DL
Devon L.
Tonight 7:15 PM · 20 min · paid, waiting on you
you keep $64
AC
Ava C.
Thu 8:30 PM · 5 min · paid, waiting on you
you keep $20
The 3 up top are these 3 rows; $240 is their sum. These are appointments — the fan already paid, a missed call refunds them and hits your rating. Money lands the second each call ends.
Tonight, done
JD
Jordan D.
10 min · 7:20 PM · ⏱ 9:58
★★★★★"can't believe you actually picked up"
+$80
MK
Mia K.
5 min · 7:05 PM · ⏱ 5:00
★★★★★no note
+$20
↑ sample rows, shown so you can see the rating + note in place. Your real "done" list is empty because I cleared your test bookings last night.
How the rating gets there
The fan's screen, when the call ends
How was your call with Will?
★★★★★
Stars are public as an average. The note is private to Will — fan comments never appear on his page.
Why a rating matters here. It's the entire trust engine of a "they actually pick up" product — a fan paying $80 to a name they've never called needs proof other fans got what they paid for. The star's ★ average and call count become the social proof on their public page, and a low average is your early-warning signal for someone who takes money and no-shows or phones it in.
What's public: only the ★ average and call count on the star's page (★4.9 · 218 calls). What's private: the fan's note — it goes to the star alone, in the studio's "done" rows, like a message slipped after the call. Nothing a fan types is ever published. What starts it: the fan's wrap screen after every completed call — skippable, never blocks payout.
Your callouts — before → after
✓
No way to set pricing on Live calls
was "Jump on now" silently charged whatever scheduled row was selected; its minutes became the capnow a Live calls card: one jump-on price, one max length, set by you
Live and Scheduled are different products with different prices. The star sets both; the jump-on button reads only the live price, never a scheduled row.
✓
Studio had no concept of upcoming calls or upcoming earnings
was stats all backward-looking; a bare "up next" list with no money on itnow "3 scheduled calls · $240 booked" leads the stats + the Scheduled calls list with what you keep per call
The first thing a star should see is what's already booked and what it pays. Forward money now leads the page; each upcoming row shows the fan, the time, and your 80% cut.
✓
Dollar sign was behind the price
was 25 $now $ 25
A trailing $ after the number field. Moved to a prefix inside the field group, so it reads like money everywhere else on the site.
✓
"Video calls: 0" after you'd done a ton
was counted live bookings; drifts from your public pagenow one all-time count, same on both
The 0 itself was me — I wiped your 15 test bookings in last night's cleanup. But the studio was also counting a different number than your public page, so they could disagree. Both now read one source. Real completed calls increment it.
✓
No way to set public hours
was "Not set yet" text, no control, slots hardcoded 7–9 PMnow day + window picker that drives real booking times
Hours existed only as display text with nothing to edit it, and the fan's booking slots ignored it. The new card sets it and actually feeds the slot generation.
✓
No way to rate anyone
was rating column existed, nothing ever wrote to it (4.9s were fake seed data)now fan rates on the wrap screen → real ★ average
Built the missing half: a post-call rating on the fan's side, an average on the star's public page + studio, and the note surfaced in the done row.
The model, locked per your correction
Two ways a call happens. No third. Live — you open your line whenever you want; paying fans jump straight on. Scheduled — a fan books and pays for a time inside your hours. That time is an appointment: it sits in your Scheduled calls with its money, you pick up at that time, and a miss refunds the fan and hits your rating. There is no "usually on."
Admin sees all of it (in the rehaul mockups, next): a platform-wide Schedule — every booked call across every star with time, fan, and dollar value — and an Earnings view: total booked, completed, our 20%, star payouts. Anything a star or fan sees about money or schedule, the admin panel sees rolled up.
Still your call: rating is one-directional (fan rates star, like Cameo) — say the word if you want it different. And your history sits truthfully at zero after my test-data wipe; I can re-seed realistic completed calls for demos if you want the studio to look alive.