{"id":55445,"plugin_id":"plugin_asdk_app_6a7c5c6b3dd0819193f4aaeb13dceaab","kind":"skill","collection_source":"plugin_package","comparison_source":null,"observed_at":"2026-10-26T12:07:18.696Z","digest":"d88e094d187156f92c86252b578a91ed11134207f04008bebd9ddd9307d89cb3","against":null,"payload":{"description":"Produce a cashflow forecast for an Exact Online administration by delegating to DataFlowr's hosted forecasting agent, then poll it and report the timeline with its assumptions. Use when the user asks about future cash, a liquidity outlook, a 13-week forecast, runway, or what the coming months look like.","included_files":[],"name":"cashflow-forecast","skill_md_contents":"---\nname: cashflow-forecast\ndescription: Produce a cashflow forecast for an Exact Online administration by delegating to DataFlowr's hosted forecasting agent, then poll it and report the timeline with its assumptions. Use when the user asks about future cash, a liquidity outlook, a 13-week forecast, runway, or what the coming months look like.\n---\n\n# Cashflow forecast\n\n## Overview\n\nNever extrapolate cash yourself. DataFlowr hosts a forecasting agent over a\ndeterministic two-layer engine: open AR/AP converted to weekly buckets by due\ndate, and fitted monthly P&L series reconciled — with cash as the balancing\nitem — into a closed monthly cash statement. No arithmetic on the money path is\ndone by a model, and none should be done by you.\n\nTwo tools: `forecasting_agent` runs a forecast, `forecasting_agent_status`\npolls it.\n\n## Steps\n\n**1 — Resolve the division and the anchor.**\nCall `exact_online_divisions` first. The anchor is a financial period\n(`FinYear`, `FinPeriod`), the same convention the closing agent uses. Left out,\nit defaults to the last completed financial period. If the tool answers\n`FCST_ANCHOR_UNRESOLVED`, the administration's period table cannot prove which\ncalendar month a period covers — ask the user for an explicit year and period\nrather than assuming one from today's date.\n\n**2 — Run it.**\nCall `forecasting_agent` with the division, the anchor and the horizon the user\nasked for. It returns a correlation key (`fcst-XXXXXX`).\n\nWhere the administration maintains a budget in Exact Online, budgeted P&L cells\noverride the fitted values by default. Pass `use_budget: false` only if the user\nexplicitly wants a purely statistical forecast; if several budget scenarios\nexist for a year, name one with `budget_scenario` or the budget is skipped.\n\n**3 — Poll.**\nA run past the synchronous budget comes back `running`. Poll\n`forecasting_agent_status` with the key. Do not start a second run.\n\n**4 — Report.**\nLead with the shape of the timeline — where cash troughs, and how deep. Then:\n\n- the **crossover**: where the forecast stops being driven by real open items\n  (`direct`) and starts being driven by fitted series (`fitted`), with the\n  blended stretch in between;\n- the **assumptions** the engine lists — DSO/DPO lags, VAT cadence, payroll wage\n  tax, exclusions, any one-offs the user supplied;\n- per-series **model and error** (which fit won, and its backtest MAE), and\n  which months came from budget rather than a fit.\n\nSay plainly which parts are observed and which are modelled. A forecast reported\nwithout its assumptions is worse than no forecast.\n\n## Hard stops\n\n- `FCST_UNSUPPORTED_PERIOD_STRUCTURE` or `FCST_CALENDAR_UNVERIFIED` → the\n  administration is not on monthly periods the engine can map. Report that; do\n  not approximate.\n- `FCST_BUDGET_UNAVAILABLE` → the budget could not be read. Offer to re-run with\n  `use_budget: false` rather than silently dropping it.\n- The forecast is read-only. Nothing here books anything.\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}