Loading…
Data-derived flags, recomputed on every open/refresh from the same reads as the freshness chips above — exactly as current as they say. Not a stored list.
One-line rollup per domain — click to open its tab. All nine domains are wired live; a dash just means that source has not finished loading, or its fetch failed — the card says which.
Impressions → clicks → checkout-started → bookings, in one in-range view tying Ads + web + bookings together.
Same durable-vs-owner split as the Revenue tab, but on NewBook EARNED (P&L) basis instead of placed.
One directional rollup across every system. Bases differ by stream and are labeled on each card (lodging = placed/tax-incl, online store = net, events = gross tickets, ranch store = gross incl. tax). NewBook Earned stays the P&L truth.
Placed basis; colors match the Sources tab. Unattributed folds into Direct. Hover for bookings + share.
Placed basis. The Unattributed share is surfaced explicitly (headline KPI) and never redistributed into other channels.
Calendar months since Jan 2026, placed basis, all lodging bookings — a fixed view that ignores the 30/60/90 toggle, so old months never intermingle with the live windows. Same channel groups and colors as above. Replaces the derived discrete-30-day periods: calendar months compare cleanly month over month, and YoY columns light up automatically once Jan 2027 data exists.
Bookings-feed channels rolled into strategic groups: OTA (Airbnb+Booking.com+VRBO/Expedia+Hipcamp) · Direct (direct/phone+online+returning) · Paid — Google · Owner/SWN (Space Weather News+Founder) · Membership · Other. Placed basis.
Each channel: bookings, gross revenue, and average per booking. Placed basis.
Net revenue per channel after commission. Not shown yet — requires real per-channel commission rates (Airbnb / Booking.com / VRBO / Hipcamp all differ). No commission rate is fabricated here.
~16 paid bookings/mo shown as counts and dollars (not share ratios), joined from the ads engine.
When reservations were booked (not stay dates). Bars = revenue, line = booking count.
Count of bookings by total (tax-excl).
Bars = total revenue.
The margin signal: cabins earn multiples of camper/RV per night.
Each cell = % of that category's units booked on that night. Green = open (sell it), red = full. The dark line marks today — left of it is what actually happened, right of it is the forward book. Weekend columns (Fri–Sun) are outlined. Occupancy = booked units ÷ capacity — plain arithmetic, no modelling.
Average booked % across the next 45 days, split Mon–Thu vs Fri–Sun. "Open unit-nights" = empty unit × nights over the next 30 days — the raw sellable inventory.
Derived straight from the occupancy numbers above. Recommendations only — change rates in the NewBook UI, never automated.
On-demand model read of the latest ad data. Advisory only — nothing is changed automatically.
Click Refresh AI Insight for a fresh read of trends, recommendations, and proposed changes from the current data.
A funnel / landing-page problem — not a bidding one.
Shopify commerce + membership (membership = a Shopify customer tag; its money flows through Shopify). Reads Shopify live at load (cached; Refresh re-fetches). Membership · Book · Merch = durable-ish OR revenue; Donations = variable; Events/Tickets = owner-dependent (ticket detail also lands on the Events tab). Top-line net sales/orders honor the 30/60/90/120 toggle; the family split & membership purchases are trailing 90d; member count is point-in-time.
Basket size & repeat rate; MEMBERSHIP discount usage as a "members actually transacting" proxy.
Watch minutes and engagement score per talk (Bunny exposes engagementScore per video GUID).
Operational surface — "are committed events selling?" — not a growth scoreboard. Event revenue is labelled owner-dependent everywhere it rolls up, so a good ticket month cannot masquerade as durable progress. Sale-date windows follow the global 30/60/90/120 toggle, same as every other tab; the last-7-days pulse (plus all-time) sits below. Source: TicketSpice rows in customer_events, rolled up daily by [OR] Events Rollup (cancel/refund/void excluded; paid vs free split by amount).
All seven stops, first sale to now — never mixed with the windowed list below. GA / VIP are real TicketSpice levels. VIP closes 10 days before each event for catering counts.
Tickets are counts of valid sales in the window; paid vs free split by amount. Revenue is gross ticket revenue.
Fixed trailing-7-day view (independent of the toggle above), plus the all-time total for scale.
Sell-through pacing as each event approaches.
Direct links to each event's NewBook Activity / TicketSpice / Shopify page.
Two lists, side by side, both windowed by the global toggle (1 yr included): the Observer Review — the SWN-side newsletter, running on Kit — and Flodesk, the OR campground list. Clicks are the headline everywhere — Apple MPP inflates opens, so opens are muted and labelled.
Flodesk Checkout is $0 — verified live, not in use, so no income exists inside the email platforms themselves. Email-driven bookings/store sales need the GA4 email channel slice (UTM-tagged links in sends) added to the funnel collector.
One continuous revenue series: Firefly history (Jan 1 – Aug 30, frozen import) + Square live (go-live Aug 30) — the top row follows the global 30/60/90/120 toggle and always shows the Firefly/Square split. Square is the source of record going forward; Firefly daily detail is archived in pos_history. Square catalog fully categorized Sep 2 using this data.
Loading POS data from Square…
Two live feeds: the GSC collector (clicks/impressions, Mondays 6:30 AM MT, ~250d history — the 30/60/90/120 toggle drives its scoreboard and charts) and, new in v1.29, the rank tracker (real Google positions for 18 target keywords vs 6 competitors, Serper · Colorado · Mondays 6:15 AM MT). The Actions panel turns both into a ranked list of site changes and blog targets — recommendations only; a human writes and publishes. Both chips turn amber past 8 days.
Waiting for the SEO domain from the data layer…