RevenuePilotby Foxes Technology
Read-only firstCreate account
The operating view

Pace, capacity and price—on the departure they belong to.

The revenue calendar is where a portfolio stops being a spreadsheet and becomes a set of specific departures. Each row shows how a departure is filling, what capacity remains and what price is actually resolved for it—or states plainly that an exact price could not be resolved.

  • Tenant and row-level-security scoped
  • Exact identity or inventory-only
  • A review surface, never an execution surface
What a departure row carries
  • 01
    Pace and capacityBookings taken against capacity remaining for that exact departure.
  • 02
    Resolved priceThe exact price for the verified identity, or an inventory-only state.
  • 03
    Observation freshnessWhen the observation was recorded, tracked apart from content change.
  • 04
    Economics coverageContribution where costs are verified, a flagged gap where they are not.
What the calendar shows

Three questions, answered on the same row

A revenue review fails when pace lives in one report, capacity in another and price in a third. The calendar puts them on the departure so the comparison is direct.

Booking pace

How a specific departure is filling, derived from reconciled bookings and cancellations rather than from a headline total across a product.

  • Departure-level, not product-level
  • Built from reconciled source data
  • Cancellations reconciled, not ignored

Remaining capacity

What is still sellable on that departure, so a pace reading is interpreted against the seats actually left rather than against an abstract target.

  • Capacity read from your source system
  • Paired with pace on the same row
  • Portfolio-wide, filterable by departure window

Price and economics

The price resolved for that exact departure identity, and—where verified economics exist—the contribution view that shows whether the price is actually earning.

  • Exact resolved price or an inventory-only state
  • Contribution-aware where costs are verified
  • Missing cost coverage flagged, never assumed
Identity before price

An exact price, or an honest gap. There is no from-price fallback.

Showing an approximate price next to a real capacity number is how a review reaches a confident wrong conclusion. Exact departure pricing requires verified tour, option, date, time, currency and version identity—if that identity cannot be resolved, the row is shown as inventory-only.

How a calendar row resolves
Row stateWhat it meansWhat it supports
Exact pricedTour, option, date, time, currency and version identity all verifiedPrice review, and contribution review where economics are verified
Inventory-onlyPace and capacity are known; exact price identity could not be resolvedCapacity and pace review only—no price conclusion is offered
Cost coverage missingThe price resolved, but verified variable cost or commission is absentPrice review with the economics gap shown, not filled with a default
Stale observationThe observation exists but its freshness is behind your sourceReview with the staleness visible, so it is weighted accordingly
The review rhythm

How a revenue manager works the calendar

The calendar is built for a repeatable review, not for browsing. Each pass ends with either a decision to take elsewhere in the product or a data gap worth closing.

  1. Set the departure window

    Start with the departures close enough that a change still matters and far enough out that a change can still be sold. The window is the frame for everything that follows.

  2. Read pace against remaining capacity

    A departure filling faster than its cohort with capacity still open reads differently from one filling slowly with most seats gone. Both numbers sit on the same row so the comparison needs no reconciliation by hand.

  3. Check price identity

    Confirm the row is exact-priced before drawing a price conclusion. Inventory-only rows are still useful for capacity work; they are simply not a basis for a price judgement.

  4. Look at contribution, not just price

    Where verified variable cost and channel commission exist, review the departure on contribution. Where cost coverage is missing, the gap is flagged so it is treated as unknown rather than as zero.

  5. Weigh the freshness of what you are reading

    Observation freshness is tracked separately from content change, so a source that has stopped updating is visible as stale rather than passing as current.

  6. Close the loop elsewhere

    The calendar surfaces the picture. Acting on it happens through the reviewable decision queue with its guardrails and receipts—nothing on the calendar changes a price by itself.

Correctness that has to hold

Three things a departure view gets wrong when it is built casually

Timezones, staleness and tenancy are unglamorous. They are also the three ways a departure calendar quietly misleads the person reading it.

Time

A departure is never ambiguous across regions

Departure times are stored with an explicit timezone and a UTC instant. A 9:00 departure means one moment, whichever region the operator, the analyst or the source system is sitting in, and whichever way a browser locale would otherwise render it.

  • Explicit timezone stored with every departure
  • A UTC instant stored alongside it
  • No inference from viewer locale
Freshness

Stale is a state, not a silence

Observations of inventory and price are recorded with freshness tracked separately from content change. A source that keeps returning the same values is distinguishable from a source that has stopped answering—so an unchanged row is not mistaken for a confirmed one.

  • Freshness tracked apart from content change
  • A stale source is visible as stale
  • Unchanged and unreachable are different states
Tenancy

A workspace only ever sees its own departures

The calendar and the portfolio metrics behind it are tenant and row-level-security scoped in the database, not filtered in the interface. Scoping that lives in a query is scoping that survives an export, an API read and a support session.

  • Row-level security enforced at the data layer
  • Scoping is not a presentation-layer filter
  • The same boundary applies to every read path
Operating posture

What the calendar deliberately will not do

This surface is for reading and reviewing. Everything that changes a price lives behind a different set of controls, on purpose.

Read
The calendar's only mode of operation
Exact
Identity required before a price is shown
Flagged
Cost coverage that is missing rather than assumed
Scoped
Every row, to the workspace that owns it
Common questions

Questions revenue managers ask about the calendar

Why do some departures show no price?

Because exact departure pricing requires verified tour, option, date, time, currency and version identity. When that identity cannot be resolved, the row is shown as inventory-only. There is no from-price fallback, so a price you see is a price that was actually resolved for that departure.

How do I know whether what I am looking at is current?

Observations of inventory and price carry freshness that is tracked separately from content change. A source that has gone quiet shows as stale rather than passing as confirmed, so an unchanged value is not mistaken for a verified one.

Can the calendar show margin instead of price?

Where verified economics exist, the calendar supports contribution-aware review. Where variable cost or commission coverage is missing, that gap is flagged rather than filled with an assumption—so margin is withheld instead of estimated from a default.

Can another workspace see my departures?

No. The calendar and the portfolio metrics behind it are tenant and row-level-security scoped at the data layer. A workspace only ever sees its own departures, and the same boundary applies to every read path rather than to the interface alone.

FOUNDING OPERATOR PROGRAM

Start by seeing your portfolio honestly.

Connect a source, review your departures with their real identity, freshness and economics coverage, and decide what to act on. No live price writes are required to work the calendar.