{
 "meta": {
  "company": "Kaldmere Studio O\u00dc (fictional demonstration company)",
  "fictional": true,
  "jurisdiction": "Estonia",
  "industry": "Agencies",
  "currency": "EUR",
  "last_actual_month": "2026-08-31",
  "scenario": "Base",
  "generated": "2026-09-23",
  "source_workbook": "Kaldmere_Studio_Agency_Finance_Pack_Aug26_FICTIONAL.xlsx",
  "model_status": "OK",
  "formula_errors": 0,
  "formulas": 41621,
  "integrity_checks_passed": 34,
  "integrity_checks_failed": [],
  "formats": {
   "eur": "EUR, whole units",
   "eur2": "EUR, two decimals",
   "pct": "ratio (0.25 = 25%)",
   "int": "count",
   "num1": "number, one decimal",
   "num2": "number, two decimals",
   "num3": "number, three decimals",
   "x": "multiple",
   "date": "ISO date",
   "month": "month end, ISO date",
   "rate4": "exchange rate, units per EUR",
   "rate5": "exchange rate, units per EUR"
  },
  "notice": "Fictional demonstration prepared by BriQs Group. Every company, person, client, supplier, invoice and number is invented."
 },
 "scenarios": {
  "snapshot_run_date": "23-Sep-2026",
  "selected": "Base",
  "metrics": [
   {
    "key": "fy26_nr",
    "label": "FY2026 net revenue (outlook)",
    "unit": "EUR",
    "base": 3937675.9212,
    "downside": 3761827.1051,
    "upside": 4011809.0013,
    "live_selected": 3937675.9212,
    "check": 0
   },
   {
    "key": "fy27_nr",
    "label": "FY2027 net revenue",
    "unit": "EUR",
    "base": 4189215.8677,
    "downside": 2837022.1528,
    "upside": 4807958.0953,
    "live_selected": 4189215.8677,
    "check": 0
   },
   {
    "key": "fy26_dcp",
    "label": "FY2026 delivery contribution %",
    "unit": "%",
    "base": 0.3972,
    "downside": 0.3759,
    "upside": 0.4084,
    "live_selected": 0.3972,
    "check": 0
   },
   {
    "key": "fy26_ebitda",
    "label": "FY2026 EBITDA",
    "unit": "EUR",
    "base": 583450.5013,
    "downside": 493231.2809,
    "upside": 653400.9472,
    "live_selected": 583450.5013,
    "check": 0
   },
   {
    "key": "fy26_ebitdap",
    "label": "FY2026 EBITDA % of net revenue",
    "unit": "%",
    "base": 0.1482,
    "downside": 0.1311,
    "upside": 0.1629,
    "live_selected": 0.1482,
    "check": 0
   },
   {
    "key": "fy26_np",
    "label": "FY2026 net profit",
    "unit": "EUR",
    "base": 428478.2843,
    "downside": 317750.3208,
    "upside": 515210.6748,
    "live_selected": 428478.2843,
    "check": 0
   },
   {
    "key": "fy27_dcp",
    "label": "FY2027 delivery contribution %",
    "unit": "%",
    "base": 0.3877,
    "downside": 0.2379,
    "upside": 0.4573,
    "live_selected": 0.3877,
    "check": 0
   },
   {
    "key": "fy27_ebitda",
    "label": "FY2027 EBITDA",
    "unit": "EUR",
    "base": 538595.2457,
    "downside": -169791.908,
    "upside": 1080997.7921,
    "live_selected": 538595.2457,
    "check": 0
   },
   {
    "key": "fy27_ebitdap",
    "label": "FY2027 EBITDA % of net revenue",
    "unit": "%",
    "base": 0.1286,
    "downside": -0.0598,
    "upside": 0.2248,
    "live_selected": 0.1286,
    "check": 0
   },
   {
    "key": "fy27_np",
    "label": "FY2027 net profit",
    "unit": "EUR",
    "base": 377658.9321,
    "downside": -267239.5746,
    "upside": 893060.0711,
    "live_selected": 377658.9321,
    "check": 0
   },
   {
    "key": "cash_dec26",
    "label": "Cash at 31-Dec-26",
    "unit": "EUR",
    "base": 612534.283,
    "downside": 252820.3371,
    "upside": 665425.5662,
    "live_selected": 612534.283,
    "check": 0
   },
   {
    "key": "cash_dec27",
    "label": "Cash at 31-Dec-27",
    "unit": "EUR",
    "base": 803759.8606,
    "downside": 50030.884,
    "upside": 1257727.7431,
    "live_selected": 803759.8606,
    "check": 0
   },
   {
    "key": "cash_min",
    "label": "Lowest month-end cash, Sep-26 to Dec-27",
    "unit": "EUR",
    "base": 339326.2395,
    "downside": 50030.884,
    "upside": 350573.4146,
    "live_selected": 339326.2395,
    "check": 0
   },
   {
    "key": "cash_min_m",
    "label": "Month of the lowest cash",
    "unit": "month",
    "base": "2026-09-30",
    "downside": "2027-12-31",
    "upside": "2026-09-30",
    "live_selected": "2026-09-30",
    "check": 0
   },
   {
    "key": "fund_need",
    "label": "Headroom at the lowest point vs the cash buffer (negative = shortfall)",
    "unit": "EUR",
    "base": -10673.7605,
    "downside": -299969.116,
    "upside": 573.4146,
    "live_selected": -10673.7605,
    "check": 0
   },
   {
    "key": "util_fy27",
    "label": "FY2027 utilisation (own staff)",
    "unit": "%",
    "base": 0.6817,
    "downside": 0.6277,
    "upside": 0.7233,
    "live_selected": 0.6817,
    "check": 0
   },
   {
    "key": "real_fy27",
    "label": "FY2027 realisation",
    "unit": "%",
    "base": 0.8823,
    "downside": 0.8127,
    "upside": 0.9228,
    "live_selected": 0.8823,
    "check": 0
   },
   {
    "key": "ret_fy27",
    "label": "FY2027 retainer fees",
    "unit": "EUR",
    "base": 2425082.9336,
    "downside": 1464956.1144,
    "upside": 2704725.8744,
    "live_selected": 2425082.9336,
    "check": 0
   },
   {
    "key": "top1_fy27",
    "label": "FY2027 largest client share of net revenue",
    "unit": "%",
    "base": 0.1776,
    "downside": 0.1777,
    "upside": 0.1821,
    "live_selected": 0.1776,
    "check": 0
   },
   {
    "key": "pipe_fy27",
    "label": "FY2027 fee revenue not yet won (share)",
    "unit": "%",
    "base": 0.2774,
    "downside": 0.2667,
    "upside": 0.3144,
    "live_selected": 0.2774,
    "check": 0
   },
   {
    "key": "fx_fy27",
    "label": "FY2027 FX gains / (losses)",
    "unit": "EUR",
    "base": 0,
    "downside": 0,
    "upside": 0,
    "live_selected": 0,
    "check": 0
   },
   {
    "key": "hc_dec27",
    "label": "Headcount at Dec-27",
    "unit": "number",
    "base": 41.85,
    "downside": 34,
    "upside": 42.15,
    "live_selected": 41.85,
    "check": 0
   }
  ]
 },
 "checks": {
  "overall_status": "OK",
  "checks": [
   {
    "check": "Balance sheet balances in every month",
    "proves": "Total assets less liabilities and equity, all 24 months",
    "value": 0,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "Cash flow: indirect method equals direct method every month",
    "proves": "P&L and balance sheet movements equal the sum of the schedule cash lines",
    "value": 0,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "Closing cash on the cash flow equals balance sheet cash",
    "proves": "Link integrity",
    "value": 0,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "Retained earnings roll: closing = opening + profit - dividends",
    "proves": "Equity roll-forward to Dec-27",
    "value": 0,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "EBITDA plus FX on the cash flow equals the P&L",
    "proves": "Add-backs complete",
    "value": 0,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "Opening balance sheet at 31-Dec-25 balances",
    "proves": "FY2025 closing balances on Inputs_Actuals and Client_Register",
    "value": 0.0007,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "Project revenue in actual months equals % complete x contract value",
    "proves": "Ledger revenue agrees with the hours-based method, every project, every actual month",
    "value": 0,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "Hours by role equal hours booked to clients, every month",
    "proves": "Timesheets by role and by client agree; forecast demand by role keeps every hour",
    "value": 0,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "Role mixes sum to 100% for every work type",
    "proves": "No hours lost in the role split",
    "value": 0,
    "tolerance": 0.0,
    "status": "OK"
   },
   {
    "check": "Milestone shares sum to 100%",
    "proves": "Every project is fully invoiced",
    "value": 0,
    "tolerance": 0.0,
    "status": "OK"
   },
   {
    "check": "Percentage complete stays between 0% and 100%",
    "proves": "No over-recognition",
    "value": 0,
    "tolerance": 0.0001,
    "status": "OK"
   },
   {
    "check": "Projects finishing within the horizon are fully invoiced by completion",
    "proves": "Milestone invoicing reaches the contract value",
    "value": 0,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "Net revenue by client equals the P&L, every month",
    "proves": "Client blocks and currency totals agree",
    "value": 0,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "Client profitability: allocated net contributions equal EBITDA",
    "proves": "Delivery variance and operating costs are fully allocated",
    "value": 0,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "Client profitability: net revenue equals the P&L",
    "proves": null,
    "value": 0,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "EUR clients show no FX revaluation",
    "proves": "Translation logic is neutral where no currency is involved",
    "value": 0,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "AR aging: GBP clients tie to the ledger (EUR)",
    "proves": "Item listing agrees with the balance at the last actual month",
    "value": 0,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "AR aging: USD clients tie to the ledger (EUR)",
    "proves": "Item listing agrees with the balance at the last actual month",
    "value": 0,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "AR aging: EUR clients tie to the ledger (EUR)",
    "proves": "Item listing agrees with the balance at the last actual month",
    "value": 0,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "AP aging: freelancers tie to the Payables schedule",
    "proves": null,
    "value": 0,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "AP aging: media platforms tie to the Payables schedule",
    "proves": null,
    "value": 0,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "AP aging: production suppliers tie to the Payables schedule",
    "proves": null,
    "value": 0,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "AP aging: overheads tie to the Payables schedule",
    "proves": null,
    "value": 0,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "13-week cash forecast reconciles to the monthly balance sheet at 31-Dec-26",
    "proves": "Weekly phasing distributes exactly the monthly cash lines",
    "value": 0,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "Scenario snapshots are current for the selected scenario",
    "proves": "Live column equals the stored snapshot",
    "value": 0,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "Budget vs actual net revenue bridge reconciles to the P&L variance",
    "proves": "Hours plus rate effects equal the net revenue variance",
    "value": 0,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "EBITDA walk from budget to actual reconciles",
    "proves": "Variances explain the full EBITDA gap",
    "value": 0,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "Trade receivables never negative",
    "proves": null,
    "value": 520386.602,
    "tolerance": 0,
    "status": "OK"
   },
   {
    "check": "Trade payables never negative",
    "proves": null,
    "value": 222709.4815,
    "tolerance": 0,
    "status": "OK"
   },
   {
    "check": "Freelancer hours never negative (every role, every month)",
    "proves": null,
    "value": 0,
    "tolerance": 0,
    "status": "OK"
   },
   {
    "check": "Specific provision never negative",
    "proves": null,
    "value": 0,
    "tolerance": 0,
    "status": "OK"
   },
   {
    "check": "Fixed asset net book value never negative",
    "proves": null,
    "value": 80703.4444,
    "tolerance": 0,
    "status": "OK"
   },
   {
    "check": "Bank loan never negative",
    "proves": null,
    "value": 36000,
    "tolerance": 0,
    "status": "OK"
   },
   {
    "check": "Timeline: months flagged actual equal the last actual month number",
    "proves": null,
    "value": 0,
    "tolerance": 0.5,
    "status": "OK"
   }
  ],
  "business_warnings": [
   {
    "item": "Lowest month-end cash in the forecast (selected scenario)",
    "note": "Below the buffer means a facility draw or action",
    "value": 339326.2395
   },
   {
    "item": "Lowest 13-week closing cash",
    "note": null,
    "value": 374003.2555
   },
   {
    "item": "Lowest forecast delivery utilisation",
    "note": "Below 70% signals idle capacity",
    "value": 0.6025
   },
   {
    "item": "Largest client share of FY2027 net revenue",
    "note": "Above 15% is a concentration risk",
    "value": 0.1776
   },
   {
    "item": "Retainer overservicing, FY2026",
    "note": "Above 10% gives margin away",
    "value": 0.114
   },
   {
    "item": "Disputed receivable at the last actual month (EUR)",
    "note": "Settlement risk",
    "value": 14229.0445
   }
  ]
 },
 "bva": {
  "rows": [
   {
    "key": "h_ret",
    "label": "Retainer hours",
    "ytd_actual": 16404.9,
    "ytd_budget": 16240,
    "ytd_variance": 164.9,
    "ytd_variance_pct": 0.0102,
    "fy_outlook": 24568.3441,
    "fy_budget": 24360,
    "fy_variance": 208.3441,
    "fy_variance_pct": 0.0086,
    "commentary": null
   },
   {
    "key": "h_prj",
    "label": "Project hours",
    "ytd_actual": 6548.2,
    "ytd_budget": 7761,
    "ytd_variance": -1212.8,
    "ytd_variance_pct": -0.1563,
    "fy_outlook": 9730.2819,
    "fy_budget": 11891,
    "fy_variance": -2160.7181,
    "fy_variance_pct": -0.1817,
    "commentary": "First-half projects started later than budgeted; Norbeck absorbed hours without fees."
   },
   {
    "key": "h_tm",
    "label": "Time and materials hours",
    "ytd_actual": 3195.3,
    "ytd_budget": 3714,
    "ytd_variance": -518.7,
    "ytd_variance_pct": -0.1397,
    "fy_outlook": 5146.2321,
    "fy_budget": 5652,
    "fy_variance": -505.7679,
    "fy_variance_pct": -0.0895,
    "commentary": null
   },
   {
    "key": "h_med",
    "label": "Media management hours",
    "ytd_actual": 1960,
    "ytd_budget": 1960,
    "ytd_variance": 0,
    "ytd_variance_pct": 0,
    "fy_outlook": 2940,
    "fy_budget": 2940,
    "fy_variance": 0,
    "fy_variance_pct": 0,
    "commentary": null
   },
   {
    "key": "rev_ret",
    "label": "Retainer fees",
    "ytd_actual": 1489288.235,
    "ytd_budget": 1510648,
    "ytd_variance": -21359.765,
    "ytd_variance_pct": -0.0141,
    "fy_outlook": 2264397.5294,
    "fy_budget": 2265972,
    "fy_variance": -1574.4706,
    "fy_variance_pct": -0.0007,
    "commentary": "Quillfield started in April against a January budget; Pellworth won in June (not budgeted); overservicing 1,870 hours."
   },
   {
    "key": "rev_prj",
    "label": "Fixed-fee project fees",
    "ytd_actual": 599705.0531,
    "ytd_budget": 714000,
    "ytd_variance": -114294.9469,
    "ytd_variance_pct": -0.1601,
    "fy_outlook": 926786.4793,
    "fy_budget": 1094000,
    "fy_variance": -167213.5207,
    "fy_variance_pct": -0.1528,
    "commentary": "Hours effect EUR -112k, rate effect EUR -3k (bridge below)."
   },
   {
    "key": "rev_tm",
    "label": "Time and materials",
    "ytd_actual": 284598.8132,
    "ytd_budget": 319340,
    "ytd_variance": -34741.1868,
    "ytd_variance_pct": -0.1088,
    "fy_outlook": 460502.2437,
    "fy_budget": 486001,
    "fy_variance": -25498.7563,
    "fy_variance_pct": -0.0525,
    "commentary": null
   },
   {
    "key": "rev_mf",
    "label": "Media management fees",
    "ytd_actual": 173122.0486,
    "ytd_budget": 176400,
    "ytd_variance": -3277.9514,
    "ytd_variance_pct": -0.0186,
    "fy_outlook": 280289.6687,
    "fy_budget": 288000,
    "fy_variance": -7710.3313,
    "fy_variance_pct": -0.0268,
    "commentary": "Client media spend below the budgeted level; fee rates unchanged."
   },
   {
    "key": "rev_pt",
    "label": "Production recharged to clients (principal)",
    "ytd_actual": 11270,
    "ytd_budget": 15000,
    "ytd_variance": -3730,
    "ytd_variance_pct": -0.2487,
    "fy_outlook": 49700,
    "fy_budget": 55000,
    "fy_variance": -5300,
    "fy_variance_pct": -0.0964,
    "commentary": null
   },
   {
    "key": "T_rev",
    "label": "REVENUE",
    "ytd_actual": 2557984.1498,
    "ytd_budget": 2735388,
    "ytd_variance": -177403.8502,
    "ytd_variance_pct": -0.0649,
    "fy_outlook": 3981675.9212,
    "fy_budget": 4188973,
    "fy_variance": -207297.0788,
    "fy_variance_pct": -0.0495,
    "commentary": null
   },
   {
    "key": "pt_cost",
    "label": "Production bought in",
    "ytd_actual": -9800,
    "ytd_budget": -13158,
    "ytd_variance": 3358,
    "ytd_variance_pct": 0.2552,
    "fy_outlook": -44000,
    "fy_budget": -48246,
    "fy_variance": 4246,
    "fy_variance_pct": 0.088,
    "commentary": null
   },
   {
    "key": "NR",
    "label": "NET REVENUE",
    "ytd_actual": 2548184.1498,
    "ytd_budget": 2722230,
    "ytd_variance": -174045.8502,
    "ytd_variance_pct": -0.0639,
    "fy_outlook": 3937675.9212,
    "fy_budget": 4140727,
    "fy_variance": -203051.0788,
    "fy_variance_pct": -0.049,
    "commentary": null
   },
   {
    "key": "del_pay",
    "label": "Delivery team payroll",
    "ytd_actual": -1444249.242,
    "ytd_budget": -1469658,
    "ytd_variance": 25408.758,
    "ytd_variance_pct": 0.0173,
    "fy_outlook": -2200085.442,
    "fy_budget": -2210374,
    "fy_variance": 10288.558,
    "fy_variance_pct": 0.0047,
    "commentary": "Developer hired in April; one content producer left in May, not replaced."
   },
   {
    "key": "free",
    "label": "Freelancers",
    "ytd_actual": -145547.87,
    "ytd_budget": -96000,
    "ytd_variance": -49547.87,
    "ytd_variance_pct": -0.5161,
    "fy_outlook": -173675.3152,
    "fy_budget": -144000,
    "fy_variance": -29675.3152,
    "fy_variance_pct": -0.2061,
    "commentary": "Development and design at capacity from June: freelancers covered the peak."
   },
   {
    "key": "dc",
    "label": "DELIVERY CONTRIBUTION",
    "ytd_actual": 958387.0378,
    "ytd_budget": 1156572,
    "ytd_variance": -198184.9622,
    "ytd_variance_pct": -0.1714,
    "fy_outlook": 1563915.164,
    "fy_budget": 1786353,
    "fy_variance": -222437.836,
    "fy_variance_pct": -0.1245,
    "commentary": null
   },
   {
    "key": "dcp",
    "label": "Delivery contribution %",
    "ytd_actual": 0.3761,
    "ytd_budget": 0.4249,
    "ytd_variance": -0.0488,
    "ytd_variance_pct": null,
    "fy_outlook": 0.3972,
    "fy_budget": 0.4314,
    "fy_variance": -0.0342,
    "fy_variance_pct": null,
    "commentary": null
   },
   {
    "key": "nd_pay",
    "label": "Leadership, new business and operations payroll",
    "ytd_actual": -260999.646,
    "ytd_budget": -261176,
    "ytd_variance": 176.354,
    "ytd_variance_pct": 0.0007,
    "fy_outlook": -391588.446,
    "fy_budget": -391764,
    "fy_variance": 175.554,
    "fy_variance_pct": 0.0004,
    "commentary": null
   },
   {
    "key": "bonus",
    "label": "Bonus accrual",
    "ytd_actual": -85262.4444,
    "ytd_budget": -86540,
    "ytd_variance": 1277.5556,
    "ytd_variance_pct": 0.0148,
    "fy_outlook": -129583.6944,
    "fy_budget": -130104,
    "fy_variance": 520.3056,
    "fy_variance_pct": 0.004,
    "commentary": null
   },
   {
    "key": "ox_rent",
    "label": "Rent and service charges, Tallinn office",
    "ytd_actual": -74871,
    "ytd_budget": -75200,
    "ytd_variance": 329,
    "ytd_variance_pct": 0.0044,
    "fy_outlook": -112471,
    "fy_budget": -112800,
    "fy_variance": 329,
    "fy_variance_pct": 0.0029,
    "commentary": null
   },
   {
    "key": "ox_software",
    "label": "Software and tools",
    "ytd_actual": -51410,
    "ytd_budget": -49600,
    "ytd_variance": -1810,
    "ytd_variance_pct": -0.0365,
    "fy_outlook": -77410,
    "fy_budget": -74400,
    "fy_variance": -3010,
    "fy_variance_pct": -0.0405,
    "commentary": null
   },
   {
    "key": "ox_travel",
    "label": "Client travel (UK, US, EU)",
    "ytd_actual": -39657,
    "ytd_budget": -40000,
    "ytd_variance": 343,
    "ytd_variance_pct": 0.0086,
    "fy_outlook": -60057,
    "fy_budget": -60000,
    "fy_variance": -57,
    "fy_variance_pct": -0.0009,
    "commentary": null
   },
   {
    "key": "ox_newbiz",
    "label": "New business, awards and events",
    "ytd_actual": -30898,
    "ytd_budget": -28800,
    "ytd_variance": -2098,
    "ytd_variance_pct": -0.0728,
    "fy_outlook": -45698,
    "fy_budget": -43200,
    "fy_variance": -2498,
    "fy_variance_pct": -0.0578,
    "commentary": null
   },
   {
    "key": "ox_recruit",
    "label": "Recruitment",
    "ytd_actual": -15400,
    "ytd_budget": -12800,
    "ytd_variance": -2600,
    "ytd_variance_pct": -0.2031,
    "fy_outlook": -27600,
    "fy_budget": -19200,
    "fy_variance": -8400,
    "fy_variance_pct": -0.4375,
    "commentary": null
   },
   {
    "key": "ox_training",
    "label": "Training and conferences",
    "ytd_actual": -17774,
    "ytd_budget": -17600,
    "ytd_variance": -174,
    "ytd_variance_pct": -0.0099,
    "fy_outlook": -26574,
    "fy_budget": -26400,
    "fy_variance": -174,
    "fy_variance_pct": -0.0066,
    "commentary": null
   },
   {
    "key": "ox_profees",
    "label": "Accounting, legal and professional fees",
    "ytd_actual": -21127,
    "ytd_budget": -20000,
    "ytd_variance": -1127,
    "ytd_variance_pct": -0.0563,
    "fy_outlook": -31527,
    "fy_budget": -30000,
    "fy_variance": -1527,
    "fy_variance_pct": -0.0509,
    "commentary": null
   },
   {
    "key": "ox_insurance",
    "label": "Insurance (professional indemnity, cyber)",
    "ytd_actual": -6928,
    "ytd_budget": -7200,
    "ytd_variance": 272,
    "ytd_variance_pct": 0.0378,
    "fy_outlook": -10528,
    "fy_budget": -10800,
    "fy_variance": 272,
    "fy_variance_pct": 0.0252,
    "commentary": null
   },
   {
    "key": "ox_office",
    "label": "Office and administration",
    "ytd_actual": -15745,
    "ytd_budget": -16000,
    "ytd_variance": 255,
    "ytd_variance_pct": 0.0159,
    "fy_outlook": -24145,
    "fy_budget": -24000,
    "fy_variance": -145,
    "fy_variance_pct": -0.006,
    "commentary": null
   },
   {
    "key": "ox_it",
    "label": "IT support and equipment leases",
    "ytd_actual": -15064,
    "ytd_budget": -14400,
    "ytd_variance": -664,
    "ytd_variance_pct": -0.0461,
    "fy_outlook": -22664,
    "fy_budget": -21600,
    "fy_variance": -1064,
    "fy_variance_pct": -0.0493,
    "commentary": null
   },
   {
    "key": "ox_bank",
    "label": "Bank, payment and FX charges",
    "ytd_actual": -8904,
    "ytd_budget": -8000,
    "ytd_variance": -904,
    "ytd_variance_pct": -0.113,
    "fy_outlook": -13504,
    "fy_budget": -12000,
    "fy_variance": -1504,
    "fy_variance_pct": -0.1253,
    "commentary": null
   },
   {
    "key": "bad",
    "label": "Bad debts",
    "ytd_actual": -7240.65,
    "ytd_budget": 0,
    "ytd_variance": -7240.65,
    "ytd_variance_pct": 0,
    "fy_outlook": -7114.5222,
    "fy_budget": 0,
    "fy_variance": -7114.5222,
    "fy_variance_pct": 0,
    "commentary": "Half of the disputed Norbeck change request CR-03 provided in June."
   },
   {
    "key": "T_opc",
    "label": "TOTAL OPERATING COSTS",
    "ytd_actual": -651280.7404,
    "ytd_budget": -637316,
    "ytd_variance": -13964.7404,
    "ytd_variance_pct": -0.0219,
    "fy_outlook": -980464.6626,
    "fy_budget": -956268,
    "fy_variance": -24196.6626,
    "fy_variance_pct": -0.0253,
    "commentary": null
   },
   {
    "key": "ebitda",
    "label": "EBITDA",
    "ytd_actual": 307106.2974,
    "ytd_budget": 519256,
    "ytd_variance": -212149.7026,
    "ytd_variance_pct": -0.4086,
    "fy_outlook": 583450.5013,
    "fy_budget": 830085,
    "fy_variance": -246634.4987,
    "fy_variance_pct": -0.2971,
    "commentary": "EUR 212k behind budget YTD; EUR 247k on the full-year outlook."
   },
   {
    "key": "ebitdap",
    "label": "EBITDA % of net revenue",
    "ytd_actual": 0.1205,
    "ytd_budget": 0.1907,
    "ytd_variance": -0.0702,
    "ytd_variance_pct": null,
    "fy_outlook": 0.1482,
    "fy_budget": 0.2005,
    "fy_variance": -0.0523,
    "fy_variance_pct": null,
    "commentary": null
   },
   {
    "key": "fx",
    "label": "FX gains / (losses)",
    "ytd_actual": 6342.8096,
    "ytd_budget": 0,
    "ytd_variance": 6342.8096,
    "ytd_variance_pct": 0,
    "fy_outlook": 6342.8096,
    "fy_budget": 0,
    "fy_variance": 6342.8096,
    "fy_variance_pct": 0,
    "commentary": null
   },
   {
    "key": "np",
    "label": "NET PROFIT",
    "ytd_actual": 180845.8582,
    "ytd_budget": 393442,
    "ytd_variance": -212596.1418,
    "ytd_variance_pct": -0.5403,
    "fy_outlook": 428478.2843,
    "fy_budget": 681187,
    "fy_variance": -252708.7157,
    "fy_variance_pct": -0.371,
    "commentary": null
   },
   {
    "key": "b_cash",
    "label": "Cash at bank",
    "ytd_actual": 367888.0493,
    "ytd_budget": 422000,
    "ytd_variance": -54111.9507,
    "ytd_variance_pct": -0.1282,
    "fy_outlook": 612534.283,
    "fy_budget": 682000,
    "fy_variance": -69465.717,
    "fy_variance_pct": -0.1019,
    "commentary": null
   },
   {
    "key": "b_ar",
    "label": "Trade receivables",
    "ytd_actual": 599808.5013,
    "ytd_budget": 601000,
    "ytd_variance": -1191.4987,
    "ytd_variance_pct": -0.002,
    "fy_outlook": 746044.2019,
    "fy_budget": 651000,
    "fy_variance": 95044.2019,
    "fy_variance_pct": 0.146,
    "commentary": null
   },
   {
    "key": "b_cp",
    "label": "Contract assets less contract liabilities",
    "ytd_actual": 104460.9211,
    "ytd_budget": 37000,
    "ytd_variance": 67460.9211,
    "ytd_variance_pct": 1.8233,
    "fy_outlook": 41503.3717,
    "fy_budget": 36000,
    "fy_variance": 5503.3717,
    "fy_variance_pct": 0.1529,
    "commentary": "Unbilled work on Norbeck and Van Lienden between milestones."
   }
  ],
  "net_revenue_bridge_ytd": {
   "columns": [
    "Stream",
    "Actual net revenue YTD",
    "Budget net revenue YTD",
    "Actual hours YTD",
    "Budget hours YTD",
    "Actual rate",
    "Budget rate",
    "Hours effect",
    "Rate effect",
    "Total variance"
   ],
   "rows": [
    [
     "Retainers",
     1489288.235,
     1510648,
     16404.9,
     16240,
     90.7831,
     93.0202,
     15339.0305,
     -36698.7955,
     -21359.765
    ],
    [
     "Fixed-fee projects",
     599705.0531,
     714000,
     6548.2,
     7761,
     91.5832,
     91.9985,
     -111575.7248,
     -2719.2222,
     -114294.9469
    ],
    [
     "Time and materials",
     284598.8132,
     319340,
     3195.3,
     3714,
     89.0679,
     85.9828,
     -44599.2617,
     9858.0749,
     -34741.1868
    ],
    [
     "Media management",
     173122.0486,
     176400,
     1960,
     1960,
     88.3276,
     90,
     0,
     -3277.9514,
     -3277.9514
    ],
    [
     "Production mark-up (no hours)",
     1470,
     1842,
     null,
     null,
     null,
     null,
     -372,
     0,
     -372
    ],
    [
     "TOTAL",
     2548184.1498,
     2722230,
     28108.4,
     29675,
     null,
     null,
     -141207.956,
     -32837.8942,
     -174045.8502
    ]
   ]
  },
  "ebitda_walk_ytd": [
   {
    "step": "Budget EBITDA YTD",
    "value": 519256
   },
   {
    "step": "Net revenue variance",
    "value": -174045.8502
   },
   {
    "step": "Delivery payroll variance",
    "value": 25408.758
   },
   {
    "step": "Freelancer variance",
    "value": -49547.87
   },
   {
    "step": "Leadership, new business and operations payroll and bonus variance",
    "value": 1453.9096
   },
   {
    "step": "Overheads and bad debts variance",
    "value": -15418.65
   },
   {
    "step": "Actual EBITDA YTD",
    "value": 307106.2974
   }
  ]
 },
 "cash_13w_control": {
  "low": 374003.2555,
  "lowwk": "2026-10-02",
  "short": 24003.2555,
  "fac": 300000,
  "fachead": 300000,
  "taxwk": 272411.1695
 },
 "client_profitability": {
  "columns": [
   "Client",
   "Currency",
   "Status",
   "Net revenue YTD",
   "Net revenue FY2026",
   "Share of net revenue",
   "Hours FY2026",
   "Standard value FY2026",
   "Realisation",
   "Delivery cost at standard",
   "Contribution",
   "Contribution %",
   "Retainer overservice hours",
   "Share of delivery variance",
   "Share of operating costs",
   "Net contribution",
   "Net margin",
   "Net revenue FY2027",
   "Receivable at last actual (EUR)",
   "Debtor days at last actual"
  ],
  "rows": [
   [
    "Halvergate Money Ltd",
    "GBP",
    "Active",
    476986.7984,
    737410.9998,
    0.1873,
    7160.655,
    788728.6875,
    0.9349,
    385708.8555,
    351702.1443,
    0.4769,
    706.455,
    -35978.8691,
    -183612.2224,
    132111.0527,
    0.1792,
    654025.7799,
    60375.5137,
    31.1286
   ],
   [
    "Thornbury & Vale Home Ltd",
    "GBP",
    "Active",
    188094.4376,
    288009.205,
    0.0731,
    3072.375,
    316116.0563,
    0.9111,
    143541.0141,
    144468.1908,
    0.5016,
    192.375,
    -15437.216,
    -71713.0748,
    57317.9,
    0.199,
    271130.0906,
    69053.393,
    24.7448
   ],
   [
    "Pellworth Health Ltd",
    "GBP",
    "Active",
    40126.8977,
    93835.0987,
    0.0238,
    1033.5533,
    105990.8943,
    0.8853,
    48084.6214,
    45750.4774,
    0.4876,
    53.5533,
    -5193.1115,
    -23364.543,
    17192.8228,
    0.1832,
    150221.8382,
    14792.0325,
    33.4904
   ],
   [
    "Ashgrove Mobility Ltd",
    "GBP",
    "Active",
    161070.2232,
    246170.0436,
    0.0625,
    2637.7165,
    290148.8101,
    0.8484,
    145231.8789,
    100938.1647,
    0.41,
    0,
    -13253.2646,
    -61295.3005,
    26389.5997,
    0.1072,
    258086.623,
    28307.5845,
    46.3328
   ],
   [
    "Tidewell Learning Ltd",
    "GBP",
    "Active",
    157777.3869,
    185087.7185,
    0.047,
    1681.4499,
    182784.4937,
    1.0126,
    89365.2355,
    95722.483,
    0.5172,
    0,
    -8448.4824,
    -46086.0597,
    41187.941,
    0.2225,
    70597.7956,
    0,
    0
   ],
   [
    "Ravenmoor Travel Ltd",
    "GBP",
    "Active",
    237268.8787,
    321333.889,
    0.0816,
    3166.385,
    348533.8025,
    0.922,
    170417.4029,
    150916.4861,
    0.4697,
    193.185,
    -15909.5713,
    -80010.7803,
    54996.1344,
    0.1711,
    244124.7898,
    20668.4102,
    29.8968
   ],
   [
    "Marlowe Street Coffee Roasters Ltd",
    "GBP",
    "Active",
    33553.7225,
    67412.753,
    0.0171,
    560,
    60788,
    1.109,
    29633.2049,
    37779.5481,
    0.5604,
    0,
    -2813.7324,
    -16785.4906,
    18180.3251,
    0.2697,
    0,
    6104.8838,
    18.0211
   ],
   [
    "Quillfield Software Inc.",
    "USD",
    "Active",
    112516.439,
    309286.4976,
    0.0785,
    3121.652,
    343090.046,
    0.9015,
    167701.1604,
    141585.3372,
    0.4578,
    236.652,
    -15684.8094,
    -77011.0308,
    48889.497,
    0.1581,
    256143.4978,
    31837.6854,
    43.1668
   ],
   [
    "Harrowgate Outdoor Co.",
    "USD",
    "Active",
    127302.7377,
    197727.8843,
    0.0502,
    2055.465,
    212309.802,
    0.9313,
    96510.8716,
    101217.0126,
    0.5119,
    75.465,
    -10327.7293,
    -49233.4075,
    41655.8758,
    0.2107,
    189541.2211,
    195607.2008,
    63.9795
   ],
   [
    "Norbeck Analytics Inc.",
    "USD",
    "Active",
    164949.0481,
    195585.4314,
    0.0497,
    2950,
    320222.5,
    0.6108,
    156103.49,
    39481.9414,
    0.2019,
    0,
    -14822.3401,
    -48699.9458,
    -24040.3446,
    -0.1229,
    0,
    14229.0445,
    22.2933
   ],
   [
    "Voltaro Energie GmbH",
    "EUR",
    "Active",
    148000,
    263343.75,
    0.0669,
    3234.1125,
    334138.8619,
    0.7881,
    153105.5937,
    110238.1563,
    0.4186,
    540.675,
    -16249.8697,
    -65571.4808,
    28416.8059,
    0.1079,
    203904.25,
    19171.34,
    31.5032
   ],
   [
    "Lindgrove Retail B.V.",
    "EUR",
    "Active",
    158048.9,
    240648.9,
    0.0611,
    2608.695,
    268821.846,
    0.8952,
    122123.9605,
    118524.9395,
    0.4925,
    88.695,
    -13107.4456,
    -59920.559,
    45496.9349,
    0.1891,
    235468,
    31062.21,
    16.6882
   ],
   [
    "Veldhaven Fietsen B.V.",
    "EUR",
    "Active",
    134349.79,
    204299.79,
    0.0519,
    2340.42,
    241171.176,
    0.8471,
    109561.8006,
    94737.9894,
    0.4637,
    120.42,
    -11759.492,
    -50869.7843,
    32108.7132,
    0.1572,
    183125,
    37007.38,
    26.0552
   ],
   [
    "Van Lienden Mobiliteit B.V.",
    "EUR",
    "Active",
    69973.33,
    96000,
    0.0244,
    990,
    107464.5,
    0.8933,
    52387.2729,
    43612.7271,
    0.4543,
    0,
    -4974.2769,
    -23903.5943,
    14734.856,
    0.1535,
    0,
    35674.26,
    84.7264
   ],
   [
    "Sarvivaara Oy",
    "EUR",
    "Ending",
    108000,
    121500,
    0.0309,
    1504.5787,
    154294.5508,
    0.7875,
    69998.4192,
    51501.5808,
    0.4239,
    244.5788,
    -7559.7891,
    -30252.9865,
    13688.8051,
    0.1127,
    0,
    10590.69,
    23.8487
   ],
   [
    "Carrigmore Foods DAC",
    "EUR",
    "Active",
    64007.71,
    98247.4034,
    0.025,
    1084.4567,
    119021.9905,
    0.8255,
    59313.3594,
    38934.0439,
    0.3963,
    0,
    -5448.8768,
    -24463.1882,
    9021.9789,
    0.0918,
    103840.4875,
    5867.45,
    22.7698
   ],
   [
    "Tammevalla Kodu O\u00dc",
    "EUR",
    "Active",
    91544.86,
    139820.86,
    0.0355,
    1561.29,
    160932.612,
    0.8688,
    73115.9299,
    66704.9301,
    0.4771,
    61.29,
    -7844.7361,
    -34814.8032,
    24045.3908,
    0.172,
    136800,
    19726.5996,
    14.7838
   ],
   [
    "Other Estonian clients (11 smaller accounts)",
    "EUR",
    "Active",
    74612.99,
    114069.5805,
    0.029,
    1427.609,
    157036.9873,
    0.7264,
    78603.7231,
    35465.8574,
    0.3109,
    0,
    -7173.0528,
    -28402.8434,
    -110.0389,
    -0.001,
    119662.0409,
    6973.4732,
    19.0507
   ],
   [
    "Ferncliff Robotics Inc.",
    "USD",
    "Prospect",
    0,
    17886.1165,
    0.0045,
    194.4444,
    21106.9444,
    0.8474,
    10289.3072,
    7596.8093,
    0.4247,
    0,
    -976.9904,
    -4453.5674,
    2166.2515,
    0.1211,
    120954.8631,
    0,
    0
   ],
   [
    "Brackenholt Insurance Ltd",
    "GBP",
    "Prospect",
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    169297.5901,
    0,
    0
   ],
   [
    "Aurelwyn Hotels B.V.",
    "EUR",
    "Prospect",
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    78100,
    0,
    0
   ],
   [
    "New clients not yet identified (FY2027 run-rate)",
    "EUR",
    "Prospect",
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    744192,
    0,
    0
   ],
   [
    "TOTAL",
    null,
    null,
    2548184.1498,
    3937675.9212,
    1,
    42384.8581,
    4532702.5614,
    0.8687,
    2160797.1018,
    1776878.8194,
    0.4513,
    2513.3441,
    -212963.6555,
    -980464.6626,
    583450.5013,
    0.1482,
    4189215.8677,
    607049.1513,
    null
   ]
  ]
 },
 "concentration": {
  "Largest client share of net revenue, FY2026": 0.1873,
  "Top five clients share of net revenue, FY2026": 0.4874,
  "Largest client share of net revenue, FY2027": 0.1776
 },
 "renewal_calendar": {
  "columns": [
   "Contract",
   "Client",
   "Term",
   "Annual fees (EUR at the last actual rate)",
   "Term ends",
   "Renewal % selected",
   "Expected retained value",
   "Value at risk",
   "Overservicing YTD"
  ],
  "rows": [
   [
    "R-SRV",
    "SRV",
    "Notice received Jun-26, ends 30-Sep-26",
    162000,
    "2026-09-30",
    0,
    0,
    162000,
    0.2008
   ],
   [
    "R-HAL",
    "HAL",
    "Annual, renews 31-Dec",
    588709.3948,
    "2026-12-31",
    1,
    588709.3948,
    0,
    0.1521
   ],
   [
    "R-VOL",
    "VOL",
    "Annual, renews 31-Dec",
    222000,
    "2026-12-31",
    0.85,
    188700,
    33300,
    0.2635
   ],
   [
    "R-TAM",
    "TAM",
    "Annual, renews 31-Dec",
    108000,
    "2026-12-31",
    0.95,
    102600,
    5400,
    0.0597
   ],
   [
    "R-VDH",
    "VDH",
    "Annual, renews 28-Feb",
    168000,
    "2027-02-28",
    0.85,
    142800,
    25200,
    0.0769
   ],
   [
    "R-THV",
    "THV",
    "Annual, renews 31-Mar",
    210253.3553,
    "2027-03-31",
    0.9,
    189228.0198,
    21025.3355,
    0.099
   ],
   [
    "R-QFS",
    "QFS",
    "12 months from Apr-26",
    270352.2378,
    "2027-03-31",
    0.9,
    243317.014,
    27035.2238,
    0.1411
   ],
   [
    "R-PEL",
    "PEL",
    "12 months from Jun-26",
    161194.2391,
    "2027-05-31",
    0.85,
    137015.1032,
    24179.1359,
    0.066
   ],
   [
    "R-RVM",
    "RVM",
    "Annual, renews 30-Jun",
    252304.0264,
    "2027-06-30",
    0.9,
    227073.6237,
    25230.4026,
    0.0941
   ],
   [
    "R-HOC",
    "HOC",
    "Annual, renews 30-Jun",
    114379.7929,
    "2027-06-30",
    0.9,
    102941.8136,
    11437.9793,
    0.0736
   ],
   [
    "R-LIN",
    "LIN",
    "Annual, renews 30-Sep",
    192000,
    "2027-09-30",
    0.9,
    172800,
    19200,
    0.0498
   ],
   [
    "TOTAL",
    null,
    null,
    2449193.0462,
    null,
    null,
    2095184.9691,
    354008.0771,
    null
   ]
  ]
 },
 "cfo_report": {
  "reporting_line": "Reporting month: Aug-26 actuals, Base scenario for the outlook. Amounts in EUR. Every figure is a live link to the model; the narrative recalculates with the inputs.",
  "sections": [
   {
    "title": "1. HEADLINE",
    "paragraphs": [
     "Year to date net revenue is EUR 2,548k, 6.4% below budget, and EBITDA is EUR 307k (12.1% of net revenue) against EUR 519k (19.1%) budgeted. The gap is volume more than price: fixed-fee project hours ran 16% below budget because first-half work started late, worth EUR 112k of net revenue, while retainer overservicing (13% above scope) and the Norbeck overrun held realisation to 85% of the rate card. Freelancers cost EUR 50k more than budget when development and design ran at capacity from June.",
     "Full-year outlook (Base): net revenue EUR 3,938k (-4.9% vs budget), EBITDA EUR 583k (14.8% against 20.0% budgeted). The last four months run at EUR 347k of net revenue a month against EUR 319k so far, carried by the Quillfield and Pellworth retainers, five live projects and the Quillfield launch campaign; Sarvivaara leaves at the end of September, taking EUR 162k of annual fees.",
     "Cash is EUR 368k at Aug-26, after the EUR 280k dividend in June and EUR 79k of income tax on it in July. The 13-week low is EUR 374k in the week ending 02-Oct, EUR 24k above the EUR 350k buffer with the overdraft undrawn. The lowest forecast month end is EUR 339k in Sep-26, on payroll day, EUR 11k below the buffer. Harrowgate owes EUR 196k, most of it media the agency has already paid the platforms for.",
     "FY2027 Base: net revenue EUR 4,189k (6.4% growth), EBITDA of EUR 539k (12.9% of net revenue), below FY2026 because the pay review, the head of delivery and the first-quarter hires land before the new work. 28% of FY2027 fee revenue is not yet won: the named pipeline plus a run-rate of new project wins sized on the FY2026 win record. The Downside (Halvergate leaves at its December renewal) turns FY2027 into an EBITDA loss of EUR 170k and takes cash to EUR 50k: survivable with the overdraft and a 4-person capacity cut, not without them."
    ],
    "rows": []
   },
   {
    "title": "2. WHAT HAPPENED YEAR TO DATE (BvA bridge, Utilisation, Retainers)",
    "paragraphs": [
     "Net revenue bridge against budget (BvA): retainers EUR 15k more from hours and EUR 37k less from rate, because overservicing adds hours without adding fees; fixed-fee projects EUR 112k less from hours and EUR 3k less from rate; time and materials EUR 45k less from hours and EUR 10k more from rate; media management EUR 3k less in fees, as client media spend ran below the budgeted level. Rate effects include realisation and FX.",
     "Costs: delivery payroll is EUR 25k better than budget (a developer joined in April; a content producer left in May and was not replaced), freelancers EUR 50k worse, leadership payroll and bonus EUR 1k better and overheads within EUR 8k of budget. A EUR 7,241 specific provision covers half of the disputed Norbeck change request CR-03. FX on client balances is a EUR 6k gain."
    ],
    "rows": []
   },
   {
    "title": "3. CLIENTS: CONCENTRATION, PROFITABILITY, OVERSERVICING AND RENEWALS (Client_Profitability, Retainers, Pipeline)",
    "paragraphs": [
     "Halvergate is 18.7% of FY2026 net revenue and the top five clients 49%. Fully allocated, Halvergate contributes EUR 132k (18%) and Norbeck loses EUR 24k: the Norbeck website has taken 2,487 hours to date against 2,300 budgeted, a realisation of 61% on the client, and its completion milestone only falls due in October.",
     "Overservicing: retainer teams worked 1,870 hours above scope year to date (13%), EUR 93k of payroll at standard cost. Voltaro (26% over scope), Sarvivaara (20%) and Quillfield (14%) are the worst. The Base case assumes the October scope reviews remove 30% of each client overservicing; Voltaro renews in December and should renew on its actual hours or a smaller scope.",
     "Renewals: EUR 2,449k of annual retainer fees reach the end of their term within the next thirteen months; the Base case expects EUR 2,095k to be retained and puts EUR 354k at risk, including the EUR 162k already lost with Sarvivaara. Halvergate on 31 December is the single largest decision: EUR 589k of fees a year. New business year to date: 8 wins from 19 proposals, a win rate of 50% by count and 45% by value."
    ],
    "rows": []
   },
   {
    "title": "4. PEOPLE, UTILISATION AND REALISATION (Utilisation, People)",
    "paragraphs": [
     "Utilisation of productive hours is 71% year to date against the 75% the standard cost rates assume, so EUR 96k of delivery payroll was not recovered in client work. The spread matters more than the average: development ran at 82% and bought 787 freelancer hours, performance marketing at 85%, while content ran at 53% and strategy and account management at 54%. Moving one content role into design production would cut freelancer spend without a new hire.",
     "People costs (payroll, bonus and freelancers) are 74% of FY2026 net revenue and net revenue per head is EUR 103k. The hiring plan adds a developer in October for the Quillfield campaign and a performance specialist in November; the January developer and the March designer are tied to Ferncliff and Brackenholt and sit in the forecast at their win probabilities. The rule should hold in practice: no delivery hire before the work behind it is signed."
    ],
    "rows": []
   },
   {
    "title": "5. CASH, WORKING CAPITAL, FX AND THE 13 WEEKS (BS, Clients, FX, Cash_13W)",
    "paragraphs": [
     "Working capital at Aug-26: receivables EUR 600k (32 debtor days), unbilled work EUR 138k (mostly Norbeck and Van Lienden between milestones), invoiced in advance EUR 34k. Media is the structural pressure: the agency pays the platforms in about 30 days and rebills media at cost, so every media client on longer terms is funded by the agency. Harrowgate, on 60 days, owes EUR 196k against EUR 235k owed to the platforms for all clients.",
     "The 13 weeks from 12-Sep: opening cash EUR 437k, receipts EUR 1,865k, payments EUR 1,617k, closing EUR 685k on 11-Dec. Net salaries leave on the last banking day and the TSD payroll taxes on the 10th, so the ten days from the last banking day to the 10th are the pinch point; EUR 272k of tax leaves in the window. The forecast reconciles to the December balance sheet to the euro.",
     "FX: 68% of FY2026 revenue is invoiced in pounds and dollars (49% GBP, 19% USD) while almost every cost is in euro. A 5% weaker pound and dollar would cost EUR 26k on the balances held at Aug-26 and about EUR 114k of FY2027 revenue. The Downside assumes a 4% move."
    ],
    "rows": []
   },
   {
    "title": "6. SCENARIOS (Scenarios sheet; snapshot values from three full model runs)",
    "paragraphs": [
     "Base: FY2027 net revenue EUR 4,189k, EBITDA of EUR 539k (12.9%), lowest cash EUR 339k. Downside (Halvergate leaves at renewal, lower renewal and win rates, no fee increases, pound and dollar 4% weaker, clients 15 days slower, hiring frozen and a 4-person capacity cut from Mar-27): FY2027 net revenue EUR 2,837k, an EBITDA loss of EUR 170k, lowest cash EUR 50k. Upside: FY2027 net revenue EUR 4,808k, EBITDA of EUR 1,081k (22.5%).",
     "The Downside is the case to plan for, not to hope against: it takes EUR 1,352k out of FY2027 net revenue, Halvergate the largest part, and cash falls EUR 300k below the buffer even after the capacity cut. Triggers, reviewed monthly: Halvergate renewal not signed by 30 November; utilisation below 65% for two months; overservicing above 12% of scope; Harrowgate or any media balance past due."
    ],
    "rows": []
   },
   {
    "title": "7. RISK REGISTER (scored 1 to 5; score = likelihood x impact)",
    "paragraphs": [],
    "rows": [
     [
      "Client concentration: Halvergate is 19% of FY2026 net revenue and renews on 31 December; the top five clients are 49%.",
      3,
      5,
      15,
      "Renewal proposal in October with the growth marketing pod; executive sponsor meeting before 30 November; grow two mid-size retainers to reduce the share below 15%; Founder and CEO"
     ],
     [
      "Cash buffer: forecast low of EUR 339k against the EUR 350k buffer; media is paid before clients pay",
      3,
      4,
      12,
      "Weekly 13-week review; media clients on 30-day or prepaid terms; overdraft confirmed; Operations and finance manager"
     ],
     [
      "Overservicing: 13% of scoped retainer hours given away (EUR 93k at standard cost)",
      4,
      3,
      12,
      "Monthly scope report to each client; change requests above scope; renew on actual hours; Head of delivery (founder until the hire)"
     ],
     [
      "Norbeck: project at 61% realisation and CR-03 (USD 16,500) disputed",
      4,
      2,
      8,
      "Fix the go-live date; settlement meeting in October; completion milestone invoiced on go-live; Founder and CEO"
     ],
     [
      "Capacity mismatch: development at 82% and content at 53% utilisation",
      3,
      3,
      9,
      "Cross-train one content producer into design production; freelancer panel for development peaks; Operations and finance manager"
     ],
     [
      "Pipeline dependency: 28% of FY2027 fee revenue not yet won",
      3,
      4,
      12,
      "Pipeline review every two weeks with win-probability discipline; two retainer wins targeted by Q1-27; New business director"
     ],
     [
      "FX: 68% of revenue in GBP and USD against euro costs",
      3,
      3,
      9,
      "Price new UK and US work with an FX review clause; convert receipts on arrival; consider forward cover once GBP exposure is stable; Operations and finance manager"
     ],
     [
      "Pay inflation and hiring ahead of work: the FY2027 pay review and new roles land before the new work",
      3,
      3,
      9,
      "Hires only against signed work; pay review tied to utilisation and realisation targets; Founder and CEO"
     ],
     [
      "Credit exposure: Harrowgate owes EUR 196k on 60-day terms, mostly media already paid for",
      2,
      4,
      8,
      "Media prepaid or on 30 days from the next insertion order; credit limit on unpaid media; Operations and finance manager"
     ],
     [
      "Key person: the founder leads creative direction and new business",
      2,
      4,
      8,
      "Head of delivery hire in April; second pitch lead from the account team; documented client relationships; Founder and CEO"
     ]
    ],
    "columns": [
     "Risk",
     "Likelihood",
     "Impact",
     "Score",
     "Mitigation and owner"
    ]
   },
   {
    "title": "8. ACTIONS (owner, due date, status)",
    "paragraphs": [],
    "rows": [
     [
      "Halvergate renewal: proposal with the growth marketing pod and a scope matched to actual hours, signed before 30 November",
      "Founder and CEO",
      "2026-11-30",
      "Open",
      "Renewal signed; FY2027 fee agreed"
     ],
     [
      "Scope reviews with Voltaro, Quillfield and Halvergate: change requests above scope, monthly scope report",
      "Head of delivery (founder until April)",
      "2026-10-31",
      "Open",
      "Overservicing below 10% of scope for Q4"
     ],
     [
      "Norbeck: fix the go-live date, settle CR-03 and invoice the completion milestone on go-live",
      "Founder and CEO",
      "2026-10-31",
      "Open",
      "CR-03 settled in writing; milestone invoiced"
     ],
     [
      "Move Harrowgate media to prepaid or 30-day terms from the next insertion order; collect the June media invoice",
      "Operations and finance manager",
      "2026-09-30",
      "In progress",
      "Harrowgate balance below one month of billing"
     ],
     [
      "Confirm the EUR 300k overdraft through FY2027 and pre-agree drawing mechanics for the weeks around the 10th",
      "Operations and finance manager",
      "2026-10-15",
      "Open",
      "Facility letter on file"
     ],
     [
      "Cross-train one content producer into design production before the Quillfield campaign",
      "Head of delivery (founder until April)",
      "2026-10-15",
      "Open",
      "Design freelancer hours down by half in Q4"
     ],
     [
      "Link each delivery hire to signed work: January developer only on the Ferncliff signature, March designer only on Brackenholt",
      "Founder and CEO",
      "2026-12-15",
      "Open",
      "No hire without a signed statement of work"
     ],
     [
      "FX clause in new UK and US statements of work; review forward cover once GBP receipts are predictable",
      "Operations and finance manager",
      "2026-11-30",
      "Open",
      "Clause in every new contract"
     ],
     [
      "Downside plan: triggers (renewal, utilisation, overservicing, media balances), the capacity response and the order of cash levers",
      "BriQs CFO",
      "2026-10-15",
      "Open",
      "Plan approved by the founder and attached to the October pack"
     ]
    ],
    "columns": [
     "Action",
     "Owner",
     "Due",
     "Status",
     "Measure of done"
    ]
   },
   {
    "title": "9. INFORMATION NEEDED BEFORE THE SEPTEMBER CLOSE",
    "paragraphs": [
     "Timesheet export by person, client and task for September, with the scope hours of every retainer.",
     "Project manager estimates to complete for Norbeck, Tidewell, Van Lienden, Marlowe Street and the Halvergate onboarding project.",
     "Norbeck position on CR-03 in writing and the agreed go-live date.",
     "Platform invoices for September media and the client media funding terms (prepaid or credit) for every media client.",
     "ECB monthly average rates for September and the bank conversion rates achieved on GBP and USD receipts.",
     "The FY2027 pay review proposal and the head of delivery offer, before the FY2027 budget is set.",
     "Prepared by BriQs Group for the directors of Kaldmere Studio O\u00dc (fictional demonstration company). Model status at the time of preparation: OK."
    ],
    "rows": []
   }
  ]
 },
 "headline_series": {
  "NR": {
   "key": "NR",
   "label": "NET REVENUE",
   "basis": "revenue - production bought in",
   "section": "REVENUE (IFRS 15; media spend rebilled at cost is excluded, agent)",
   "format": "int",
   "kind": "calc",
   "bold": true,
   "values": [
    284790.9376,
    263475.8435,
    280968.708,
    305539.8989,
    322408.5005,
    356354.4274,
    357534.5251,
    377111.3088,
    382544.2514,
    363221.0198,
    342046.3031,
    301680.1971,
    309181.7094,
    335204.0585,
    362074.4695,
    375776.3889,
    374765.6587,
    363092.7081,
    353507.0062,
    348107.0708,
    336724.456,
    350703.1521,
    352071.614,
    328007.5757
   ],
   "fy2026": 3937675.9212,
   "fy2027": 4189215.8677,
   "total_rule": "sum"
  },
  "dc": {
   "key": "dc",
   "label": "DELIVERY CONTRIBUTION",
   "basis": "net revenue - delivery costs",
   "section": "DELIVERY COSTS",
   "format": "int",
   "kind": "calc",
   "bold": true,
   "values": [
    101608.1956,
    80193.3975,
    95494.488,
    112579.8349,
    139506.7685,
    153530.5014,
    114842.0411,
    160631.8108,
    189350.2062,
    169598.2198,
    143472.9031,
    103106.7971,
    98589.4533,
    124611.8025,
    149301.0058,
    163002.9252,
    161992.195,
    150319.2444,
    124499.4821,
    135333.6072,
    123950.9924,
    137929.6884,
    139298.1503,
    115234.1121
   ],
   "fy2026": 1563915.164,
   "fy2027": 1624062.6588,
   "total_rule": "sum"
  },
  "ebitda": {
   "key": "ebitda",
   "label": "EBITDA",
   "basis": "",
   "section": "OPERATING COSTS",
   "format": "int",
   "kind": "calc",
   "bold": true,
   "values": [
    25230.3776,
    -629.3483,
    9527.9225,
    30847.5426,
    53724.5274,
    67693.0978,
    36214.5416,
    84497.6362,
    109642.3162,
    85062.5198,
    58815.8008,
    22823.5671,
    13059.5753,
    41106.9245,
    63887.0674,
    66667.512,
    70156.7818,
    58483.8312,
    32664.0689,
    43498.194,
    32115.5792,
    46094.2752,
    47462.7371,
    23398.6989
   ],
   "fy2026": 583450.5013,
   "fy2027": 538595.2457,
   "total_rule": "sum"
  },
  "np": {
   "key": "np",
   "label": "NET PROFIT",
   "basis": "",
   "section": "BELOW EBITDA",
   "format": "int",
   "kind": "calc",
   "bold": true,
   "values": [
    17942.3464,
    -8590.1477,
    9284.0357,
    21689.6759,
    47793.2635,
    -10776.1398,
    28792.4725,
    74710.3516,
    102650.3162,
    77934.5198,
    51551.8008,
    15495.7893,
    5632.0198,
    33612.0911,
    55696.0674,
    58337.012,
    61759.0041,
    -10407.649,
    24131.7356,
    34898.5829,
    23448.6903,
    37360.1086,
    38661.2927,
    14529.9767
   ],
   "fy2026": 428478.2843,
   "fy2027": 377658.9321,
   "total_rule": "sum"
  },
  "cash": {
   "key": "cash",
   "label": "Cash at bank",
   "basis": "CF",
   "section": "ASSETS",
   "format": "int",
   "kind": "calc",
   "bold": false,
   "values": [
    492554.9305,
    675877.6302,
    579312.2071,
    520521.0509,
    600557.8301,
    272487.4753,
    278163.985,
    367888.0493,
    339326.2395,
    420682.1088,
    567960.4875,
    612534.283,
    640194.1607,
    794311.6488,
    644595.941,
    637777.3006,
    748210.6121,
    566846.1796,
    562787.4479,
    664145.7304,
    682973.5728,
    712826.7226,
    810264.2607,
    803759.8606
   ],
   "fy2026": 612534.283,
   "fy2027": 803759.8606,
   "total_rule": "last"
  },
  "utilisation": {
   "key": "util",
   "label": "UTILISATION (own billable / productive hours)",
   "basis": "",
   "section": "DELIVERY TOTALS",
   "format": "pct",
   "kind": "calc",
   "bold": true,
   "values": [
    0.6246,
    0.6078,
    0.5953,
    0.6544,
    0.7432,
    0.825,
    0.8566,
    0.8235,
    0.7545,
    0.6654,
    0.6459,
    0.7294,
    0.6025,
    0.6727,
    0.6536,
    0.7062,
    0.7028,
    0.7423,
    0.8386,
    0.7285,
    0.6068,
    0.6038,
    0.644,
    0.7542
   ],
   "fy2026": 0.7038,
   "fy2027": 0.6817,
   "total_rule": "ratio"
  },
  "realisation": {
   "key": "real",
   "label": "REALISATION (fee revenue / standard value)",
   "basis": "",
   "section": "DELIVERY TOTALS",
   "format": "pct",
   "kind": "calc",
   "bold": true,
   "values": [
    0.8523,
    0.8444,
    0.8484,
    0.8558,
    0.8441,
    0.8416,
    0.8409,
    0.8556,
    0.8878,
    0.9094,
    0.9258,
    0.9044,
    0.8549,
    0.8634,
    0.8766,
    0.8872,
    0.8891,
    0.8878,
    0.8837,
    0.8804,
    0.8801,
    0.8869,
    0.9009,
    0.8942
   ],
   "fy2026": 0.8675,
   "fy2027": 0.8823,
   "total_rule": "ratio"
  },
  "retainer_fees": {
   "key": "T_eur",
   "label": "RETAINER FEES (EUR)",
   "basis": "all contracts",
   "section": "TOTALS BY RETAINER TYPE (EUR and hours)",
   "format": "int",
   "kind": "calc",
   "bold": true,
   "values": [
    166561.2489,
    166356.5235,
    166419.453,
    189372.8169,
    189228.2184,
    203178.6807,
    204071.873,
    204099.4205,
    203902.3236,
    190402.3236,
    190402.3236,
    190402.3236,
    195930.8133,
    195930.8133,
    198510.0638,
    200354.2194,
    200354.2194,
    206969.6687,
    205017.5226,
    205017.5226,
    205017.5226,
    203993.5226,
    203993.5226,
    203993.5226
   ],
   "fy2026": 2264397.5294,
   "fy2027": 2425082.9336,
   "total_rule": "sum"
  }
 }
}