For the complete documentation index, see llms.txt. Every documentation page is also served as markdown: append .md to its URL or request it with Accept: text/markdown. A single-file snapshot of all docs is at llms-full.txt.

Alloovium

Excel add-in

Alloovium in Microsoft Excel

Turn contracts into auditable spreadsheets. Build registers, fill templates, and apply chat-driven edits through a single approval queue — every value tied to the source clause that produced it.

Screenshot

Alloovium task pane in Excel

Three tabs in the bottom nav — Chat, Workflows, Edits. Header has the project picker and the overflow menu; ContextBar shows the live sheet read.

Overview

The Excel add-in plugs into Microsoft 365 Excel as a task pane. It understands the active sheet's structure, knows the active Alloovium project, and writes back to the workbook only through a single auditable path — every mutation runs inside one Excel.run transaction, so a partially-applied register is impossible.

The pane has three tabs in the bottom nav:

TabWhat it does
ChatQ&A over the active project with the active workbook as context. Plain-English instructions that the planner turns into a preview-then-apply set of operations.
WorkflowsHub of structured workflows — Fill Template at the top, Obligations Register and Variations Register below. Each opens its own sub-view; sub-tools (LD calculator, flow-down checker, milestone dates) live inside the Variations register.
EditsChat-driven edits awaiting human review. Three segments — Awaiting me, Submitted, History. A static role-based authority table decides who can approve a given edit.

Video · ~3 min

The Excel add-in in three minutes

Open the task pane on a blank workbook, generate an obligations register from the project's parsed contracts, filter by severity and sync it to the sheet, then send one chat-driven edit through the Edits approval queue and watch it apply atomically.

Open the task pane

  1. Install the add-in

    Centrally deployed via the M365 admin centre or sideloaded per machine. See the install guide.

  2. Open the workbook

    Any .xlsx — on disk, OneDrive, or SharePoint. New blank workbooks work too.

  3. Click "Open Alloovium" in the Home ribbon

    The task pane appears on the right.

  4. Sign in and pick the project

    First-run only. The same project picker as the web app — pick whichever contract or project this workbook is for. If the add-in recognises the workbook (see below), it'll suggest a project for you.

Sheet detection & auto-match

The first thing the add-in does is look at the active sheet. It samples the header row and a handful of sample rows, and asks the backend to classify the sheet — obligation register, variation register, milestone schedule, or something else. The detected sheet type appears in the context bar and tunes the suggested actions.

Separately, when you open a workbook, the add-in tries to recognise it as a project you already have in Alloovium. The match scores filename, sheet names, and header/sample-row content against your accessible projects. A confident match shows a banner suggesting that project; you can accept or dismiss it per-document.

Vault freshness

Once a project is selected, a background poll checks for newer documents every 90 seconds. If anything's changed in the Vault, a StalenessBanner appears with a one-click Refresh.

Chat tab

The Chat tab is conversational Q&A over the active project, with the active workbook as live context. Every chat message sends a workbook context block — the header row, up to thirty sample rows, and the current selection — wrapped in XML delimiters that the LLM treats as untrusted data, not instructions.

The intent classifier routes every message to one of six intents:

IntentBehaviour
planThe user described a structured change with values they already supplied or that are obvious from the sheet — "highlight row 5", "set B2 to 100", "colour overdue rows red". Backend returns a typed ExcelOperation plan (set_value, set_formula, highlight, insert_row, clear_range). Plan goes to the Edits tab for review; once accepted, ops apply atomically inside one Excel.run.
populateAn edit whose values must first be retrieved from project documents — "fill column D with milestone dates from the contract". The AI searches the Vault, then proposes cell edits. On empty sheets the planner can skip the approval step and apply directly to fill a blank register.
workbook_qaA question about the sheet itself — its data, structure, or totals. No document lookup, no mutations. Also the safe default for greetings and ambiguous input.
document_qaA question about the content inside the project's uploaded documents. Retrieves from the Vault; citations come back as source chips under the assistant message.
project_metaA question about the document collection itself — counts, inventory, what files exist — rather than what any one document says. "What documents do we have?", "how many files are uploaded?"
out_of_scopeA substantive off-topic request (a recipe, the weather, a joke). The assistant declines politely. Bare greetings and acknowledgements are never treated as out of scope.

Workflows tab

The Workflows tab is a hub. Clicking any card swaps the body to that workflow's sub-view; a back arrow in the sub-view header returns to the hub.

Screenshot

Workflows tab — hub state

Fill Template (orange-bordered hero with AI badge) sits at the top; Obligations Register and Variations Register cards open their sub-views. The context bar at the top of the pane reads the active sheet so the planner can route suggestions correctly.

  • Fill Template — the hero card. Mirrors the Word add-in's Document Fill: point it at a template-shaped sheet, pick a Vault, and the planner drafts a value for each blank with a source citation, then writes the full batch into the workbook in one atomic transaction.
  • Obligations Register — opens the obligations sub-view (see below). Build the register from the project's parsed contracts, filter, and sync into the sheet.
  • Variations Register — opens the variations sub-view (see below). Houses the change-order register plus three sub-tools: LD Calculator, Flow-Down Checker, Milestone Dates.

Obligations register

The Obligations Register sub-view builds an auditable obligation register from the project's parsed contracts. Point it at a project Vault and it produces one row per obligation with party, action, due date, cadence, severity, clause reference, and the verbatim source text.

Building the register

  1. Open a blank or partially-filled register sheet

    The add-in detects existing register layouts and switches the CTA from "Import" to "Update register" — it appends rows without disturbing what's there.

  2. Click "Generate from vault"

    Extraction kicks off across every processed document in the project. Production runs through a Celery queue; the pane subscribes to progress updates and lists obligations as they arrive.

  3. Filter and review

    Filter by severity or obligation type; bulk-select up to 500 rows; deep-link from a clause chip back into Chat to ask about it.

  4. Sync to sheet

    Writes the register into the workbook in a single atomic transaction. Citations live in a hidden column you can show on demand.

Contradiction flags

The Obligations view has a Contradictions toggle that surfaces flags from the LLM contradiction checker — places where two obligations on the same project disagree on party, value, or date. Each flag links back to both source clauses.

Variations & calculators

The Variations Register sub-view covers change-order workflows. Extract variations from notices, RFIs, and instructions into a structured register; or build a fresh variation log from scratch. Each row shows VO number, status pill, cost impact, time impact, source clause, approver, and submitted date.

  • Send for approval — kick a variation into the project approval workflow without leaving Excel.
  • Sync to sheet — write the full register into A1:H{N+1} with a dark header row.

The same sub-view exposes three calculators, opened in an overlay:

Sub-toolWhat it does
LD CalculatorLiquidated damages — rate × delay, with daily and weekly caps. "Look up" pre-fills daily rate and cap from the contract's LD clause via the project's clause-lookup backend.
Flow-Down CheckerHead-vs-sub gap analysis. Assign Head / Sub / Skip per source document; the backend returns gaps with proposed subcontract wording for each missing obligation.
Milestone DatesEvery dated obligation bucketed into Overdue / Due soon (≤14 days) / Upcoming / No specific date.

Edits tab

Anything Chat is about to write to the sheet — register rows, formula changes, formatting — passes through the Edits tab first. It's the approvals queue: three segments at the top of the tab.

  • Awaiting me — edits assigned to you for review, with an op-kind chip summary, the first three operations, and a "Show all N operations" toggle for the rest.
  • Submitted — edits you've sent to someone else for review.
  • History — applied and rejected edits, filterable and exportable to CSV.

Accepting an edit runs the operations inside one Excel.run transaction. A StatusPill at the top surfaces the outcome honestly — "Applied locally — Vault copy unchanged" on apply (the workbook changes; the Vault copy only updates when you sync it), "Edit rejected · Vault unchanged" on reject.

Authority thresholds

Approval authority follows a fixed, role-based table — the Authority Thresholdsdialog shows it read-only: up to $10,000 sits with the Project Manager, $10,000–$100,000 with the Contract Manager, and anything over $100,000 with the Board. It’s a reference table, not a per-user setting.

Screenshot

Edits tab — Awaiting me

Segmented control at the top — Awaiting me · Submitted · History. A StatusPill confirms the last apply ("Applied locally — Vault copy unchanged"). Each WorkbookEditCard shows a Pending chip, the title, op-kind chip row (Set / Highlight / Insert row), the first three operations as monospace previews, and a Show-all-N link for the rest.

Plan validation

Every edit plan — whether it came from Chat, Fill Template, or a register sync — is validated before it is allowed anywhere near your workbook. Validation runs at preview time and again at apply time:

  • Range bounds — every target must be a well-formed A1 reference inside the sheet's real bounds.
  • Size caps — a single edit is capped at 200 operations, each touching at most 10,000 cells; larger plans are rejected outright rather than partially applied.
  • Formula safety — proposed formulas run through a denylist of dangerous functions, and formulas that reference external workbooks are rejected.
  • Precondition hashes — when a plan is previewed, the add-in fingerprints the cells it is about to touch. At apply time it re-checks those fingerprints inside the Excel.run transaction — if the data changed underneath the plan (you kept editing, a colleague saved over it), the apply refuses instead of writing onto stale assumptions.

Refuse, don't guess

A plan that fails validation never half-applies. You'll see which check failed and can regenerate the plan against the current sheet state.

Known limits

  • Offline runs queue. Online status is surfaced in the header. When offline, chat plan and populate calls go onto a durable queue (cap 50, 24 h TTL) and replay when you reconnect. Reads serve from React Query's cache where available.
  • Sheet detection is heuristic. Unusual layouts may misclassify — re-detect manually if the suggested actions don't fit.
  • Sheet size matters. Very large sheets (tens of thousands of rows) sample slowly. Filter or work on a smaller range when possible.
  • Bulk delete capped at 500 rows. The Obligations bulk-delete action processes up to 500 obligation IDs per request — paginate larger removals.
  • Edit plans capped at 200 operations, 10,000 cells per operation. Break very large writes into smaller plans — the validator rejects oversized plans rather than partially applying them.

Next steps