as_of and computed_at. Seven of the eight are available through the doors below; one is written into the object and held back. The example payload shows what a door returns.
The names, types and availability below are fixed. No read interface or MCP tool serves them yet — this page publishes the shape ahead of the doors.
Example payload
Attributes
Availability
✓ available by default · ⊕ available after an opt-in that states who becomes able to see the value · — not available.
Every value on this object carries the opt-in. A deal is a negotiation with one of your customers, so nothing Beacon holds about one is open by default. Each value becomes available at a point of choice, and the choice is recorded: on the read interface and MCP tools when someone issues or widens a grant that reaches the value; on events when you subscribe; on your CRM when you turn the property on. Whoever makes that choice is shown who becomes able to see the value.
as_of and computed_at are the exception — they carry no choice of their own and travel inside whatever you have already opted into.
The events door is listed and not yet served. A value marked on it has a named event — deal.deal_stage.changed, deal.deal_probability.changed — sent once per recalculation when the published value differs from the last one, carrying the new value, the previous value and both timestamps. Nothing sends an event today and there is nothing to subscribe to yet. as_of and computed_at have no event of their own; they travel inside every event. days_in_stage has none because it moves with the calendar — deal.deal_stage.changed is the change it counts from.
price_realization_band is not available on any door, and will not be until the work behind it is finished. It is written into this object so its name, type and meaning are fixed and will not change when it does arrive — but no door serves it today and none is scheduled to.
Eight values are written into this object; seven are available through the doors above. Both counts are correct and they are not the same number.
No named individual is published on this object. deal_health reads the executive-sponsor relationship on the deal; the sponsor’s name and contact record stay inside Beacon and cross no door.
No exact deal amount is published on this object today, and no discount figure is published on it at all. The amount is published as deal_amount_band.
An earlier version of this page listed pipeline_velocity here. That value measures how fast a whole pipeline is moving — by segment, team or company — and has no deal-level form; it runs the ordinary way round, where higher is healthier. The deal-level measure is deal_velocity_percentile, which runs the opposite way. Two velocity values, opposite directions, different subjects. The count in days is days_in_stage.
Enumerated values are lowercase with underscores — proposal, band_b — on every door.
Freshness
Every value carries two timestamps.as_of is the moment the value describes; computed_at is when Beacon last worked it out. Compare against as_of rather than the time of the request, and read computed_at when you want to know how recently Beacon looked. How current a number is covers both.