← all help · Knowledge

// knowledge

HOW DAY_FACTS WORK

The structured per-date fact extraction that powers fast, accurate answers about specific show days.

day_facts is BandBrain's structured store for per-tour-day data. It's how the agent answers "what's tonight's hotel?" in 200 milliseconds without scanning your whole knowledge base.

What's stored

Each row is a (date, field, value) tuple. Fields include:

  • city, venue, venue_address
  • hotel, hotel_address, distance_from_venue
  • day_type — show / off / travel
  • schedule:load_in, schedule:soundcheck, schedule:doors, schedule:set, schedule:curfew, etc.
  • contact:buyer, contact:production, contact:venue_mgr, etc.
  • parking, production_notes, hospitality, wifi_network, wifi_password
  • merch_split, deal_terms, notes
  • age_restriction, capacity, billing

How it gets populated

Two ingestion paths feed day_facts:

Resource extraction

When a tour document is indexed, an LLM pass runs over the chunked content and writes structured (date, field, value) rows for every date mentioned. This is debounced + per-source-path incremental, so editing one tab in a day sheet only re-extracts that tab.

Email body extraction

When an email lands in your BandBrain inbox, the body text is also parsed for dated facts. Venue confirmations, hotel reservations, day-of contact updates — all become structured facts the agent can read instantly.

Precedence

Multiple sources can claim the same (date, field) — e.g. the original day sheet says hotel is "Hilton DTLA" but a later email says "we switched to the Hyatt". day_facts orders by origin:

  1. user_correction (highest priority — manual edit via the agent's set_day_fact tool)
  2. manual (admin-entered in the dashboard)
  3. ingestion (default — from auto-extraction)

The latest-updated row within the highest-priority bucket wins. So a user correction always beats an automatic extraction.

What the agent does with it

The find_today tool reads day_facts for the requested date and returns a structured TodayExtraction object — venue, hotel, schedule, contacts, hospitality. Everything else (the agent's response style, the SMS reply shape, the daysheet broadcast composition) reads from there.

This is faster and more accurate than searching the source docs for every query. Source-doc search (RAG via search_knowledge) is the fallback for open-ended questions where structured facts don't apply.

Editing facts

You can text the agent corrections:

  • "Update van call to 9am tomorrow"
  • "The hotel for Seattle is the Marriott Downtown, not the Hilton"
  • "Today's load-in is actually 2pm"

The agent calls set_day_fact which writes a user_correction row. Next time find_today queries that date, your correction is what comes back.

If the source is a Google Sheet, BandBrain also writes the change back to the source cell so the human-readable doc stays in sync. See Editing tour data via SMS.

Signed in? Ask the help assistant in your dashboard.

last updated 2026-06-02