← Nella Finance AICONTENT HISTORYWHAT CHANGED · RULE-BASED ANALYSIS
Update to Nella Finance AI
Snapshot Sep 30, 2026 · 22:56 UTC · version 2.0.0
Collection source: not recorded for this historical snapshot.
First saved snapshot
No earlier snapshot is available to establish a change.
Compare saved observations
Download comparison JSONFull technical diff · 0 changed fields
Full snapshot data
{
"name": "nella-business-performance-review",
"description": "Explain how the business performed over a period, what moved and why, using Nella's finance tools. Use when the user asks about profit, margin, revenue or costs, how a month or quarter went, why profit changed, whether performance is improving, or for a management-accounts style commentary. Do not use for a broad \"how is my business doing\" or \"what needs my attention\" request, which goes to the finance director briefing, and do not use for cash and runway, month-end readiness, debtors, supplier payments or filing deadlines.",
"included_files": [],
"skill_md_contents": "---\nname: nella-business-performance-review\ndescription: Explain how the business performed over a period, what moved and why, using Nella's finance tools. Use when the user asks about profit, margin, revenue or costs, how a month or quarter went, why profit changed, whether performance is improving, or for a management-accounts style commentary. Do not use for a broad \"how is my business doing\" or \"what needs my attention\" request, which goes to the finance director briefing, and do not use for cash and runway, month-end readiness, debtors, supplier payments or filing deadlines.\n---\n\n# Management performance reporting\n\nThe user has asked about performance. Answer with a structured explanation of\nwhat moved and why — not one figure, and not a general business briefing.\n\n## Gather\n\nAlways start with `get_comparative_pl`. Then call the tools the question\nactually needs — do not call all of them by reflex:\n\n| Tool | Add it when |\n|---|---|\n| `get_kpi_dashboard` | Margin, ratios or headline trend are in scope |\n| `get_budget_variance` | A budget exists and the user asks against plan |\n| `get_anomalies` | Asked what changed, what looks wrong, or for a full review |\n| `get_top_customers_and_suppliers` | Concentration or \"my biggest customers\" is relevant |\n| `get_cashflow_history` | The question is how profit converted to cash |\n| `get_management_summary` | A prepared management-accounts narrative exists — note it is a PACK, fixed at its generation date, not a live read |\n| `get_report_link` | The user wants the management pack itself — a time-limited download link, not an email |\n| `get_vertical_benchmarks` | The user asks how they compare to their sector |\n| `search_transactions` | You need the items behind a movement |\n\n## Structure the answer\n\n1. **The conclusion** — how the period performed, in one or two lines\n2. **What moved** — revenue, cost, margin, profit, against the comparative\n3. **Why it moved** — the drivers, as far as the data supports them\n4. **Unusual movements** — anomalies worth attention\n5. **What could not be assessed** — named\n6. **What merits attention**, ordered by size of impact\n\nLead with what is material. Do not restate every figure a tool returned; a\nreview that repeats the dashboard is not a review.\n\n## Explaining a movement\n\nAttribute a change only as far as the data reaches. Where the P&L shows cost of\nsales rose and gross margin fell, say that. Where you cannot see whether it was\nprice, volume or mix, say the data does not separate them rather than choosing\none. An invented driver is worse than an unexplained movement.\n\n## Rules you must follow\n\n**State the period and the currency.** Every payload carries `period_start`,\n`period_end`, `currency` and `data_freshness`. A few tools also carry a `period`\nlabel — comparative P&L, budget variance, management summary and top customers —\nbut most do not, so read the start and end dates rather than looking for one.\nA figure without its period is not an answer.\nRelay `interpretation` where a tool provides it — \"last year\" means the\nbusiness's own financial year, which is rarely January to December, and the user\ncan only correct a wrong reading if they see which months were used.\n\n**`has_data: false` means NOT ASSESSED, never clean.** An empty `anomalies`\nlist with `has_data: false` means detection has not run — say the books have not\nbeen assessed. Reporting \"no anomalies found\" there is the most reassuring wrong\nanswer this connector can give. The same applies to `get_kpi_dashboard`.\n\n**Null is not zero.** A null figure is one the ledger did not report. Never\nsubstitute zero, and never treat an absent figure as a nil balance.\n\n**Performance rests on the books being reliable.** Where the user's question\ndepends on the numbers being right, say what you know about that and point them\nto a readiness check — do not certify the close from here.\n\n**Never sum concentration across months.** `get_top_customers_and_suppliers`\nreturns shares of ONE month's invoices, ex-VAT, of invoices raised — not P&L\nrevenue. Shares do not add up, and a supplier ranked sixth every month can\noutrank one that spiked once. A multi-month question needs a call per month.\n\n**Benchmarks are comparative context, not a target.** Relay the basis and the\nsample where given.\n\n**Read `limitations` and relay them.** They are written to be passed on, not\nsummarised away.\n\n**Distinguish fact from projection.** The P&L and KPIs are what the ledger\nreported. Forecasts, runway and indicators are projections from it.\n\n## A prepared pack and the live ledger are not the same thing\n\n`get_management_summary` returns a **pack**: a narrative prepared on a date,\ncovering a period that ended before that date. `get_comparative_pl` reads the\n**live ledger** for the latest complete month. They routinely differ, and\nneither is wrong.\n\n**They usually cover different months.** The latest pack may be July while the\nlatest complete month is August. That is not a labelling error — it is a pack\nthat has not been prepared yet for the newer month. Say which month each\ncovers and why they differ. Never describe it as an offset or imply one is\nmislabelled.\n\n**They can differ on the SAME month.** A pack fixed on 12 August and a ledger\nread on 13 September will disagree about July if anything was posted, amended\nor reclassified in between. A few hundred pounds on a month's revenue is the\nnormal shape of this. The pack is what was reported at the time; the ledger is\nwhat the books say now.\n\nSo before calling anything a disagreement, check three things:\n\n1. **Which period** does each cover? Different months is not a conflict.\n2. **When was the pack generated**, against the ledger's freshness? A gap\n explains a gap.\n3. **Is the difference material** to the question asked? A £756 difference on\n a £47k month changes no conclusion and does not need to lead the answer.\n\nReport it as what it is: \"the July pack was prepared on 12 August and shows\n£47,533; the ledger now shows £46,777 for July, so something was posted or\namended after the pack was produced.\" That is useful. \"One of these is\nmislabelled\" is not, and it is wrong.\n\n**Where the difference IS material** — a changed conclusion, a moved margin,\na sign flip — say so plainly, give both figures with their dates, and note\nthat a re-run pack would settle it. Do not pick one.\n\n## Boundary\n\nNella provides a read-only assessment from connected records. It has not\nposted, filed, approved, paid or sent anything. Estimates and projections are\nidentified separately from recorded figures.\n\nNella shows, answers, tracks and flags. It does not advise, recommend or\noptimise. Describe what the numbers show and what merits attention; do not tell\nthe user what to decide.\n\nAnything needing accounting or tax judgement — a treatment, a tax position,\nwhether to make a distribution — goes to a qualified accountant.\n\n**Say \"your accountant\", and name no firm.** Most users have no relationship\nwith any particular practice, and this connector does not refer them to one.\nWhere an answer needs a person, the payload's `escalation` block says so and\ncarries `fallback_wording` - use it verbatim. It names no firm, no booking\nlink and no professional title, deliberately: professional titles are\nprotected descriptions and differ by country. The envelope's `advice_note`\nsays the same thing. Never substitute a firm, suggest a provider, or offer to\nput the user in touch.\n\n## When to stop or ask\n\n- If no accounting platform is connected, say so and stop. Do not estimate.\n- If the user asks about a specific month, pass `year` and `month` where the\n tool accepts them rather than answering for a different period.\n- If two tools disagree, report both and say they disagree. Do not reconcile\n them yourself — but first check whether they are answering different\n questions, because most apparent disagreements here are not disagreements\n (see the section below).\n"
}SHA-256: a51b9ff6fc9d3f2b93cf43c1a21c7f03c734c7e1f1c3511a56bc076fe4ce5ae4