How it works
What this is
What this is
B-Viz is one layer over every system a company runs: the CRM, the call recorder, email, the helpdesk, product analytics, accounting, HR, the document store and the news. It reads them and joins them into one record per thing. Then its AI works in layers (The AI): it reads every call, email thread, ticket, document and news item on its own and shows what it found on that object's page; it rolls those reads up by organisation (an assessment, a status, next steps and a story) and by person (an insight; for staff, a profile); and it writes the summaries at the top, the Summary and the Commercial commentary, across the accounts, the money and the people. Beside the object reads, each organisation gets a usage read (its platform usage over the recent weeks against the 13-month trend) and a finance read (its order forms, ARR, invoices, payments and deals), both written over figures computed in code. Each earlier quarter of an organisation's calls, emails, tickets and news is condensed into one period digest, so its assessment reads the whole history without dropping any of it; all three sit on the organisation's page. Every document is mapped by organisation and kind, with what was found in each. Every figure on these pages comes from the data, and the Evidence trail walks any AI sentence back down those layers to the rows it was made from.
The data is as of Fri 9 Oct 2026. It holds 300 organisations (customers, prospects, open opportunities, lost deals and former customers), 1880 people at those organisations, 65 staff, 2593 calls, 3882 email threads, 1502 tickets and 1582 documents.
Live state
Updated 9 Oct 26How it fits together
- structure and data
- AI stage
- data flow
- AI reads
- gate
What each box is (47)
- Claude
- Claude: Claude Desktop today, any MCP client in your account. It reads answers through the MCP server only.
- Clean
- Clean: typed, de-duplicated tables with one identity per organisation and person, built from the raw tables by SQL.
- Entity store
- The entity store: one record per thing (300 organisations, 1880 people, 2593 calls, 3882 email threads, 1502 tickets, 1582 documents and more), full text, every link held as ids. Every consumer reads it.
- Facts
- Facts: the money and usage views (ARR by month, reconciliation, debtors, usage by month). One source for every number the site and the chat quote.
- Coverage gate
- Coverage gate: every object with text has a read, every organisation has its assessment, next steps and narrative, and the tree is current before the site is built.
- Load checks
- Load checks: row counts, keys and types as the exports are loaded and cleaned.
- Provenance gate
- Provenance gate: every AI record is checked against its evidence pack (dates, figures and names must be in the evidence; excerpts must be verbatim). Refused records are rewritten inside the loop.
- QA gate
- QA gate: every written artefact is checked against the simulation's facts (dates, figures, names, banned terms) before it lands. Refused text is rewritten.
- Site gate
- Site gate: every link resolves, no block is blank, every page carries the same as-of date and every block's lineage reaches a raw row.
- Grounding brief
- The grounding brief: who BG-Demo is, what it sells and the rules of the world. It is prepended to every AI prompt and its hash is stamped on every AI record.
- Land
- Land: every export loaded untouched into raw tables, one per source file. In the demo this is DuckDB on a single machine; in your account it is the Snowflake RAW schema.
- MCP server
- The MCP server: seven tools over the same data, so Claude answers from the brain. The demo runs on a single machine; in production it runs on your Snowflake, as the managed MCP server.
- Search
- Search: a local keyword index over every entity, AI record and System page. In your account this becomes Cortex Search.
- Site
- The site: static pages drawn from the tree, readable from disk or any host.
- Accounting
- Accounting: customers, invoices with their lines, payments, credit notes and the ledger.
- Call recorder
- The call recorder: one row per call with its date, host, attendees and whether it was recorded. Transcripts arrive as text alongside the row.
- Contracts
- Signed order forms and their lines: the commercial paper that says what each customer actually bought.
- CRM
- The CRM: companies, contacts, deals with their line items, stage history and close-date changes, products and prices. Read as a nightly export, never written back.
- Document store
- The document store: proposals, contracts, order forms, QBR decks and company papers, with folder, version and status.
- Events
- The event platform: webinars, roundtables, customer days and conferences, with registrations and attendance.
- Helpdesk
- The helpdesk: tickets with category, priority, first response and status, plus the full trail of events on each ticket.
- HR
- HR: employees, joiners and leavers, manager changes and time off.
- Email and calendar
- Email and calendar: threads and the messages in them, with senders, recipients and times. Message bodies arrive as text.
- News
- A news feed of public items about our customers and prospects.
- Product analytics
- Product analytics: tenants, platform users and daily usage per tenant (active users, questions asked, connectors, data volume).
- Assessment
- Assessment: per organisation, a status word with the facts and the opinion behind it, risks and opportunities.
- Call prep
- Call prep: for each booked call in the next 14 days, what to know in one minute, the agenda and the questions to ask.
- Commercial
- Commercial commentary: for each SaaS page of Commercial (dashboard, logos, ARR and deals, profit and loss, ARR, ARR transactions, budget), a short note on what moved, how it reads against the illustrative targets and what to watch. Written only from that page's own measures and the targets file, in layer 5 after the portfolio; a page whose measures are not available yet gets no note.
- Doc rollup
- Document roll-ups: per organisation, what the executed paper says and where drafts and the CRM disagree with it.
- Finance read
- Finance reads: per organisation, one AI read of its money and deal history: order forms, ARR movements, invoices and payments, credit notes, debtors and the reconciliation. Written over figures computed in code.
- Narrative
- Narrative: per organisation, four paragraphs from commercial position to the closing action.
- Next steps
- Next steps: per organisation, one action with an owner, a customer contact and a date.
- Object read
- Object reads: one AI read per call, email thread, ticket, document and news item, with theme, importance, risks and next steps.
- Period digest
- Period digests: per organisation, one digest per earlier quarter of every call, email, ticket and news read in it, so the assessment reads the whole history without dropping any of it.
- Person insight
- Person insights: who each person at an organisation is, how much influence they have and what they care about.
- Portfolio
- Portfolio: the Summary blocks across the business: the executive overview and this week (the accounts, the money and the people), renewals, risks, actions, reconciliation and incidents.
- Signals
- Signals: deterministic figures computed in code (renewal dates, price changes, usage trends, who knows the account). The AI is handed these as givens and never computes them.
- Staff insight
- Staff insights: how each BG-Demo employee works across their accounts, including who has left.
- Tree
- The site tree: every page and block, built without a model from the records above, each block carrying what it was made from.
- Usage read
- Usage reads: per organisation, one AI read of its platform usage over the recent weeks against the 13-month trend: who uses it, seats and connectors against the order form. Written over figures computed in code.
- deck
- deck: builds a PowerPoint deck on the B-Viz template; every figure in it comes from facts or query, and each figure slide names its source.
- document
- document: builds a Word document on the B-Viz template, with the same rule: every figure from facts or query, every figure named to its source.
- facts
- facts: named measures (ARR, renewals due, reconciliation, debtors, usage, headroom) from the same facts and signals the site shows.
- get_document
- get_document: returns any entity or AI record by id, in parts for long text.
- query
- query: one read-only SQL statement over the chat views, with a row limit.
- search
- search: finds entities, AI records and System pages by keyword, with filters by organisation, type and date.
- viz
- viz: draws a chart from a query in the site's palette.
Each box
claude: Claude: Claude Desktop today, any MCP client in your account. It reads answers through the MCP server only.
clean: Clean: typed, de-duplicated tables with one identity per organisation and person, built from the raw tables by SQL.
entity_store: The entity store: one record per thing (300 organisations, 1880 people, 2593 calls, 3882 email threads, 1502 tickets, 1582 documents and more), full text, every link held as ids. Every consumer reads it.
facts: Facts: the money and usage views (ARR by month, reconciliation, debtors, usage by month). One source for every number the site and the chat quote.
gate:coverage: Coverage gate: every object with text has a read, every organisation has its assessment, next steps and narrative, and the tree is current before the site is built.
gate:load: Load checks: row counts, keys and types as the exports are loaded and cleaned.
gate:provenance: Provenance gate: every AI record is checked against its evidence pack (dates, figures and names must be in the evidence; excerpts must be verbatim). Refused records are rewritten inside the loop.
gate:qa: QA gate: every written artefact is checked against the simulation's facts (dates, figures, names, banned terms) before it lands. Refused text is rewritten.
gate:site: Site gate: every link resolves, no block is blank, every page carries the same as-of date and every block's lineage reaches a raw row.
grounding: The grounding brief: who BG-Demo is, what it sells and the rules of the world. It is prepended to every AI prompt and its hash is stamped on every AI record.
land: Land: every export loaded untouched into raw tables, one per source file. In the demo this is DuckDB on a single machine; in your account it is the Snowflake RAW schema.
mcp: The MCP server: seven tools over the same data, so Claude answers from the brain. The demo runs on a single machine; in production it runs on your Snowflake, as the managed MCP server.
search: Search: a local keyword index over every entity, AI record and System page. In your account this becomes Cortex Search.
site: The site: static pages drawn from the tree, readable from disk or any host.
src:accounting: Accounting: customers, invoices with their lines, payments, credit notes and the ledger.
src:call_recorder: The call recorder: one row per call with its date, host, attendees and whether it was recorded. Transcripts arrive as text alongside the row.
src:contracts: Signed order forms and their lines: the commercial paper that says what each customer actually bought.
src:crm: The CRM: companies, contacts, deals with their line items, stage history and close-date changes, products and prices. Read as a nightly export, never written back.
src:document_store: The document store: proposals, contracts, order forms, QBR decks and company papers, with folder, version and status.
src:event_platform: The event platform: webinars, roundtables, customer days and conferences, with registrations and attendance.
src:helpdesk: The helpdesk: tickets with category, priority, first response and status, plus the full trail of events on each ticket.
src:hr: HR: employees, joiners and leavers, manager changes and time off.
src:mailbox: Email and calendar: threads and the messages in them, with senders, recipients and times. Message bodies arrive as text.
src:news_feed: A news feed of public items about our customers and prospects.
src:product_analytics: Product analytics: tenants, platform users and daily usage per tenant (active users, questions asked, connectors, data volume).
stage:assessment: Assessment: per organisation, a status word with the facts and the opinion behind it, risks and opportunities.
stage:call_prep: Call prep: for each booked call in the next 14 days, what to know in one minute, the agenda and the questions to ask.
stage:commercial: Commercial commentary: for each SaaS page of Commercial (dashboard, logos, ARR and deals, profit and loss, ARR, ARR transactions, budget), a short note on what moved, how it reads against the illustrative targets and what to watch. Written only from that page's own measures and the targets file, in layer 5 after the portfolio; a page whose measures are not available yet gets no note.
stage:doc_rollup: Document roll-ups: per organisation, what the executed paper says and where drafts and the CRM disagree with it.
stage:finance_read: Finance reads: per organisation, one AI read of its money and deal history: order forms, ARR movements, invoices and payments, credit notes, debtors and the reconciliation. Written over figures computed in code.
stage:narrative: Narrative: per organisation, four paragraphs from commercial position to the closing action.
stage:next_steps: Next steps: per organisation, one action with an owner, a customer contact and a date.
stage:object_read: Object reads: one AI read per call, email thread, ticket, document and news item, with theme, importance, risks and next steps.
stage:period_digest: Period digests: per organisation, one digest per earlier quarter of every call, email, ticket and news read in it, so the assessment reads the whole history without dropping any of it.
stage:person_insight: Person insights: who each person at an organisation is, how much influence they have and what they care about.
stage:portfolio: Portfolio: the Summary blocks across the business: the executive overview and this week (the accounts, the money and the people), renewals, risks, actions, reconciliation and incidents.
stage:signals: Signals: deterministic figures computed in code (renewal dates, price changes, usage trends, who knows the account). The AI is handed these as givens and never computes them.
stage:staff_insight: Staff insights: how each BG-Demo employee works across their accounts, including who has left.
stage:tree: The site tree: every page and block, built without a model from the records above, each block carrying what it was made from.
stage:usage_read: Usage reads: per organisation, one AI read of its platform usage over the recent weeks against the 13-month trend: who uses it, seats and connectors against the order form. Written over figures computed in code.
tool:deck: deck: builds a PowerPoint deck on the B-Viz template; every figure in it comes from facts or query, and each figure slide names its source.
tool:document: document: builds a Word document on the B-Viz template, with the same rule: every figure from facts or query, every figure named to its source.
tool:facts: facts: named measures (ARR, renewals due, reconciliation, debtors, usage, headroom) from the same facts and signals the site shows.
tool:get_document: get_document: returns any entity or AI record by id, in parts for long text.
tool:query: query: one read-only SQL statement over the chat views, with a row limit.
tool:search: search: finds entities, AI records and System pages by keyword, with filters by organisation, type and date.
tool:viz: viz: draws a chart from a query in the site's palette.