Paid Add-On
Farseer AI is a paid add-on and isn't enabled by default. To enable it for your workspace, reach out to the Farseer sales team.
What Is Farseer AI?
Farseer AI is a built-in assistant that answers questions about your model in natural language. Ask it for a summary of a variable, an explanation of how a number was calculated, the definition of a dimension, or anything else about the structure or contents of your workspace — and it produces an answer grounded in your real data.
Under the hood, the assistant runs Python code in an isolated sandbox using the Farseer SDK. It can fetch entities, evaluate formulas, search dimension members, and inspect uploaded files — all scoped to your workspace.
Opening the Chat
Click the Farseer AI entry in the side navigation. The chat opens in one of two layouts:
Modal — a floating panel that lets you keep the rest of the app visible.
Fullscreen — a focused, full-window view for longer conversations.
Use the layout toggle in the chat header to switch between them. Your choice is remembered across sessions.
Multi-Chat & History
Each topic you work on can live in its own chat. From the chat header you can:
Create a new chat — start a fresh conversation when switching topics.
Switch chats — open the chats dropdown to jump between recent ones.
Rename a chat — give it a clearer title than the auto-generated one.
Delete a chat — remove a conversation you no longer need.
When you send your first message in a workspace with no existing chats, a new one is created automatically. Its title is generated for you a few seconds after the first reply lands — based on what you asked.
Asking Good Questions
The assistant gives sharper answers when you're concrete about what you're looking for. The more clearly you scope year, version, entity, and metric, the more directly you can act on the result.
Worth specifying whenever it's relevant:
What to specify | Examples |
Year | "for 2025" · "in 2024" · "2023 vs 2024" |
Version | "in Actual" · "compare Actual and Plan" · "in Forecast" |
Entity | "for Aurora" · "for the EMEA region" · "for the whole group" |
Period | "for June" · "YTD through August" · "Q3 2025" |
Metric | "Revenue" · "Gross Margin and EBITDA" · "OpEx ratio" |
Format | "as a table" · "with a short comment" · "sorted by variance" |
If you leave something out, the assistant uses sensible defaults (Actual version, current year) and tells you which assumptions it applied — confirm or correct in the next message.
Refining a Vague Question
Instead of: "What's the gross margin?" Better: "What's the Gross Margin for Aurora in June 2025 in Actual? Include GM%."
Instead of: "Compare revenues." Better: "Compare revenue by sales channel for Nimbus for 2025 in Actual vs Plan."
Instead of: "Analyze costs." Better: "Analyze cost of goods sold per unit for Aurora for 2025 — compare Actual vs Plan and explain the difference."
Starter Prompts
When a chat is empty, Farseer AI shows a set of suggested prompts personalised to your model. These aren't a fixed template — the assistant reads the vocabulary of your workspace (dimension tables, variables, apps) and asks the LLM to draft prompts that reference the real entities you'd want to explore, so Aurora, EMEA, or GTN Waterfall come up if that's what your model is called.
A short skeleton flashes while the personalised set is being generated for the first time; after that it's cached per locale × agent type and served instantly. The cache refreshes about once a month or when the underlying vocabulary changes significantly.
Localisation. The canonical set is generated in English, then translated on demand into other locales — with a glossary that keeps your model's names verbatim, so an Aurora entity or a GTN Waterfall variable reads the same in every language.
Fallback. If generation fails (or a translation for your locale hasn't landed yet), Farseer falls back to a curated, already-localised set of generic starters so the empty state is never blank. These stay usable but won't be tied to your specific entities.
The prompts typically cover common entry points — summarising a variable's purpose, explaining how a measure is computed, describing a dimension's structure, or walking through a specific setup pattern — with references to real names from your workspace where possible. Click any prompt to use it as a starting point, or ignore them and type your own question.
Worked Examples
Five patterns that cover most of what you'll do day-to-day, from quick checks to executive summaries. The examples below use a sample group with four product lines — Aurora, Helios, Vertex, and Nimbus.
Example 1 — Single value lookup
Prompt: "What's the Gross Margin for Aurora in February 2025 in Actual? Include GM%."
What you get: The absolute Gross Margin for the period in your model's reporting currency, GM% as a percentage, and a note confirming the version and period that were used. Best for quickly verifying one specific number.
Example 2 — Tabular breakdown by dimension
Prompt: "Show revenue by sales channel for Nimbus for 2025 in Actual. Sort largest to smallest."
What you get: A table of revenue per channel (Direct, Wholesale, Online, Distribution, …), sorted descending, with a total row. Surfaces concentration and distribution across channels.
Example 3 — Cross-entity comparison
Prompt: "Compare Revenue, Gross Margin %, and OpEx ratio for all four product lines (Aurora, Helios, Vertex, Nimbus) for 2025 in Actual. Which line has the smallest gap between Actual and Plan?"
What you get: A comparison table with the three KPIs per product line in Actual, alongside Plan, with absolute and percentage variance per line — plus a comment identifying the smallest and largest gap to plan.
Example 4 — Variance analysis with drivers
Prompt: "What are the main drivers of the Gross Margin variance between Actual and Plan for the whole group YTD through Q1 2026? Break it down by Revenue, COGS, and Direct OpEx, and call out which product line contributes most to the variance."
What you get: A waterfall-style breakdown of the GM variance — Actual vs Plan — split by line item (Revenue, COGS, Direct OpEx). For each line: absolute variance and share of total variance. Identifies the entity that contributes the largest deviation from plan.
Example 5 — Executive summary
Prompt: "Write an executive summary of group performance for H1 2026. Compare Actual vs Plan at the Revenue, Gross Margin, and EBITDA level — show absolute and percentage variance. Identify 2–3 key drivers, call out which entity or channel contributes most to the variance, and end with a short management comment with one concrete recommendation."
What you get: A structured summary in several parts:
KPI overview — table with Revenue, Gross Margin, and EBITDA for the group (Actual vs Plan, absolute and percentage)
Key drivers — 2–3 specific factors that explain the variance
Entity contribution — which entity over- or under-performs vs plan
Management commentary — narrative conclusion with a concrete recommendation
What the Assistant Can Do
The assistant has access to a single sandboxed Python tool with the Farseer SDK preinstalled. Through this tool it can:
Look up variables, dimension tables, and dimension members by name or fuzzy search.
Evaluate formulas against the live model — for example, summing revenue across a dimension slice.
Inspect uploaded files from the workspace.
Run pandas-style data manipulation in the sandbox to summarize, group, or compare results before responding.
Produce downloadable file outputs — formatted PDF reports, CSV / XLSX spreadsheets, and chart images. See File Outputs below.
Build IBCS-compliant dashboards from a plain-language brief — see Building Dashboards below.
Run apps on your behalf — see Running Apps below.
File Outputs
Beyond text, tables, and inline charts in the chat, the assistant can produce downloadable files attached to a reply — useful when you need a deliverable to share, archive, or open in another tool.
Four output formats are available:
CSV — plain tabular data for downstream tools.
XLSX — Excel workbook with number formatting.
PDF — formatted report with headings, tables, and inline charts. Best for hand-offs to stakeholders who want a self-contained document.
Chart image — a single rendered chart as a PNG, useful when you want to drop a visualisation straight into a slide or email.
Ask for them by name — "give me the P&L for H1 as a PDF report", "export this table as XLSX", or "render the trend as a chart image" — and the assistant generates the file in the sandbox and attaches it to the reply. Click the attachment in the chat to download or open it.
Where files live
Generated files are stored in your workspace under a personal folder named AI Files (Your Name). Each user has their own — the folder is owner-only at the ACL level, so nobody else can see or list your AI-generated files unless you share them explicitly. That protection is a real per-file permission check, not just an obscure URL.
Inside the folder, files carry the format extension and a timestamped name so a growing collection stays browsable. Delete or move them like any other file in the Files module.
Building Dashboards
The assistant can build an entire IBCS-compliant dashboard for you from a plain-language brief. Ask for something like "build a monthly gross-margin dashboard for Aurora, Helios, Vertex and Nimbus" and the agent produces a full dashboard in your workspace — tiles, charts, tables, and the IBCS encoding conventions (variance colouring, absolute vs relative variance semantics, integrated legends, notation rules) applied end to end.
What that means in practice:
Follows Farseer's IBCS guidelines by default. The agent has a dedicated dashboard-builder skill that encodes the IBCS chart-selection and styling rules, so you don't have to spell them out — waterfall charts for variance breakdowns, integrated legends for stacked charts, the correct green/red variance palette, percentage-point units on absolute % variances, and so on.
Understands your model's vocabulary. Product lines, cost centres, dimension names, and variable names from your workspace flow straight into tile titles and configuration — no need to re-explain the model.
Confirms scope before building. Ambiguous requests get a short clarification round first (which years, which entities, which KPIs) so the agent doesn't ship a dashboard built on the wrong slice of data.
Rolls back on failure. The build is tracked as a transaction — if a downstream step fails, the agent cleans up the partial tiles instead of leaving orphan
(AI)artifacts on your dashboard list.
Once the dashboard lands you can edit it like any other dashboard — tweak titles, resize tiles, change filters, add tiles by hand. The AI-built version is a starting point, not a locked artifact.
Running Apps
The assistant can find one of your apps (the same automation scripts you'd otherwise launch from the Apps screen) and run it on your behalf. A typical exchange looks like this:
You ask something like "Run the monthly close app for May Actual."
The assistant searches your apps, identifies the right one, and reads its expected arguments.
If any required arguments are missing, it asks you for them — it never guesses values for arguments you haven't given.
It runs the app and reports back what happened (output, errors, or whether the run is queued).
Apps run with your permissions — the assistant can't reach an app you couldn't run yourself. Because apps can write to the model (imports, transformations, etc.), this is one of the capabilities where the assistant goes beyond read-only.
How Replies Work
Replies stream back as the assistant works. While a request is in flight, the chat shows an agent-emitted intent line describing what the model is doing right now — something concrete like "Calculating Q1–Q4 channel mix by margin" or "Fetching brand-level margin for 2025". The intent line updates as the agent moves through the steps of its plan, so you can tell at a glance whether it's doing a quick metadata lookup or a longer analytical pass.
Only one request is processed per user at a time. If you try to send a new message while one is still running, you'll see a "previous message is processing" notice. You can cancel an in-flight request from the chat header.
Rich Formatting in Replies
Beyond plain text, tables, and code blocks, replies can include callouts, collapsible sections, and inline coloring drawn from the Farseer theme — useful for highlighting variances, structuring long answers, or hiding optional detail behind a click. The agent decides whether to use these elements based on what fits the question; most replies stay plain prose.
Per-Turn Stats
Each assistant reply has a small stats row underneath it with three numbers:
Duration — how long this answer took to generate.
Actions — how many actions the agent performed (loading skills, running code, running an app).
Context — the current size of the conversation context. Older turns get summarized once it grows too large, so this number is a useful indicator for how full the chat has become.
Use these stats as a sanity check on how much work went into an answer — a one-line lookup with one action and 200 ms is fundamentally different from a multi-step analysis that ran for 30 s and did a dozen actions.
Feedback on Replies
Every assistant reply has 👍 and 👎 buttons next to the stats row. Click 👎 to open a comment popover where you can explain what went wrong — the comment is sent alongside the thumbs-down signal so the team can spot patterns in what's failing. Use Clear feedback to undo a rating.
Frequently Asked Questions
Can I ask questions in my own language?
Yes. The assistant understands and responds in any language your team uses, and answers in the same language the question was asked in.
Can I ask follow-up questions?
Yes — within the same chat, the assistant retains context. After an executive summary you can ask "break down the GM variance for Aurora by month" without re-stating the year, version, or entity.
What if the answer isn't right?
Correct the assumption in your next message: "I didn't want YTD, just June." or "Use Plan instead of Actual." The assistant recalculates with the corrected scope.
What if the assistant doesn't know the answer?
If the data isn't in the model (e.g., a period that hasn't been imported yet), the assistant says so explicitly rather than inventing a number. Check whether the import or data load for that period has run.
How granular can I get?
The assistant can drill down to whatever level of detail your model supports — including individual dimension members, custom hierarchies, and line items at the lowest level of your P&L. For granular slices, name the entity or member explicitly.
Audit Trail
Chat activity is recorded in the workspace's audit log. Relevant audit types: CHAT.CREATE, CHAT.RENAME, CHAT.DELETE, CHAT.ASK. Admins can review who used the assistant and when from the Audit Logs page.
Mostly Read-Only
The assistant doesn't edit cells, change variables, or modify model data directly. The two exceptions are running apps and building dashboards — see Running Apps and Building Dashboards. Both act with your permissions, so the assistant can't do anything you couldn't already do yourself.
