build atlas-00598-b5w

ATLAS

Nightlife OS · Console
Insights → Cloud Run · health ◇ demo data ☾ theme

Door during service

Door list tonight identity bookings

Big spenders arriving tonight

· bookings dated tonight · lifetime tabs paid here

loading…
How this is counted
GET /v1/insights/doorlist?venueId=…&date=… · POST /v1/door/walk-in
Lifetime · every tab the guest has paid across your rooms. Track record · the guest's trust points: each kept booking or good mark adds its weight, each no-show takes its weight away. There is no fixed scale and no top. A guest with no trust events at all reads "no history"; this read sends that as 0, so a 0 is never shown as a score.

Who's coming tonight read once before doors

What tonight's crowd likes taste venues

Top artists among booked guests

· guests booked in 30 days · named only at 10 guests or more

loading…
How this is counted
GET /v1/insights/venue-blend
How strongly · how much tonight's guests with taste data like the artist, times one plus the share of them who like it at all — a room score from 0 to 2, said as a band: strong from 0.6, moderate from 0.3, weak below. An artist liked by fewer than 10 guests is withheld, never named or counted.

Who might not show bookings —

Bookings tonight most likely to miss

· risk 0–100 · past cancels, deposit, lead time

loading…
How this is counted
GET /v1/insights/no-show-risk?venueId=…&date=… (the date only when the page is pinned to one; otherwise the room's service night, printed on the card)
No-show risk is a score from 0 to 100, built from the guest's trust points, their earlier cancellations, how far ahead they booked, whether a deposit is set, and party size. Parties likely not to show are those over the risk line. Suggested deposit is what ATLAS would ask for, not what was paid.

Your guests' artists, playing nearby taste venues

Shows your crowd may go to

· next shows in the events feed · named only at 10 guests or more

loading…
How this is counted
GET /v1/insights/concerts · taste graph × events feed (Ticketmaster)

Do now the play, then what to promote

Tonight's plays venues revenue

What to do before doors

· playbook rules scoped to tonight · full playbook

loading…
How this is counted
GET /v1/insights/actions?venueId=…&scope=tonight
Impact is tagged by how it was priced: proven here (learned from this room's resolved plays), estimate (modelled, untested here), or no price possible. Tags are never summed together.

What to promote next taste venues marketing

Dated events your guests match

· next 21 days · guests with permission to contact

loading…
How this is counted
GET /v1/recommendations · POST /v1/recommendations/act · POST /v1/catalog/ingest
Entity catalog × taste graph × consent. Undated events are reported as ungrounded, never narrated.

Tables tonight release the soft table, protect the money table

What each table is likely to spend venues

Forecast spend, table by table

· forecast · tonight's bookings on each table

loading…
How this is counted
GET /v1/insights/floor-value?venueId=…&date=…
Each table's forecast is its booked guests' expected tab, weighted by each one's chance of arriving. A dot marks a table whose forecast is under its minimum.

Money tonight pace · what sold · minimums · profit

Tabs paid against a usual night revenue —

Running total against usual

· tabs paid, by hour closed · matching weekdays

loading…
How this is counted
GET /v1/insights/spend-pacing?venueId=…&date=…
Tabs paid so far, hour by hour, against the same weekday's earlier nights. The shaded band is the middle half of those nights at each hour; the dashed line is their usual. The usual close is the middle half of where those nights finished.

What sold tonight

Tabs paid by category

· itemised tab lines · this night

loading…
How this is counted
GET /v1/insights/product-mix?venueId=…&date=…
Sum of tab line amounts per category; items is the count of lines.

Table minimums: cleared or short revenue bookings

Is each minimum set right?

· tabs paid on booked tables · all nights on record

loading…
How this is counted
GET /v1/insights/minspend-realization?venueId=…
Usual tab is the middle tab paid on the table; tabs clearing it is the share of those tabs at or over the minimum. A verdict needs a set number of paid tabs on the table (said on the card); below that the row says not yet.

Money per seat per hour revenue —

Tabs paid per seat, per hour

· first to last tab close, not opening hours

loading…
How this is counted
GET /v1/insights/seat-yield?venueId=…&date=…
RevPASH = realized tab cents ÷ (seats × observed hours). The denominator is first-to-last tab close, not the hours the room was open.

Night profit, counted costs only revenue —

Tabs paid less counted costs

· every cost not counted is named below

loading…
Record free drinks
Record a staff shift
Log the act
A fee left empty is logged as not entered, never as zero; type 0 for an act that plays free. Change the fee or genres, or cancel an act, from the list below.
Acts logged · —
loading…
How this is counted
GET /v1/insights/night-pnl · POST /v1/venues/:id/comps · POST /v1/venues/:id/staffing
POST /v1/talent/engagements (needs mkt:reporting:write) · GET /v1/entities?kind=artist&q=… (the act lookup, needs mkt:entities:read) · GET /v1/talent/roi (the acts logged, for this room and night) · PATCH /v1/talent/engagements/:id (change the fee or genres, or cancel; needs mkt:reporting:write)
Logging an act sends the night as the calendar date shown and the fee as whole cents, or no fee at all when the field is left empty. A night with no act logged counts a talent fee of $0; an act logged with no fee leaves the talent fee out of the profit, named as not counted. A cancelled act is not a cost and is not listed.
Profit = tabs paid − talent fee − free drinks − staff, over the costs that were entered only; every cost left out is named on the card, never counted as $0.

Reach guests who would come

Venue intelligence venues marketing

Reach guests who'd come

· guests with permission to contact only

Guests with a taste match · any music, score 1 or more
How this is counted
POST /v1/audiences/query (a read: count and reachableCount, nothing is sent) · POST /v1/audiences (saves the group, sends nothing) · scopes mkt:audiences:read · mkt:audiences:write
Match on taste counts every guest with a taste score of 1 or more; could be reached counts those of them holding a live marketing consent grant. This page sends to nobody: a send goes to named guests the operator has seen, in the console's review-and-confirm flow, never to a filter from a button.

Guests who they are, what they spend

What your guests want to hear taste venues

Most-followed artists and genres

· every guest with taste data · named only at 10 guests or more

loading…
How this is counted
GET /v1/insights/demand

Guests we can name identity

How much spend has a name

· every guest and tab on record

loading…
How this is counted
GET /v1/insights/identity-coverage
Tabs paid by unnamed guests = tabs with no matched guest ÷ all tabs. Guests matched = guests matched to a profile ÷ all guests. Guests we can contact = guests with a contact we may use ÷ all guests.

Big spenders gone quiet revenue marketing

Regulars worth a call

· lifetime tabs paid · days since last visit

loading…
How this is counted
GET /v1/insights/at-risk
Guests in the top quarter of lifetime spend whose last visit is longer ago than the quiet period on the card.
Last came = the last night the guest's booking was attended (seated or paid). Guests with a booking ahead are left out. Call = the guest holds a live permission to contact for a win-back; a guest without one is listed but not offered a call.

Crews that bring people crews identity

Groups that book and bring first-timers

· crew bookings · group spend · all time

loading…
How this is counted
GET /v1/insights/connectors
Crews are ranked by one weighted score over their bookings, their group's spend and the first-timers they brought; the face says only the rank.

Lifetime value by first channel marketing revenue

Which channel brings lasting guests

· channel of first booking · lifetime tabs paid

loading…
How this is counted
GET /v1/insights/attribution-ltv
Grew to = lifetime tabs ÷ first-booking tabs, for guests whose first booking came through that channel.

Taste in the room what the crowd likes, and who spends more

Taste in the room taste revenue

What the crowd likes, by spend

· guests with taste data · 90 settled nights · floors per group

loading…
How this is counted
GET /v1/insights/taste-room?venueId=…&days=90 (windows 30, 90 or 180 only)
Share = guests whose strongest liking is that taste ÷ guests with taste data. Spend per head = tabs paid ÷ heads, over tabbed bookings only.

Acts who to book, what they earned

Acts your guests follow

Demand you have not booked

· named only at 10 fans or more · acts never booked here

loading…
How this is counted
GET /v1/talent/who-to-book

What each act earned

Act nights against plain nights

· same weekday, plain nights before · tabs paid only

loading…
How this is counted
GET /v1/talent/roi
Extra = act night settled tabs − usual (median of plain same-weekday nights in the window). Left = extra − fee. Door and ticket revenue is excluded.

Promoters what each list left after the cut

Promoter lists marketing revenue

What each list left after the cut

· tabs paid on arrived tables · door money not counted

loading…
How this is counted
GET /v1/attribution/revenue · GET /v1/insights/promoter-show-rate?days=90
Left after cut = tabs paid by the list's arrivals − the promoter's cut, and is not known until both are. An arrival is one party (one booking seated), whatever its size. Revenue per party is the venue's tabs paid ÷ parties arrived — it is not the promoter's fee. The promoter's cut prints the deal beside it: a rate per party × the parties it covers, or a share of what those parties paid. Parties that came = bookings the door recorded (anyone on the booking scanned, or the table seated) ÷ bookings whose night is over, over the last 90 days; under 10 bookings it is too few to say, not a rate. Do is the console's word for the list: keep, renegotiate, review the cut, record the deal, or nothing to judge yet. The window is the one the server answers with: its last night is the last settled night, never tonight.

Rooms each against its own usual

Rooms against their own usual venues revenue

Which room is up, which down

· settled nights · never room against room

loading…
How this is counted
GET /v1/insights/portfolio · tenant-wide by design
Each room against its own usual for the same weekday over the window before, never against each other. A room is ranked only once enough of its nights have scored; the rest are listed with the reason. The window ends on the last night every room has settled — tonight is never in it.

Plays and results what we expected, what came in

Plays: expected vs what came in revenue marketing

Did each play pay off?

· every room · plays whose result is in

loading…
How this is counted
GET /v1/insights/actions/log
Expected is ATLAS's estimate when the play ran; a kind of play that could never be priced says "no price possible". Came in is the closed tab observed afterwards, never estimated. The two are never subtracted: expected counts every play, came in only plays with a result. The track record covers every room together.

Venue scores, 0–100 identity bookings

Retention, yield and more

· each score names what it covers

loading…
How this is counted
GET /v1/insights/outcomes-summary
A score the data cannot support is not scored, never 0.

Second opinion · Beam theirs beside ours, never averaged

What moves your crowd · ours vs Beam venues bookings

Outside events that move covers

· only nightly cover counts leave ATLAS

Open nights
Closed night, no bookingssent as 0 covers
Open night, no bookingsleft missing, never 0
loading…
loading…

Outside events, category by category venues

Our measurement, per kind of event

· matching nights with and without the event

loading…
How this is counted
GET /v1/insights/beam/reconciliation?venueId=… · POST /v1/insights/beam/publish · PUT /v1/venues/:id/open-weekdays · GET /v1/insights/demand-decomposition?venueId=…
Open nights are weekdays of the service night, read on the stored calendar date. Only totals leave ATLAS: the date and total covers for each settled night.
Strength is the gap in standard errors; the bar rises as the sample shrinks. Only a clear effect (enough nights, and beyond the noise) is priced; a kind of event that is not measurably different gets no dollar figure. Beam's verdict carries its p-value.

PredictHQ demand forecast their number for covers, for days that have not happened

Covers PredictHQ forecasts venues bookings

A trained model of this room’s covers

· settled nights only · not the venue score · not Beam

loading…
How this is counted
GET /v1/insights/forecasts?venueId=… · POST /v1/insights/forecasts/publish
What leaves ATLAS is the date and the total covers of each settled night, plus a closed weekday with no bookings as 0. An open night with nothing recorded is left out. A night still in progress is not uploaded.
PredictHQ trains on that series and returns a cover count for each of the next 7 days, with the events it says are behind the day when the subscription includes explainability. Accuracy is shown only once they send it. This is not Beam’s correlation and not the 0–100 venue score.
System · platform totals & the seven data sets (plumbing — proof, not tonight's decisions)
ATLAS OS kernel — mounting… ⌘K

Platform totals

The seven data sets same sets, same colours as Outcomes

ConnectorsSpotify · quiz · IG→ Evidence logappend-only→ Guest affinitydecay · mutes→ Crew tasteshared + history→ Demand & recstaste-ranked tables→ Bookingidempotent hold→confirm→ Deposit · split-payStripe→ Tab / tillSquare · Lightspeed→ Loyalty · winbackKlaviyo One graph underneath. Every set joins on guest, booking and venue — spend closes the loop back into taste as new evidence.
ATLAS primitive contract evidence is the only graph write 403 on missing scope… pooled multi-tenant · RLS-ready