{
 "meta": {
  "company": "Turnoval Software S.L. (fictional demonstration company)",
  "fictional": true,
  "jurisdiction": "Spain",
  "industry": "SaaS",
  "currency": "EUR",
  "last_actual_month": "2026-08-31",
  "scenario": "Base",
  "generated": "2026-09-23",
  "source_workbook": "Turnoval_Software_SaaS_Finance_Pack_Aug26_FICTIONAL.xlsx",
  "model_status": "OK",
  "formula_errors": 0,
  "formulas": 30396,
  "integrity_checks_passed": 46,
  "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": "arr_dec26",
    "label": "ARR at Dec-26",
    "unit": "EUR",
    "base": 6888751.6071,
    "downside": 6405803.8722,
    "upside": 7086543.1171,
    "live_selected": 6888751.6071,
    "check": 0
   },
   {
    "key": "arr_dec27",
    "label": "ARR at Dec-27",
    "unit": "EUR",
    "base": 8520741.712,
    "downside": 6380841.8421,
    "upside": 9548382.9685,
    "live_selected": 8520741.712,
    "check": 0
   },
   {
    "key": "fy26_rev",
    "label": "FY2026 revenue (outlook)",
    "unit": "EUR",
    "base": 6425973.0416,
    "downside": 6323280.992,
    "upside": 6468204.3903,
    "live_selected": 6425973.0416,
    "check": 0
   },
   {
    "key": "fy27_rev",
    "label": "FY2027 revenue",
    "unit": "EUR",
    "base": 8028569.4885,
    "downside": 6478959.3935,
    "upside": 8736030.2813,
    "live_selected": 8028569.4885,
    "check": 0
   },
   {
    "key": "fy27_gpm",
    "label": "FY2027 gross margin %",
    "unit": "%",
    "base": 0.791,
    "downside": 0.7827,
    "upside": 0.8027,
    "live_selected": 0.791,
    "check": 0
   },
   {
    "key": "fy26_ebitda",
    "label": "FY2026 EBITDA",
    "unit": "EUR",
    "base": -670368.3826,
    "downside": -774586.1337,
    "upside": -630591.6191,
    "live_selected": -670368.3826,
    "check": 0
   },
   {
    "key": "fy27_ebitda",
    "label": "FY2027 EBITDA",
    "unit": "EUR",
    "base": -139041.3905,
    "downside": -452305.701,
    "upside": 380478.6489,
    "live_selected": -139041.3905,
    "check": 0
   },
   {
    "key": "fy27_ebitdap",
    "label": "FY2027 EBITDA % of revenue",
    "unit": "%",
    "base": -0.0173,
    "downside": -0.0698,
    "upside": 0.0436,
    "live_selected": -0.0173,
    "check": 0
   },
   {
    "key": "fy27_np",
    "label": "FY2027 net profit / (loss)",
    "unit": "EUR",
    "base": -984211.4898,
    "downside": -1273012.9437,
    "upside": -465255.3158,
    "live_selected": -984211.4898,
    "check": 0
   },
   {
    "key": "nrr_dec27",
    "label": "Net revenue retention at Dec-27 (trailing 12 months)",
    "unit": "%",
    "base": 0.9485,
    "downside": 0.8028,
    "upside": 1.008,
    "live_selected": 0.9485,
    "check": 0
   },
   {
    "key": "grr_dec27",
    "label": "Gross revenue retention at Dec-27 (trailing 12 months)",
    "unit": "%",
    "base": 0.803,
    "downside": 0.7385,
    "upside": 0.8309,
    "live_selected": 0.803,
    "check": 0
   },
   {
    "key": "burn_fy27",
    "label": "FY2027 net burn (cash used before financing)",
    "unit": "EUR",
    "base": 987133.0,
    "downside": 1500703.9618,
    "upside": 326541.1142,
    "live_selected": 987133.0,
    "check": 0
   },
   {
    "key": "bm_dec27",
    "label": "Burn multiple at Dec-27, trailing 12 months (0 = not meaningful: no burn or no ARR growth)",
    "unit": "x",
    "base": 0.6049,
    "downside": 0,
    "upside": 0.1326,
    "live_selected": 0.6049,
    "check": 0
   },
   {
    "key": "r40_dec27",
    "label": "Rule of 40 at Dec-27",
    "unit": "%",
    "base": 0.2196,
    "downside": -0.0737,
    "upside": 0.3909,
    "live_selected": 0.2196,
    "check": 0
   },
   {
    "key": "cash_dec26",
    "label": "Cash at 31-Dec-26",
    "unit": "EUR",
    "base": 3695090.4834,
    "downside": 3303090.5865,
    "upside": 3777443.5483,
    "live_selected": 3695090.4834,
    "check": 0
   },
   {
    "key": "cash_dec27",
    "label": "Cash at 31-Dec-27",
    "unit": "EUR",
    "base": 2041290.7634,
    "downside": 1135719.9046,
    "upside": 2784235.7141,
    "live_selected": 2041290.7634,
    "check": 0
   },
   {
    "key": "cash_min",
    "label": "Lowest month-end cash, Sep-26 to Dec-27",
    "unit": "EUR",
    "base": 2041290.7634,
    "downside": 1135719.9046,
    "upside": 2784235.7141,
    "live_selected": 2041290.7634,
    "check": 0
   },
   {
    "key": "cash_min_m",
    "label": "Month of the lowest cash",
    "unit": "month",
    "base": "2027-12-31",
    "downside": "2027-12-31",
    "upside": "2027-12-31",
    "live_selected": "2027-12-31",
    "check": 0
   },
   {
    "key": "fund_need",
    "label": "Headroom at the lowest point over the covenant floor (negative = breach)",
    "unit": "EUR",
    "base": 1041290.7634,
    "downside": 135719.9046,
    "upside": 1784235.7141,
    "live_selected": 1041290.7634,
    "check": 0
   },
   {
    "key": "hc_dec27",
    "label": "Headcount at Dec-27",
    "unit": "number",
    "base": 102.3309,
    "downside": 81.6319,
    "upside": 102.3309,
    "live_selected": 102.3309,
    "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": "Accumulated losses roll: closing = opening + net result",
    "proves": "Equity roll-forward to Dec-27",
    "value": 0,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "EBITDA 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",
    "value": 0,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "Essentials MRR bridge closes to the cohort total, every month",
    "proves": "New, churn, expansion, contraction and price explain every euro of MRR",
    "value": 0,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "Essentials customer bridge closes to the cohort total, every month",
    "proves": null,
    "value": 0,
    "tolerance": 0.001,
    "status": "OK"
   },
   {
    "check": "Professional MRR bridge closes to the cohort total, every month",
    "proves": "Renewal effects on the anniversary plus in-term add-ons",
    "value": 0,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "Professional customer bridge closes to the cohort total, every month",
    "proves": null,
    "value": 0,
    "tolerance": 0.001,
    "status": "OK"
   },
   {
    "check": "Enterprise MRR bridge closes to the account total, every month",
    "proves": "Renewals at probability, pipeline and accounts not yet identified",
    "value": 0,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "Enterprise account bridge closes to the account total, every month",
    "proves": null,
    "value": 0,
    "tolerance": 0.001,
    "status": "OK"
   },
   {
    "check": "Subscription revenue equals MRR, every month",
    "proves": "Ratable recognition of every subscription",
    "value": 0,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "Deferred revenue roll-forward equals the contract schedule, every month",
    "proves": "MRR x unexpired prepaid months, by cohort and account",
    "value": 0,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "Opening deferred revenue equals the contract schedule at 31-Dec-25",
    "proves": "FY2025 accounts agree with the subscription book",
    "value": 0,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "Deferred onboarding fees equal the fee schedule, every month",
    "proves": "Fees x unexpired months / 12",
    "value": 0,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "Opening deferred onboarding fees equal the FY2025 fee schedule",
    "proves": null,
    "value": 0,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "Cohort triangles add up to total MRR and customers at every 2026 to 2027 quarter end",
    "proves": "Every cohort line and account is in exactly one acquisition quarter",
    "value": 0,
    "tolerance": 0.01,
    "status": "OK"
   },
   {
    "check": "History: quarterly totals for 2025 agree with the monthly history",
    "proves": "Two billing system extracts tie",
    "value": 0,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "Salaries accrued equal regular pay plus extra payments accrued, every month",
    "proves": "No payroll cost without a cash or liability counterpart",
    "value": 0,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "Accrued extra payments are nil after the June and December payrolls",
    "proves": "Extra payments paid equal six months of accruals",
    "value": 0,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "Social security payable at each forecast month end equals the contributions of that month",
    "proves": "Paid the following month",
    "value": 0,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "Commissions payable equal the commissions earned in the month",
    "proves": "Paid with the next payroll",
    "value": 0,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "VAT payable equals the unpaid returns per the calendar, every month",
    "proves": "Quarterly in 2026; monthly from 2027 once a large company",
    "value": 0,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "IRPF payable equals the unpaid withholding per the calendar, every month",
    "proves": "Modelo 111",
    "value": 0,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "Rent withholding payable equals the unpaid withholding per the calendar, every month",
    "proves": "Modelo 115",
    "value": 0,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "Corporate income tax charges equal the rate on the annual base after tax losses (FY2026 and FY2027)",
    "proves": "70% limit, EUR 1m always allowed",
    "value": 0,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "AR aging: professional customers tie to the ledger",
    "proves": "Item listing agrees with the balance at the last actual month",
    "value": 0,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "AR aging: enterprise accounts tie to the ledger",
    "proves": "Item listing agrees with the balance at the last actual month",
    "value": 0,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "AP aging: cloud and software tie to the Payables schedule",
    "proves": null,
    "value": 0,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "AP aging: paid media tie to the Payables schedule",
    "proves": null,
    "value": 0,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "AP aging: spanish suppliers tie to the Payables schedule",
    "proves": null,
    "value": 0,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "Card processor balance is nil to the euro, every month",
    "proves": "Payouts equal charges less fees",
    "value": 0,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "Forecast receivables equal the collection rule every month",
    "proves": "Receipts never collect an invoice twice when the days change",
    "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 revenue bridge by MRR movement reconciles (YTD and FY)",
    "proves": "Weighted movement effects equal the 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": 158189.3424,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "Trade payables never negative",
    "proves": null,
    "value": 26711.78,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "Deferred revenue never negative",
    "proves": null,
    "value": 72383.33,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "MRR and customers never negative (every cohort and account, every month)",
    "proves": null,
    "value": 0,
    "tolerance": 0.001,
    "status": "OK"
   },
   {
    "check": "Headcount never negative",
    "proves": null,
    "value": 0.9588,
    "tolerance": 0,
    "status": "OK"
   },
   {
    "check": "Capitalised development, capitalised commissions and fixed assets never negative",
    "proves": null,
    "value": 135825.9736,
    "tolerance": 0,
    "status": "OK"
   },
   {
    "check": "Venture debt never negative",
    "proves": null,
    "value": 1055555.48,
    "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 covenant floor is a default under the venture debt",
    "value": 2041290.7634
   },
   {
    "item": "Headroom over the covenant floor at the lowest point",
    "note": "Negative = covenant breach",
    "value": 1041290.7634
   },
   {
    "item": "Lowest 13-week closing cash",
    "note": null,
    "value": 3880281.1189
   },
   {
    "item": "Net revenue retention at Dec-27 (trailing 12 months)",
    "note": "Below 100% the installed base shrinks without new sales",
    "value": 0.9485
   },
   {
    "item": "Largest account share of FY2026 subscription revenue",
    "note": "Above 10% is a concentration risk for a SaaS book",
    "value": 0.0282
   },
   {
    "item": "Brandelo invoice open at the last actual month (EUR)",
    "note": "Disputed; collection month and share are scenario drivers",
    "value": 60663.54
   },
   {
    "item": "Large company from January 2027 (1 = monthly VAT and withholding returns and SII)",
    "note": "FY2026 volume of operations above EUR 6,010,121.04",
    "value": 1
   }
  ]
 },
 "bva": {
  "rows": [
   {
    "key": "mrr_SMB",
    "label": "Essentials MRR",
    "ytd_actual": 193793.2,
    "ytd_budget": 212206.83,
    "ytd_variance": -18413.63,
    "ytd_variance_pct": -0.0868,
    "fy_outlook": 206620.7693,
    "fy_budget": 232081.83,
    "fy_variance": -25461.0607,
    "fy_variance_pct": -0.1097,
    "commentary": null
   },
   {
    "key": "mrr_MM",
    "label": "Professional MRR",
    "ytd_actual": 187368.91,
    "ytd_budget": 200531.57,
    "ytd_variance": -13162.66,
    "ytd_variance_pct": -0.0656,
    "fy_outlook": 206169.016,
    "fy_budget": 225738.57,
    "fy_variance": -19569.554,
    "fy_variance_pct": -0.0867,
    "commentary": null
   },
   {
    "key": "mrr_ENT",
    "label": "Enterprise MRR",
    "ytd_actual": 152311.25,
    "ytd_budget": 156543.86,
    "ytd_variance": -4232.61,
    "ytd_variance_pct": -0.027,
    "fy_outlook": 161272.8486,
    "fy_budget": 174988.86,
    "fy_variance": -13716.0114,
    "fy_variance_pct": -0.0784,
    "commentary": null
   },
   {
    "key": "mrr",
    "label": "TOTAL MRR",
    "ytd_actual": 533473.36,
    "ytd_budget": 569282.26,
    "ytd_variance": -35808.9,
    "ytd_variance_pct": -0.0629,
    "fy_outlook": 574062.6339,
    "fy_budget": 632809.26,
    "fy_variance": -58746.6261,
    "fy_variance_pct": -0.0928,
    "commentary": "Revenue effect of each movement: see the bridge below."
   },
   {
    "key": "arr",
    "label": "ARR",
    "ytd_actual": 6401680.32,
    "ytd_budget": 6831387.12,
    "ytd_variance": -429706.8,
    "ytd_variance_pct": -0.0629,
    "fy_outlook": 6888751.6071,
    "fy_budget": 7593711.12,
    "fy_variance": -704959.5129,
    "fy_variance_pct": -0.0928,
    "commentary": null
   },
   {
    "key": "lg_SMB",
    "label": "Essentials customers",
    "ytd_actual": 791,
    "ytd_budget": 871,
    "ytd_variance": -80,
    "ytd_variance_pct": -0.0918,
    "fy_outlook": 829.8068,
    "fy_budget": 940.2,
    "fy_variance": -110.3932,
    "fy_variance_pct": -0.1174,
    "commentary": null
   },
   {
    "key": "lg_MM",
    "label": "Professional customers",
    "ytd_actual": 165,
    "ytd_budget": 177.9,
    "ytd_variance": -12.9,
    "ytd_variance_pct": -0.0725,
    "fy_outlook": 176.9872,
    "fy_budget": 196.2,
    "fy_variance": -19.2128,
    "fy_variance_pct": -0.0979,
    "commentary": null
   },
   {
    "key": "lg_ENT",
    "label": "Enterprise customers",
    "ytd_actual": 21,
    "ytd_budget": 22,
    "ytd_variance": -1,
    "ytd_variance_pct": -0.0455,
    "fy_outlook": 21.64,
    "fy_budget": 24,
    "fy_variance": -2.36,
    "fy_variance_pct": -0.0983,
    "commentary": null
   },
   {
    "key": "lg",
    "label": "CUSTOMERS",
    "ytd_actual": 977,
    "ytd_budget": 1070.9,
    "ytd_variance": -93.9,
    "ytd_variance_pct": -0.0877,
    "fy_outlook": 1028.434,
    "fy_budget": 1160.4,
    "fy_variance": -131.966,
    "fy_variance_pct": -0.1137,
    "commentary": null
   },
   {
    "key": "rev_smb",
    "label": "Essentials subscriptions",
    "ytd_actual": 1482047.61,
    "ytd_budget": 1580627.64,
    "ytd_variance": -98580.03,
    "ytd_variance_pct": -0.0624,
    "fy_outlook": 2292146.0334,
    "fy_budget": 2482612.96,
    "fy_variance": -190466.9266,
    "fy_variance_pct": -0.0767,
    "commentary": "New customers 238 against 284 budgeted; customer churn above the budget rates."
   },
   {
    "key": "rev_mm",
    "label": "Professional subscriptions",
    "ytd_actual": 1393298.93,
    "ytd_budget": 1455447.56,
    "ytd_variance": -62148.63,
    "ytd_variance_pct": -0.0427,
    "fy_outlook": 2191823.5772,
    "fy_budget": 2323074.84,
    "fy_variance": -131251.2628,
    "fy_variance_pct": -0.0565,
    "commentary": "Churn at renewal EUR 21k of MRR against EUR 11k budgeted."
   },
   {
    "key": "rev_ent",
    "label": "Enterprise subscriptions",
    "ytd_actual": 1136115.14,
    "ytd_budget": 1184768.88,
    "ytd_variance": -48653.74,
    "ytd_variance_pct": -0.0411,
    "fy_outlook": 1759082.2873,
    "fy_budget": 1865530.32,
    "fy_variance": -106448.0327,
    "fy_variance_pct": -0.0571,
    "commentary": "Osterna lost at its February renewal; Belvarra and Ferrano won a month later than budgeted."
   },
   {
    "key": "rev_sub",
    "label": "SUBSCRIPTION REVENUE",
    "ytd_actual": 4011461.68,
    "ytd_budget": 4220844.08,
    "ytd_variance": -209382.4,
    "ytd_variance_pct": -0.0496,
    "fy_outlook": 6243051.8979,
    "fy_budget": 6671218.12,
    "fy_variance": -428166.2221,
    "fy_variance_pct": -0.0642,
    "commentary": null
   },
   {
    "key": "rev_fee",
    "label": "Onboarding fees",
    "ytd_actual": 117300,
    "ytd_budget": 119784,
    "ytd_variance": -2484,
    "ytd_variance_pct": -0.0207,
    "fy_outlook": 182921.1437,
    "fy_budget": 195819,
    "fy_variance": -12897.8563,
    "fy_variance_pct": -0.0659,
    "commentary": null
   },
   {
    "key": "T_rev",
    "label": "REVENUE",
    "ytd_actual": 4128761.68,
    "ytd_budget": 4340628.08,
    "ytd_variance": -211866.4,
    "ytd_variance_pct": -0.0488,
    "fy_outlook": 6425973.0416,
    "fy_budget": 6867037.12,
    "fy_variance": -441064.0784,
    "fy_variance_pct": -0.0642,
    "commentary": null
   },
   {
    "key": "hosting",
    "label": "Hosting and infrastructure",
    "ytd_actual": -215476.95,
    "ytd_budget": -218847,
    "ytd_variance": 3370.05,
    "ytd_variance_pct": 0.0154,
    "fy_outlook": -330887.837,
    "fy_budget": -338809,
    "fy_variance": 7921.163,
    "fy_variance_pct": 0.0234,
    "commentary": null
   },
   {
    "key": "thirdp",
    "label": "Third-party services",
    "ytd_actual": -63925.03,
    "ytd_budget": -67534,
    "ytd_variance": 3608.97,
    "ytd_variance_pct": 0.0534,
    "fy_outlook": -99630.4735,
    "fy_budget": -106741,
    "fy_variance": 7110.5265,
    "fy_variance_pct": 0.0666,
    "commentary": null
   },
   {
    "key": "stripe",
    "label": "Card processing fees",
    "ytd_actual": -44412.98,
    "ytd_budget": -47367,
    "ytd_variance": 2954.02,
    "ytd_variance_pct": 0.0624,
    "fy_outlook": -68665.6095,
    "fy_budget": -74377,
    "fy_variance": 5711.3905,
    "fy_variance_pct": 0.0768,
    "commentary": null
   },
   {
    "key": "pay_cor",
    "label": "Support, onboarding and success payroll",
    "ytd_actual": -581646.72,
    "ytd_budget": -597759,
    "ytd_variance": 16112.28,
    "ytd_variance_pct": 0.027,
    "fy_outlook": -891404.6373,
    "fy_budget": -927474,
    "fy_variance": 36069.3627,
    "fy_variance_pct": 0.0389,
    "commentary": null
   },
   {
    "key": "T_cor",
    "label": "TOTAL COST OF REVENUE",
    "ytd_actual": -905461.68,
    "ytd_budget": -931507,
    "ytd_variance": 26045.32,
    "ytd_variance_pct": 0.028,
    "fy_outlook": -1390588.5573,
    "fy_budget": -1447401,
    "fy_variance": 56812.4427,
    "fy_variance_pct": 0.0393,
    "commentary": null
   },
   {
    "key": "gp",
    "label": "GROSS PROFIT",
    "ytd_actual": 3223300,
    "ytd_budget": 3409121.08,
    "ytd_variance": -185821.08,
    "ytd_variance_pct": -0.0545,
    "fy_outlook": 5035384.4844,
    "fy_budget": 5419636.12,
    "fy_variance": -384251.6356,
    "fy_variance_pct": -0.0709,
    "commentary": null
   },
   {
    "key": "gpm",
    "label": "Gross margin %",
    "ytd_actual": 0.7807,
    "ytd_budget": 0.7854,
    "ytd_variance": -0.0047,
    "ytd_variance_pct": null,
    "fy_outlook": 0.7836,
    "fy_budget": 0.7892,
    "fy_variance": -0.0056,
    "fy_variance_pct": null,
    "commentary": null
   },
   {
    "key": "pay_rd",
    "label": "Research and development payroll",
    "ytd_actual": -1695031.79,
    "ytd_budget": -1805308,
    "ytd_variance": 110276.21,
    "ytd_variance_pct": 0.0611,
    "fy_outlook": -2561634.0007,
    "fy_budget": -2783068,
    "fy_variance": 221433.9993,
    "fy_variance_pct": 0.0796,
    "commentary": "Hiring behind plan; a software engineer left in July."
   },
   {
    "key": "capdev",
    "label": "Less: development capitalised",
    "ytd_actual": 438402.56,
    "ytd_budget": 463098,
    "ytd_variance": -24695.44,
    "ytd_variance_pct": -0.0533,
    "fy_outlook": 664452.3818,
    "fy_budget": 715510,
    "fy_variance": -51057.6182,
    "fy_variance_pct": -0.0714,
    "commentary": null
   },
   {
    "key": "pay_sm",
    "label": "Sales and marketing payroll",
    "ytd_actual": -831885.6,
    "ytd_budget": -864923,
    "ytd_variance": 33037.4,
    "ytd_variance_pct": 0.0382,
    "fy_outlook": -1240782.4,
    "fy_budget": -1336147,
    "fy_variance": 95364.6,
    "fy_variance_pct": 0.0714,
    "commentary": null
   },
   {
    "key": "media",
    "label": "Paid media",
    "ytd_actual": -545819.06,
    "ytd_budget": -512000,
    "ytd_variance": -33819.06,
    "ytd_variance_pct": -0.0661,
    "fy_outlook": -809819.06,
    "fy_budget": -768000,
    "fy_variance": -41819.06,
    "fy_variance_pct": -0.0545,
    "commentary": "First-quarter campaign above the budget run-rate."
   },
   {
    "key": "events",
    "label": "Events, content and agencies",
    "ytd_actual": -208533.44,
    "ytd_budget": -176000,
    "ytd_variance": -32533.44,
    "ytd_variance_pct": -0.1848,
    "fy_outlook": -304533.44,
    "fy_budget": -264000,
    "fy_variance": -40533.44,
    "fy_variance_pct": -0.1535,
    "commentary": "May trade fair stand."
   },
   {
    "key": "cc_amort",
    "label": "Amortisation of capitalised commissions",
    "ytd_actual": -81522.828,
    "ytd_budget": -81788,
    "ytd_variance": 265.172,
    "ytd_variance_pct": 0.0032,
    "fy_outlook": -123631.6834,
    "fy_budget": -125029,
    "fy_variance": 1397.3166,
    "fy_variance_pct": 0.0112,
    "commentary": null
   },
   {
    "key": "pay_ga",
    "label": "General and administrative payroll",
    "ytd_actual": -329828.51,
    "ytd_budget": -329856,
    "ytd_variance": 27.49,
    "ytd_variance_pct": 0.0001,
    "fy_outlook": -492847.8545,
    "fy_budget": -494784,
    "fy_variance": 1936.1455,
    "fy_variance_pct": 0.0039,
    "commentary": null
   },
   {
    "key": "tools",
    "label": "Software and IT tools",
    "ytd_actual": -156078.45,
    "ytd_budget": -162675,
    "ytd_variance": 6596.55,
    "ytd_variance_pct": 0.0406,
    "fy_outlook": -235511.265,
    "fy_budget": -250650,
    "fy_variance": 15138.735,
    "fy_variance_pct": 0.0604,
    "commentary": null
   },
   {
    "key": "rent",
    "label": "Office rent",
    "ytd_actual": -124000,
    "ytd_budget": -124000,
    "ytd_variance": 0,
    "ytd_variance_pct": 0,
    "fy_outlook": -186000,
    "fy_budget": -186000,
    "fy_variance": 0,
    "fy_variance_pct": 0,
    "commentary": null
   },
   {
    "key": "prof",
    "label": "Audit, legal and tax advisers",
    "ytd_actual": -109697.6,
    "ytd_budget": -103000,
    "ytd_variance": -6697.6,
    "ytd_variance_pct": -0.065,
    "fy_outlook": -155697.6,
    "fy_budget": -147000,
    "fy_variance": -8697.6,
    "fy_variance_pct": -0.0592,
    "commentary": null
   },
   {
    "key": "ins",
    "label": "Insurance",
    "ytd_actual": -25600,
    "ytd_budget": -25600,
    "ytd_variance": 0,
    "ytd_variance_pct": 0,
    "fy_outlook": -38400,
    "fy_budget": -38400,
    "fy_variance": 0,
    "fy_variance_pct": 0,
    "commentary": null
   },
   {
    "key": "recruit",
    "label": "Recruitment",
    "ytd_actual": -57098.85,
    "ytd_budget": -72300,
    "ytd_variance": 15201.15,
    "ytd_variance_pct": 0.2103,
    "fy_outlook": -83242.5813,
    "fy_budget": -88200,
    "fy_variance": 4957.4187,
    "fy_variance_pct": 0.0562,
    "commentary": "Fewer hires than budgeted."
   },
   {
    "key": "travel",
    "label": "Travel and other costs",
    "ytd_actual": -86464.13,
    "ytd_budget": -80000,
    "ytd_variance": -6464.13,
    "ytd_variance_pct": -0.0808,
    "fy_outlook": -128464.13,
    "fy_budget": -120000,
    "fy_variance": -8464.13,
    "fy_variance_pct": -0.0705,
    "commentary": null
   },
   {
    "key": "bad",
    "label": "Bad debts and expected credit losses",
    "ytd_actual": -10291.531,
    "ytd_budget": -9615,
    "ytd_variance": -676.531,
    "ytd_variance_pct": -0.0704,
    "fy_outlook": -9641.234,
    "fy_budget": -14381,
    "fy_variance": 4739.766,
    "fy_variance_pct": 0.3296,
    "commentary": null
   },
   {
    "key": "sev",
    "label": "Severance",
    "ytd_actual": 0,
    "ytd_budget": 0,
    "ytd_variance": 0,
    "ytd_variance_pct": 0,
    "fy_outlook": 0,
    "fy_budget": 0,
    "fy_variance": 0,
    "fy_variance_pct": 0,
    "commentary": null
   },
   {
    "key": "T_opex",
    "label": "TOTAL OPERATING EXPENSES",
    "ytd_actual": -3823449.229,
    "ytd_budget": -3883967,
    "ytd_variance": 60517.771,
    "ytd_variance_pct": 0.0156,
    "fy_outlook": -5705752.867,
    "fy_budget": -5900149,
    "fy_variance": 194396.133,
    "fy_variance_pct": 0.0329,
    "commentary": null
   },
   {
    "key": "ebitda",
    "label": "EBITDA",
    "ytd_actual": -600149.229,
    "ytd_budget": -474845.92,
    "ytd_variance": -125303.309,
    "ytd_variance_pct": -0.2639,
    "fy_outlook": -670368.3826,
    "fy_budget": -480512.88,
    "fy_variance": -189855.5026,
    "fy_variance_pct": -0.3951,
    "commentary": "EUR 125k behind budget YTD; EUR 190k on the full-year outlook."
   },
   {
    "key": "ebitdap",
    "label": "EBITDA % of revenue",
    "ytd_actual": -0.1454,
    "ytd_budget": -0.1094,
    "ytd_variance": -0.036,
    "ytd_variance_pct": null,
    "fy_outlook": -0.1043,
    "fy_budget": -0.07,
    "fy_variance": -0.0343,
    "fy_variance_pct": null,
    "commentary": null
   },
   {
    "key": "dev_amort",
    "label": "Amortisation of capitalised development",
    "ytd_actual": -316667.4714,
    "ytd_budget": -317984,
    "ytd_variance": 1316.5286,
    "ytd_variance_pct": 0.0041,
    "fy_outlook": -493513.9598,
    "fy_budget": -498649,
    "fy_variance": 5135.0402,
    "fy_variance_pct": 0.0103,
    "commentary": null
   },
   {
    "key": "dep",
    "label": "Depreciation",
    "ytd_actual": -46989.04,
    "ytd_budget": -48168,
    "ytd_variance": 1178.96,
    "ytd_variance_pct": 0.0245,
    "fy_outlook": -73776.5335,
    "fy_budget": -75913,
    "fy_variance": 2136.4665,
    "fy_variance_pct": 0.0281,
    "commentary": null
   },
   {
    "key": "int",
    "label": "Interest",
    "ytd_actual": -140000,
    "ytd_budget": -140000,
    "ytd_variance": 0,
    "ytd_variance_pct": 0,
    "fy_outlook": -205138.8885,
    "fy_budget": -205140,
    "fy_variance": 1.1115,
    "fy_variance_pct": 0.0,
    "commentary": null
   },
   {
    "key": "tax",
    "label": "Corporate income tax",
    "ytd_actual": 0,
    "ytd_budget": 0,
    "ytd_variance": 0,
    "ytd_variance_pct": 0,
    "fy_outlook": 0,
    "fy_budget": 0,
    "fy_variance": 0,
    "fy_variance_pct": 0,
    "commentary": null
   },
   {
    "key": "np",
    "label": "NET PROFIT / (LOSS)",
    "ytd_actual": -1103805.7404,
    "ytd_budget": -980997.92,
    "ytd_variance": -122807.8204,
    "ytd_variance_pct": -0.1252,
    "fy_outlook": -1442797.7645,
    "fy_budget": -1260214.88,
    "fy_variance": -182582.8845,
    "fy_variance_pct": -0.1449,
    "commentary": null
   },
   {
    "key": "b_cash",
    "label": "Cash at bank",
    "ytd_actual": 4314216.6401,
    "ytd_budget": 4577498,
    "ytd_variance": -263281.3599,
    "ytd_variance_pct": -0.0575,
    "fy_outlook": 3695090.4834,
    "fy_budget": 4042869,
    "fy_variance": -347778.5166,
    "fy_variance_pct": -0.086,
    "commentary": null
   },
   {
    "key": "b_dr",
    "label": "Deferred revenue (subscriptions and onboarding fees)",
    "ytd_actual": 1925978.65,
    "ytd_budget": 2028726,
    "ytd_variance": -102747.35,
    "ytd_variance_pct": -0.0506,
    "fy_outlook": 1900824.0711,
    "fy_budget": 2086281,
    "fy_variance": -185456.9289,
    "fy_variance_pct": -0.0889,
    "commentary": null
   },
   {
    "key": "b_hc",
    "label": "Headcount",
    "ytd_actual": 88,
    "ytd_budget": 95,
    "ytd_variance": -7,
    "ytd_variance_pct": -0.0737,
    "fy_outlook": 88.718,
    "fy_budget": 98,
    "fy_variance": -9.282,
    "fy_variance_pct": -0.0947,
    "commentary": null
   }
  ],
  "revenue_variance_by_mrr_movement": {
   "columns": [
    "Segment and movement",
    "YTD actual movement",
    "YTD budget movement",
    "Movement variance",
    "Revenue effect YTD",
    "FY26 outlook movement",
    "FY26 budget movement",
    "Movement variance",
    "Revenue effect FY26"
   ],
   "rows": [
    [
     "Essentials: new customers",
     48184.65,
     58840,
     -10655.35,
     -59403.88,
     73671.732,
     89424,
     -15752.268,
     -115262.511
    ],
    [
     "Essentials: expansion",
     14907.09,
     16093,
     -1185.91,
     -4225.57,
     23278.434,
     25355,
     -2076.566,
     -11099.064
    ],
    [
     "Essentials: price",
     8038.61,
     8110,
     -71.39,
     -571.12,
     8038.61,
     8110,
     -71.39,
     -856.68
    ],
    [
     "Essentials: contraction",
     -6534.62,
     -6896,
     361.38,
     764.52,
     -10122.3388,
     -10865,
     742.6612,
     3122.2632
    ],
    [
     "Essentials: churn",
     -35021.36,
     -28159,
     -6862.36,
     -35143.98,
     -52464.4978,
     -44161,
     -8303.4978,
     -66370.9348
    ],
    [
     "Professional: new customers",
     40129.4,
     41906,
     -1776.6,
     -3916.82,
     56367.6673,
     63688,
     -7320.3327,
     -25420.2821
    ],
    [
     "Professional: expansion",
     11357.89,
     12122,
     -764.11,
     -3462.02,
     17424.8035,
     18564,
     -1139.1965,
     -7413.3987
    ],
    [
     "Professional: price",
     4496.9,
     5009,
     -512.1,
     -2624.72,
     6492.6765,
     7034,
     -541.3235,
     -4749.1799
    ],
    [
     "Professional: contraction",
     -2438.56,
     -2180,
     -258.56,
     -1674.96,
     -3286.726,
     -3040,
     -246.726,
     -2678.4177
    ],
    [
     "Professional: churn",
     -20976.29,
     -11125,
     -9851.29,
     -50470.11,
     -25628.9752,
     -15307,
     -10321.9752,
     -90989.9844
    ],
    [
     "Enterprise: new customers",
     17300,
     16000,
     1300,
     -5900,
     26120,
     31000,
     -4880,
     -31560
    ],
    [
     "Enterprise: expansion",
     5624.11,
     4061,
     1563.11,
     6914.15,
     7564.2994,
     6144,
     1420.2994,
     12732.6429
    ],
    [
     "Enterprise: price",
     2446.6,
     2654,
     -207.4,
     -1449.65,
     3716.1793,
     4016,
     -299.8207,
     -2559.6776
    ],
    [
     "Enterprise: contraction",
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ],
    [
     "Enterprise: churn",
     -6888.32,
     0,
     -6888.32,
     -48218.24,
     -9956.4901,
     0,
     -9956.4901,
     -85060.9979
    ],
    [
     "Onboarding fees (recognised over 12 months)",
     117300,
     119784,
     -2484,
     -2484,
     182921.1437,
     195819,
     -12897.8563,
     -12897.8563
    ],
    [
     "TOTAL REVENUE VARIANCE",
     null,
     null,
     null,
     -211866.4,
     null,
     null,
     null,
     -441064.0784
    ]
   ]
  },
  "ebitda_walk_ytd": [
   {
    "step": "Budget EBITDA YTD",
    "value": -474845.92
   },
   {
    "step": "Essentials subscription revenue",
    "value": -98580.03
   },
   {
    "step": "Professional subscription revenue",
    "value": -62148.63
   },
   {
    "step": "Enterprise subscription revenue",
    "value": -48653.74
   },
   {
    "step": "Onboarding fees",
    "value": -2484
   },
   {
    "step": "Hosting, third-party services and card fees",
    "value": 9933.04
   },
   {
    "step": "Support, onboarding and success payroll",
    "value": 16112.28
   },
   {
    "step": "Research and development payroll, net of capitalisation",
    "value": 85580.77
   },
   {
    "step": "Sales and marketing payroll",
    "value": 33037.4
   },
   {
    "step": "Marketing programmes (media, events, content)",
    "value": -66352.5
   },
   {
    "step": "Commission amortisation",
    "value": 265.172
   },
   {
    "step": "General and administrative payroll",
    "value": 27.49
   },
   {
    "step": "Other overheads (tools, rent, advisers, insurance, recruitment, travel)",
    "value": 8635.97
   },
   {
    "step": "Bad debts and credit losses",
    "value": -676.531
   },
   {
    "step": "Severance",
    "value": 0
   },
   {
    "step": "Actual EBITDA YTD",
    "value": -600149.229
   }
  ]
 },
 "cash_13w_control": {
  "low": 3880281.1189,
  "lowwk": "2026-11-06",
  "short": 2880281.1189,
  "fac": 0,
  "fachead": 0,
  "taxwk": 691792.2165
 },
 "account_register": {
  "columns": [
   "Code",
   "Account (fictional)",
   "Country",
   "VAT rate on invoices",
   "Contract start (month)",
   "Start month no.",
   "Status",
   "MRR at 31-Dec-25 (live accounts) or at signature (pipeline)",
   "Onboarding fee",
   "Probability Base (renewal or win)",
   "Probability Downside",
   "Probability Upside",
   "Probability selected",
   "Location growth at renewal",
   "Effective start month no. (pipeline delay)",
   "Renewal month",
   "MRR at the last actual month",
   "Subscription revenue FY2026",
   "Subscription revenue FY2027",
   "Share of FY2026 subscription revenue",
   "Account note (fictional)"
  ],
  "rows": [
   [
    "E01",
    "Marvessa Hotels",
    "ES",
    0.21,
    "2023-01-31",
    -35,
    "Live",
    13450.45,
    26000,
    0.75,
    0.5,
    0.9,
    0.75,
    0.05,
    -35,
    "January",
    14676.49,
    176117.88,
    142853.6154,
    0.0282,
    "Largest account. Renews in January 2027; the group has opened a review of its technology suppliers for 2027."
   ],
   [
    "E02",
    "Velmira Hospitality",
    "ES",
    0.21,
    "2022-03-31",
    -45,
    "Live",
    10942.22,
    20000,
    0.95,
    0.85,
    0.97,
    0.95,
    0.05,
    -45,
    "March",
    12598.67,
    146671.14,
    154639.2252,
    0.0235,
    null
   ],
   [
    "E03",
    "Tarbela Retail",
    "ES",
    0.21,
    "2022-06-30",
    -42,
    "Live",
    9181.35,
    18000,
    0.95,
    0.85,
    0.97,
    0.95,
    0.04,
    -42,
    "June",
    9552.85,
    112776.7,
    115813.7859,
    0.0181,
    null
   ],
   [
    "E04",
    "Quirona Restauracion",
    "ES",
    0.21,
    "2022-10-31",
    -38,
    "Live",
    8232.55,
    16000,
    0.93,
    0.8,
    0.96,
    0.93,
    0.04,
    -38,
    "October",
    8232.55,
    98697.1441,
    98323.6741,
    0.0158,
    null
   ],
   [
    "E05",
    "Osterna Retail Group",
    "PT",
    0,
    "2023-02-28",
    -34,
    "Lost at the Feb-26 renewal",
    6888.32,
    15000,
    0,
    0,
    0,
    0,
    0.04,
    -34,
    "February",
    0,
    6888.32,
    0,
    0.0011,
    "Did not renew in February 2026: moved to a lower-priced bundle offered by its point-of-sale provider."
   ],
   [
    "E06",
    "Delvora Hotels",
    "IT",
    0,
    "2023-05-31",
    -31,
    "Live",
    6321.51,
    14000,
    0.94,
    0.82,
    0.96,
    0.94,
    0.05,
    -31,
    "May",
    7130.04,
    82326.36,
    86507.9197,
    0.0132,
    null
   ],
   [
    "E07",
    "Hallowmere Inns",
    "UK",
    0,
    "2023-09-30",
    -27,
    "Live",
    7969.91,
    16000,
    0.92,
    0.8,
    0.96,
    0.92,
    0.05,
    -27,
    "September",
    7969.91,
    95478.8842,
    94999.5802,
    0.0153,
    null
   ],
   [
    "E08",
    "Corvena Supermercados",
    "ES",
    0.21,
    "2023-11-30",
    -25,
    "Live",
    6306.24,
    14000,
    0.95,
    0.85,
    0.97,
    0.95,
    0.04,
    -25,
    "November",
    6306.24,
    75897.3641,
    77236.1937,
    0.0122,
    null
   ],
   [
    "E09",
    "Luzmara Hoteles",
    "ES",
    0.21,
    "2024-01-31",
    -23,
    "Live",
    6415.75,
    15000,
    0.95,
    0.85,
    0.97,
    0.95,
    0.05,
    -23,
    "January",
    7400.78,
    86559.36,
    91244.9567,
    0.0139,
    null
   ],
   [
    "E10",
    "Sanvero Restaurantes",
    "ES",
    0.21,
    "2024-03-31",
    -21,
    "Live",
    4703.54,
    11000,
    0.93,
    0.8,
    0.96,
    0.93,
    0.04,
    -21,
    "March",
    4855.78,
    57964.88,
    58085.6173,
    0.0093,
    null
   ],
   [
    "E11",
    "Pradela Retail",
    "PT",
    0,
    "2024-04-30",
    -20,
    "Live",
    5097.3,
    12000,
    0.94,
    0.82,
    0.96,
    0.94,
    0.04,
    -20,
    "April",
    5362.35,
    63553.05,
    64682.5532,
    0.0102,
    null
   ],
   [
    "E12",
    "Brandelo Cafes",
    "ES",
    0.21,
    "2024-06-30",
    -18,
    "Live",
    3940.94,
    9000,
    0.92,
    0.78,
    0.95,
    0.92,
    0.03,
    -18,
    "June",
    4177.93,
    48950.21,
    49434.0866,
    0.0078,
    "June 2026 renewal invoice unpaid: the account wants to cut 30% of its locations before paying; dispute meeting set for September."
   ],
   [
    "E13",
    "Almerta Fashion",
    "IT",
    0,
    "2024-09-30",
    -15,
    "Live",
    5847.28,
    13000,
    0.94,
    0.82,
    0.96,
    0.94,
    0.04,
    -15,
    "September",
    5847.28,
    70329.3998,
    70816.6419,
    0.0113,
    null
   ],
   [
    "E14",
    "Tosquel Hotels",
    "FR",
    0,
    "2024-11-30",
    -13,
    "Live",
    6731.5,
    16000,
    0.9,
    0.75,
    0.95,
    0.9,
    0.05,
    -13,
    "November",
    6731.5,
    80419.211,
    78276.0391,
    0.0129,
    null
   ],
   [
    "E15",
    "Varmena Group",
    "UK",
    0,
    "2025-01-31",
    -11,
    "Live",
    7300,
    18000,
    0.95,
    0.85,
    0.97,
    0.95,
    0.05,
    -11,
    "January",
    8576.83,
    101521.96,
    105744.5948,
    0.0163,
    null
   ],
   [
    "E16",
    "Gresholt Leisure",
    "UK",
    0,
    "2025-03-31",
    -9,
    "Live",
    5000,
    12000,
    0.93,
    0.8,
    0.96,
    0.93,
    0.04,
    -9,
    "March",
    5396.12,
    63961.2,
    64549.2508,
    0.0102,
    null
   ],
   [
    "E17",
    "Cantaleva Restauracion",
    "ES",
    0.21,
    "2025-05-31",
    -7,
    "Live",
    4400,
    11000,
    0.94,
    0.82,
    0.96,
    0.94,
    0.04,
    -7,
    "May",
    4671.87,
    54974.96,
    56321.3737,
    0.0088,
    null
   ],
   [
    "E18",
    "Orvieta Retail",
    "IT",
    0,
    "2025-07-31",
    -5,
    "Live",
    4800,
    12000,
    0.94,
    0.82,
    0.96,
    0.94,
    0.04,
    -5,
    "July",
    5224.06,
    60144.36,
    62905.8737,
    0.0096,
    null
   ],
   [
    "E19",
    "Salvedra Hoteles",
    "ES",
    0.21,
    "2025-09-30",
    -3,
    "Live",
    6000,
    15000,
    0.95,
    0.85,
    0.97,
    0.95,
    0.05,
    -3,
    "September",
    6000,
    72658.2,
    74650.8511,
    0.0116,
    null
   ],
   [
    "E20",
    "Numara Hospitality",
    "FR",
    0,
    "2025-11-30",
    -1,
    "Live",
    4300,
    11000,
    0.95,
    0.85,
    0.97,
    0.95,
    0.04,
    -1,
    "November",
    4300,
    51751.704,
    52664.6041,
    0.0083,
    null
   ],
   [
    "E21",
    "Belvarra Hotels",
    "ES",
    0.21,
    "2026-04-30",
    4,
    "Won in 2026",
    11500,
    28000,
    0.95,
    0.85,
    0.97,
    0.95,
    0.05,
    4,
    "April",
    11500,
    103500,
    140838.4875,
    0.0166,
    "Won in April 2026: the largest new account of the year."
   ],
   [
    "E22",
    "Ferrano Retail",
    "PT",
    0,
    "2026-07-31",
    7,
    "Won in 2026",
    5800,
    14000,
    0.95,
    0.85,
    0.97,
    0.95,
    0.04,
    7,
    "July",
    5800,
    34800,
    70213.872,
    0.0056,
    "Won in July 2026."
   ],
   [
    "P01",
    "Grupo Varnesca Restauracion",
    "ES",
    0.21,
    "2026-11-30",
    11,
    "Pipeline",
    7200,
    18000,
    0.6,
    0.35,
    0.75,
    0.6,
    0.05,
    11,
    "November",
    0,
    8640,
    52076.952,
    0.0014,
    "Proposal submitted; start in November 2026 if won."
   ],
   [
    "P02",
    "Stellmoor Hotels",
    "UK",
    0,
    "2026-12-31",
    12,
    "Pipeline",
    9000,
    22000,
    0.5,
    0.25,
    0.65,
    0.5,
    0.05,
    12,
    "December",
    0,
    4500,
    54123.4125,
    0.0007,
    "Pilot running at two hotels."
   ],
   [
    "P03",
    "Mirandel Retail",
    "IT",
    0,
    "2027-01-31",
    13,
    "Pipeline",
    6500,
    16000,
    0.45,
    0.2,
    0.6,
    0.45,
    0.05,
    13,
    "January",
    0,
    0,
    35100,
    0,
    "Commercial negotiation."
   ],
   [
    "P04",
    "Vinhal Hoteis",
    "PT",
    0,
    "2027-02-28",
    14,
    "Pipeline",
    5400,
    12000,
    0.5,
    0.25,
    0.6,
    0.5,
    0.05,
    14,
    "February",
    0,
    0,
    29700,
    0,
    "Discovery."
   ],
   [
    "P05",
    "Laureac Hotels",
    "FR",
    0,
    "2027-03-31",
    15,
    "Pipeline",
    7800,
    20000,
    0.4,
    0.15,
    0.55,
    0.4,
    0.05,
    15,
    "March",
    0,
    0,
    31200,
    0,
    "Shortlisted in a tender with two competitors."
   ],
   [
    "P06",
    "Solvenza Leisure",
    "ES",
    0.21,
    "2027-04-30",
    16,
    "Pipeline",
    6000,
    15000,
    0.5,
    0.3,
    0.65,
    0.5,
    0.05,
    16,
    "April",
    0,
    0,
    27000,
    0,
    "Discovery."
   ],
   [
    "TOTAL",
    null,
    null,
    null,
    null,
    null,
    null,
    133828.86,
    null,
    null,
    null,
    null,
    null,
    null,
    null,
    null,
    152311.25,
    1759082.2873,
    2040003.1613,
    0.2818,
    null
   ]
  ]
 },
 "cohorts_net_mrr_retention": {
  "rows": [
   {
    "cohort": "Q1-24",
    "values": [
     1,
     0.9519,
     0.924,
     0.8905,
     0.9309,
     0.9326,
     0.9101,
     0.8879,
     0.9015,
     0.9185,
     0.9095,
     0.8949,
     0.9064,
     0.8921,
     0.8785,
     0.8653
    ],
    "after_4_quarters": 0.9309,
    "after_8_quarters": 0.9015
   },
   {
    "cohort": "Q2-24",
    "values": [
     null,
     1,
     0.9854,
     0.9615,
     0.9638,
     0.9409,
     0.939,
     0.9378,
     0.9494,
     0.9265,
     0.9247,
     0.9217,
     0.9306,
     0.9176,
     0.9152,
     0.9132
    ],
    "after_4_quarters": 0.9409,
    "after_8_quarters": 0.9265
   },
   {
    "cohort": "Q3-24",
    "values": [
     null,
     null,
     1,
     0.9979,
     1.0087,
     0.9891,
     0.9441,
     0.9413,
     0.9513,
     0.9417,
     0.9167,
     0.913,
     0.9237,
     0.9205,
     0.909,
     0.9065
    ],
    "after_4_quarters": 0.9441,
    "after_8_quarters": 0.9167
   },
   {
    "cohort": "Q4-24",
    "values": [
     null,
     null,
     null,
     1,
     0.9682,
     0.952,
     0.9415,
     0.9196,
     0.9103,
     0.9005,
     0.898,
     0.8781,
     0.8875,
     0.8821,
     0.8772,
     0.8585
    ],
    "after_4_quarters": 0.9196,
    "after_8_quarters": 0.8781
   },
   {
    "cohort": "Q1-25",
    "values": [
     null,
     null,
     null,
     null,
     1,
     0.9878,
     0.9817,
     0.9754,
     0.9152,
     0.9007,
     0.8962,
     0.8857,
     0.8937,
     0.8836,
     0.874,
     0.8649
    ],
    "after_4_quarters": 0.9152,
    "after_8_quarters": 0.8937
   },
   {
    "cohort": "Q2-25",
    "values": [
     null,
     null,
     null,
     null,
     null,
     1,
     0.9552,
     0.9194,
     0.8837,
     0.8113,
     0.796,
     0.7857,
     0.7942,
     0.7804,
     0.771,
     0.7621
    ],
    "after_4_quarters": 0.8113,
    "after_8_quarters": 0.7804
   },
   {
    "cohort": "Q3-25",
    "values": [
     null,
     null,
     null,
     null,
     null,
     null,
     1,
     0.9653,
     0.9504,
     0.9284,
     0.8646,
     0.8586,
     0.8655,
     0.8599,
     0.856,
     0.8511
    ],
    "after_4_quarters": 0.8646,
    "after_8_quarters": 0.856
   },
   {
    "cohort": "Q4-25",
    "values": [
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     1,
     0.9861,
     0.9358,
     0.9092,
     0.8596,
     0.8693,
     0.8579,
     0.8471,
     0.8336
    ],
    "after_4_quarters": 0.8596,
    "after_8_quarters": 0.8336
   },
   {
    "cohort": "Q1-26",
    "values": [
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     1,
     0.9413,
     0.9261,
     0.9099,
     0.8562,
     0.8504,
     0.8453,
     0.8407
    ],
    "after_4_quarters": 0.8562,
    "after_8_quarters": null
   },
   {
    "cohort": "Q2-26",
    "values": [
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     1,
     0.963,
     0.9456,
     0.9459,
     0.905,
     0.8982,
     0.8918
    ],
    "after_4_quarters": 0.905,
    "after_8_quarters": null
   },
   {
    "cohort": "Q3-26",
    "values": [
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     1,
     0.9651,
     0.9654,
     0.946,
     0.8899,
     0.8823
    ],
    "after_4_quarters": 0.8899,
    "after_8_quarters": null
   },
   {
    "cohort": "Q4-26",
    "values": [
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     1,
     0.9864,
     0.9645,
     0.9444,
     0.8984
    ],
    "after_4_quarters": 0.8984,
    "after_8_quarters": null
   },
   {
    "cohort": "Q1-27",
    "values": [
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     1,
     0.9636,
     0.9423,
     0.9226
    ],
    "after_4_quarters": null,
    "after_8_quarters": null
   },
   {
    "cohort": "Q2-27",
    "values": [
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     1,
     0.9624,
     0.9405
    ],
    "after_4_quarters": null,
    "after_8_quarters": null
   },
   {
    "cohort": "Q3-27",
    "values": [
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     1,
     0.9667
    ],
    "after_4_quarters": null,
    "after_8_quarters": null
   },
   {
    "cohort": "Q4-27",
    "values": [
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     1
    ],
    "after_4_quarters": null,
    "after_8_quarters": null
   }
  ],
  "summary_rows": {
   "avg24": [
    null,
    null,
    null,
    null,
    null,
    null,
    null,
    null,
    null,
    null,
    null,
    null,
    null,
    null,
    null,
    null,
    0.9339,
    0.9057
   ],
   "avg25": [
    null,
    null,
    null,
    null,
    null,
    null,
    null,
    null,
    null,
    null,
    null,
    null,
    null,
    null,
    null,
    null,
    0.8627,
    0.8409
   ]
  }
 },
 "cohorts_logo_retention": {
  "rows": [
   {
    "cohort": "Q1-24",
    "values": [
     1,
     0.8902,
     0.8171,
     0.7439,
     0.7073,
     0.6951,
     0.6463,
     0.5976,
     0.5732,
     0.561,
     0.538,
     0.5071,
     0.4754,
     0.4482,
     0.4226,
     0.3986
    ],
    "after_4_quarters": 0.7073,
    "after_8_quarters": 0.5732
   },
   {
    "cohort": "Q2-24",
    "values": [
     null,
     1,
     0.9265,
     0.8382,
     0.7794,
     0.7353,
     0.7059,
     0.6765,
     0.6471,
     0.5882,
     0.5649,
     0.54,
     0.5167,
     0.4795,
     0.459,
     0.4397
    ],
    "after_4_quarters": 0.7353,
    "after_8_quarters": 0.5882
   },
   {
    "cohort": "Q3-24",
    "values": [
     null,
     null,
     1,
     0.9634,
     0.9146,
     0.8415,
     0.7317,
     0.7073,
     0.6707,
     0.6341,
     0.5922,
     0.565,
     0.5394,
     0.5154,
     0.4783,
     0.4572
    ],
    "after_4_quarters": 0.7317,
    "after_8_quarters": 0.5922
   },
   {
    "cohort": "Q4-24",
    "values": [
     null,
     null,
     null,
     1,
     0.8667,
     0.8133,
     0.7733,
     0.7067,
     0.64,
     0.6,
     0.5771,
     0.5364,
     0.5107,
     0.4866,
     0.464,
     0.4308
    ],
    "after_4_quarters": 0.7067,
    "after_8_quarters": 0.5364
   },
   {
    "cohort": "Q1-25",
    "values": [
     null,
     null,
     null,
     null,
     1,
     0.9397,
     0.8966,
     0.8534,
     0.7759,
     0.7241,
     0.6939,
     0.6564,
     0.6133,
     0.5803,
     0.5493,
     0.5203
    ],
    "after_4_quarters": 0.7759,
    "after_8_quarters": 0.6133
   },
   {
    "cohort": "Q2-25",
    "values": [
     null,
     null,
     null,
     null,
     null,
     1,
     0.8902,
     0.8049,
     0.6951,
     0.6098,
     0.5746,
     0.5437,
     0.5147,
     0.4806,
     0.455,
     0.4311
    ],
    "after_4_quarters": 0.6098,
    "after_8_quarters": 0.4806
   },
   {
    "cohort": "Q3-25",
    "values": [
     null,
     null,
     null,
     null,
     null,
     null,
     1,
     0.8788,
     0.7879,
     0.7121,
     0.6243,
     0.5933,
     0.5641,
     0.5367,
     0.5003,
     0.4762
    ],
    "after_4_quarters": 0.6243,
    "after_8_quarters": 0.5003
   },
   {
    "cohort": "Q4-25",
    "values": [
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     1,
     0.8966,
     0.7931,
     0.7272,
     0.6601,
     0.6247,
     0.5915,
     0.5603,
     0.523
    ],
    "after_4_quarters": 0.6601,
    "after_8_quarters": 0.523
   },
   {
    "cohort": "Q1-26",
    "values": [
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     1,
     0.8547,
     0.8004,
     0.7436,
     0.6664,
     0.634,
     0.6035,
     0.5749
    ],
    "after_4_quarters": 0.6664,
    "after_8_quarters": null
   },
   {
    "cohort": "Q2-26",
    "values": [
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     1,
     0.8822,
     0.8157,
     0.7552,
     0.6808,
     0.6462,
     0.6137
    ],
    "after_4_quarters": 0.6808,
    "after_8_quarters": null
   },
   {
    "cohort": "Q3-26",
    "values": [
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     1,
     0.8976,
     0.8303,
     0.7691,
     0.6932,
     0.6581
    ],
    "after_4_quarters": 0.6932,
    "after_8_quarters": null
   },
   {
    "cohort": "Q4-26",
    "values": [
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     1,
     0.8971,
     0.8285,
     0.766,
     0.6926
    ],
    "after_4_quarters": 0.6926,
    "after_8_quarters": null
   },
   {
    "cohort": "Q1-27",
    "values": [
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     1,
     0.8967,
     0.8281,
     0.7658
    ],
    "after_4_quarters": null,
    "after_8_quarters": null
   },
   {
    "cohort": "Q2-27",
    "values": [
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     1,
     0.896,
     0.8274
    ],
    "after_4_quarters": null,
    "after_8_quarters": null
   },
   {
    "cohort": "Q3-27",
    "values": [
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     1,
     0.8953
    ],
    "after_4_quarters": null,
    "after_8_quarters": null
   },
   {
    "cohort": "Q4-27",
    "values": [
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     null,
     1
    ],
    "after_4_quarters": null,
    "after_8_quarters": null
   }
  ],
  "summary_rows": {
   "avg24": [
    null,
    null,
    null,
    null,
    null,
    null,
    null,
    null,
    null,
    null,
    null,
    null,
    null,
    null,
    null,
    null,
    0.7202,
    0.5725
   ],
   "avg25": [
    null,
    null,
    null,
    null,
    null,
    null,
    null,
    null,
    null,
    null,
    null,
    null,
    null,
    null,
    null,
    null,
    0.6675,
    0.5293
   ]
  }
 },
 "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 revenue is EUR 4,129k, 4.9% below budget, with an EBITDA loss of EUR 600k (14.5% of revenue) against a budgeted loss of EUR 475k. Subscription revenue accounts for EUR 209k of the revenue gap. Weighted by the months each movement has earned, four movements explain most of it: fewer new Essentials customers (EUR 59k), higher churn in Essentials (EUR 35k) and at Professional renewals (EUR 50k), and Osterna Retail Group leaving at its February renewal (EUR 48k). Payroll is EUR 159k below budget because hiring ran behind plan (88 people at Aug-26 against 95 budgeted); marketing programmes spent EUR 66k more than budget.",
     "Full-year outlook (Base): revenue EUR 6,426k, 6.4% below budget, and an EBITDA loss of EUR 670k against a budgeted loss of EUR 481k. ARR closes December at EUR 6.89m against EUR 7.59m budgeted, 26.8% growth on December 2025. EBITDA excludes EUR 664k of engineering payroll capitalised as development (IAS 38): counting that spend, the operating loss is EUR 1,335k, the better measure of what the business consumes.",
     "Net revenue retention over the last twelve months is 92.4% and gross revenue retention 77.8%. Enterprise keeps 103% of its revenue, Professional 94% and Essentials 83%. Essentials, 36% of MRR, is where the book leaks: it loses 2.9% of its customers every month, so the new customers each month first replace the ones leaving before the segment grows.",
     "Cash is EUR 4,314k at Aug-26, EUR 263k below budget. The EUR 2.0m venture debt started amortising in August (EUR 56k a month plus interest) and its covenant requires EUR 1,000k of cash at all times. In the Base case cash is EUR 2,041k at December 2027, EUR 1,041k above the covenant floor, and at the outflow of late 2027 the floor is reached in about 6 months, around Jun-28. The Downside leaves EUR 136k above the covenant floor at December 2027. The funding decision (new equity, a refinancing or a faster route to break-even) belongs in the first half of 2027, while the headroom is still large.",
     "FY2027 (Base): ARR EUR 8.52m at December (23.7% growth), revenue EUR 8,029k and an EBITDA loss of EUR 139k, positive by December (EUR 46k in the month). Marvessa Hotels, the largest account (EUR 176k of ARR), renews in January 2027 and has opened a review of its technology suppliers; this case carries a 75% renewal probability. The six named Enterprise deals are worth EUR 503k of ARR at signature and EUR 247k at their win probabilities."
    ],
    "rows": []
   },
   {
    "title": "2. WHAT HAPPENED YEAR TO DATE (BvA: revenue by MRR movement and the EBITDA walk)",
    "paragraphs": [
     "New business: Essentials added 238 customers against 284 budgeted, Professional 41 against 43, and Enterprise 2 as budgeted: Belvarra Hotels (EUR 11,500 of MRR, April) and Ferrano Retail (EUR 5,800, July), each a month later than the budget assumed. Churn: Essentials lost 175 customers against 141 budgeted; Professional renewals lost 22 customers and EUR 21k of MRR against EUR 11k budgeted; Osterna Retail Group (EUR 6,888 of MRR) left at its February renewal for a lower-priced bundle from its point-of-sale provider.",
     "Costs: payroll is EUR 159k below budget. Hiring ran behind plan and three people left in July and August (a software engineer, a support agent and an account executive); development capitalised is EUR 25k lower with it. Marketing programmes are EUR 66k over budget: paid media ran 7% above budget with the first-quarter campaign, and events include the May trade fair stand. The extra spend did not buy extra customers: CAC rose from EUR 5,184 per new customer in the first quarter to EUR 6,093 in the three months to Aug-26. Hosting, third-party services and card fees are EUR 10k under budget with the lower MRR, and the gross margin is 78.1% against 78.5% budgeted."
    ],
    "rows": []
   },
   {
    "title": "3. SUBSCRIPTION BOOK: ARR, RETENTION AND COHORTS (ARR_Bridge, Cohorts, Account_Register)",
    "paragraphs": [
     "ARR is EUR 6.40m at Aug-26, 25.5% growth on a year earlier: Essentials EUR 2.33m, Professional EUR 2.25m and Enterprise EUR 1.83m. 977 customers pay EUR 546 a month on average: EUR 245 in Essentials, EUR 1,136 in Professional and EUR 7,253 in Enterprise. Gross retention by segment: Enterprise 94%, Professional 79%, Essentials 64%.",
     "Cohorts: the 2024 acquisition cohorts kept 93% of the MRR they had at their first quarter end after four quarters and 91% after eight; the 2025 cohorts kept 86% after four. Customers fall faster than MRR because the customers who stay add locations and take the price increases: 72% of the 2024 customers and 67% of the 2025 customers were still live four quarters after the end of the quarter in which they joined.",
     "Renewals ahead: 7 Enterprise accounts with EUR 545k of ARR renew between September and December, and Marvessa Hotels (EUR 176k of ARR, 2.8% of FY2026 subscription revenue) renews in January. No single account is more than 2.8% of subscription revenue, so the Enterprise risk is the renewal calendar rather than concentration. Professional contracts renew on their anniversaries all year; the first renewal is the weak one, with 18% of customers leaving against 10% at later renewals."
    ],
    "rows": []
   },
   {
    "title": "4. UNIT ECONOMICS AND EFFICIENCY (Unit_Economics)",
    "paragraphs": [
     "Three months to Aug-26: sales and marketing spend of EUR 6,093 per new customer (CAC, all segments), a payback of 17 months on new and expansion MRR after gross margin, and LTV / CAC of 4.2x at a monthly gross MRR churn of 1.7%. Twelve months to Aug-26: a burn multiple of 1.31x (net burn EUR 1,707k for EUR 1,299k of net new ARR) and a Rule of 40 score of 8% (25% ARR growth, -18% EBITDA margin). ARR per employee is EUR 73k.",
     "In the Base case the Rule of 40 is 22% at December 2027 and the burn multiple 0.60x. Hosting goes from 5.1% of revenue in FY2026 to 4.8% in FY2027 as the fixed platform cost is spread over more MRR, and the support, onboarding and success teams from 13.9% to 13.5%; the gross margin moves from 78.4% to 79.1%."
    ],
    "rows": []
   },
   {
    "title": "5. BILLINGS, DEFERRED REVENUE AND RECEIVABLES (Billings, Receivables, AR_Aging)",
    "paragraphs": [
     "Professional and Enterprise pay a year in advance, so billings run ahead of revenue: FY2026 billings are EUR 6,891k against revenue of EUR 6,426k, and deferred revenue is EUR 1,926k at Aug-26, 3.6 months of MRR. That balance is interest-free funding from customers. January is the largest billing month (EUR 894k in 2026) because the older contracts renew then; moving customers to monthly billing would give that float away.",
     "Professional and Enterprise receivables are EUR 396k, 35 debtor days. Brandelo Cafes has not paid its June renewal invoice (EUR 61k) while it disputes a 30% cut in its locations; the Base case collects 100% of it in Oct-26. A Professional customer, a restaurant group, went insolvent in June and its EUR 9,800 April renewal invoice was written off. Essentials is charged by card: it carries no receivable, and the card fees cost 3.0% of Essentials revenue."
    ],
    "rows": []
   },
   {
    "title": "6. PEOPLE AND CAPITALISED COSTS (People, Capitalised_Costs)",
    "paragraphs": [
     "Headcount is 88 at Aug-26 against 95 budgeted, and 102 at December 2027 in the Base case (an engineer, a customer success manager and an account executive join from September to November, fourteen people in 2027, and leavers are replaced after two months). Payroll with employer social security is 81% of FY2026 revenue. Research and development costs 40% of revenue before capitalisation; EUR 664k of engineering time on new modules is capitalised in FY2026 and EUR 494k amortised, so capitalisation adds EUR 171k to the FY2026 result. The auditors will test that time against IAS 38.57: the time records and the business case for each module need to be ready at the year end.",
     "2027 pay carries the 3.5% pay review of this case, the intergenerational equity contribution rising to 1.0% and a maximum contribution base assumed at EUR 5,290 a month (EUR 5,101.20 in 2026). The 2027 rates are assumptions until the 2027 social security order is published. Commissions are capitalised with their employer social security (EUR 151k in FY2026) and amortised over 48 months; Spanish GAAP charges them to profit or loss in the same systematic way (ICAC resolution of 10 February 2021, art. 21)."
    ],
    "rows": []
   },
   {
    "title": "7. CASH, COVENANT, TAX AND THE 13 WEEKS (Cash_13W, Financing, VAT, Tax)",
    "paragraphs": [
     "The 13 weeks from 12 September: opening cash EUR 4,352k, receipts EUR 1,786k, payments EUR 2,173k, closing EUR 3,964k on 11 December. The low point is EUR 3,880k in the week ending 06-Nov, EUR 2,880k above the covenant floor. The pinch points are 20 October (third-quarter VAT, IRPF and rent withholding: EUR 316k) and each month end, when salaries, social security and the loan instalment leave together. Closing cash on 11 December plus the rest of the December flows reconciles to the December balance sheet to the euro.",
     "FY2026 invoicing of EUR 6,891k passes the EUR 6,010,121 large-company threshold, so from 1 January 2027 the VAT, IRPF and rent withholding returns are monthly and invoice records go to the tax agency through the SII within four days. Every invoice issued, including each monthly Essentials card charge, has to flow from the billing system, so the SII connection has to be built and tested this quarter. Monthly returns take about EUR 305k out of the December 2027 cash compared with quarterly returns, because October and November are paid before the year end. No corporate income tax is due: the company brought EUR 6.85m of tax losses into 2026 and makes a loss before tax in both years."
    ],
    "rows": []
   },
   {
    "title": "8. SCENARIOS (Scenarios sheet; snapshot values from three full model runs)",
    "paragraphs": [
     "Base: ARR EUR 8.52m at December 2027, FY2027 revenue EUR 8,029k and an EBITDA loss of EUR 139k, lowest cash EUR 2,041k (EUR 1,041k above the covenant floor). Downside (a weaker market: 30% fewer new Essentials and 35% fewer new Professional customers, churn 30% to 35% higher, less expansion, no 2027 price increase or indexation, Enterprise deals two months later at lower win rates, Marvessa at 50%, customers 15 days slower; response: half the hiring plan, half of leavers replaced, 8 roles cut from April 2027, marketing programmes 20% lower): ARR EUR 6.38m, an EBITDA loss of EUR 452k, lowest cash EUR 1,136k (EUR 136k above the covenant floor). Upside: ARR EUR 9.55m, EBITDA of EUR 380k, lowest cash EUR 2,784k.",
     "The Downside is the case to prepare for: ARR stops growing, net revenue retention falls to 80% and the covenant headroom is almost gone by December 2027 even with the response already in it. Triggers, reviewed monthly: Essentials new customers below 25 a month for two months; Professional customers leaving at their first renewal above 22%; Marvessa not renewed by 31 January; any Enterprise invoice more than 30 days overdue; cash headroom over the covenant floor below EUR 1.5m on the 13-week forecast."
    ],
    "rows": []
   },
   {
    "title": "9. RISK REGISTER (scored 1 to 5; score = likelihood x impact)",
    "paragraphs": [],
    "rows": [
     [
      "Funding and covenant: the Base case ends 2027 EUR 1,041k above the covenant floor and still burning; the Downside ends EUR 136k above the covenant floor",
      4,
      5,
      20,
      "Funding plan to the board by January 2027 (equity round, refinancing or break-even plan); monthly covenant certificate from the 13-week forecast; early talks with the lender; CEO and BriQs CFO"
     ],
     [
      "Essentials churn: 2.9% of customers leave every month; Essentials net revenue retention 83%",
      4,
      3,
      12,
      "First-90-day onboarding programme and health scores; annual prepayment offer; churn reasons captured at cancellation; Customer success lead"
     ],
     [
      "New business below plan: 238 new Essentials customers against 284 budgeted while marketing spend ran EUR 66k over",
      4,
      3,
      12,
      "Channel-level CAC reporting monthly; spend moved to the channels with payback under 12 months; Head of marketing"
     ],
     [
      "Marvessa Hotels renewal in January 2027: EUR 176k of ARR; the group is reviewing its technology suppliers",
      3,
      3,
      9,
      "Executive sponsor meetings from October; renewal proposal with a multi-year option by November; CEO and Head of sales"
     ],
     [
      "Large company from 1 January 2027: monthly VAT and withholding returns and the SII (invoice records to the tax agency within four days); late or wrong records carry penalties",
      3,
      3,
      9,
      "SII connection from the billing system tested by December; monthly close calendar reset; tax adviser review of the first returns; Finance lead"
     ],
     [
      "Professional renewals: 18% of customers leave at the first renewal; churn at renewal EUR 21k of MRR year to date against EUR 11k budgeted",
      3,
      3,
      9,
      "Renewal review 90 days before each anniversary; usage alerts; Customer success lead"
     ],
     [
      "Brandelo Cafes: EUR 61k June renewal invoice disputed and unpaid",
      3,
      2,
      6,
      "Settle with a credit for the disputed locations against payment of the rest; stop new work above the credit limit; Finance lead and Head of sales"
     ],
     [
      "Capitalised development: EUR 0.66m in FY2026 rests on engineering time records meeting IAS 38.57; an auditor challenge moves it into the P&L",
      2,
      3,
      6,
      "Time records by module, business case and technical feasibility file per module; quarterly review; CTO and Finance lead"
     ],
     [
      "2027 payroll cost: pay review, the higher intergenerational equity rate, the new maximum base and the solidarity contribution are not yet published",
      4,
      2,
      8,
      "Update the model when the 2027 order is published; pay review within the budget envelope; COO"
     ],
     [
      "Key people: product, engineering and sales leaders hold the roadmap and the Enterprise relationships",
      2,
      4,
      8,
      "Succession cover for each leader; retention plan for the ten most critical engineers; CEO"
     ]
    ],
    "columns": [
     "Risk",
     "Likelihood",
     "Impact",
     "Score",
     "Mitigation and owner"
    ]
   },
   {
    "title": "10. ACTIONS (owner, due date, status)",
    "paragraphs": [],
    "rows": [
     [
      "Funding plan for the board: options (equity round, venture debt refinancing, break-even plan), timing and amount, with the covenant headroom by month in each scenario",
      "CEO and BriQs CFO",
      "2026-11-30",
      "Open",
      "Board decision on the route and the timetable"
     ],
     [
      "SII and monthly returns from 1 January 2027: connection from the billing system, test submissions and a monthly close calendar",
      "Finance lead with the tax adviser",
      "2026-12-15",
      "Open",
      "Test records accepted by the tax agency; January close calendar approved"
     ],
     [
      "Marvessa Hotels: renewal plan with an executive sponsor and a multi-year proposal",
      "CEO and Head of sales",
      "2026-11-15",
      "Open",
      "Proposal delivered; renewal signed by 31 January"
     ],
     [
      "Essentials retention: onboarding programme for the first 90 days and cancellation reasons in the billing system",
      "Customer success lead",
      "2026-10-31",
      "Open",
      "Monthly customer churn in the first three months below 4%"
     ],
     [
      "Marketing spend by channel against CAC payback; cut the channels above 18 months",
      "Head of marketing",
      "2026-10-15",
      "Open",
      "Channel report in the October pack"
     ],
     [
      "Brandelo Cafes: settle the location dispute and collect the June invoice",
      "Finance lead and Head of sales",
      "2026-10-31",
      "Open",
      "Cash received; credit note for the agreed locations only"
     ],
     [
      "Hiring gate: each hire from September approved against new business and the covenant headroom",
      "COO",
      "2026-09-30",
      "In progress",
      "Hiring decisions minuted with the headroom at the date"
     ],
     [
      "IAS 38 file for the auditors: time records by module and a business case per capitalised module",
      "CTO and Finance lead",
      "2026-12-31",
      "Open",
      "File reviewed by the auditors before the year-end fieldwork"
     ],
     [
      "Downside plan: triggers, the hiring cut, the eight roles and the order of cash levers",
      "BriQs CFO",
      "2026-10-15",
      "Open",
      "Plan approved by the board and attached to the October pack"
     ]
    ],
    "columns": [
     "Action",
     "Owner",
     "Due",
     "Status",
     "Measure of done"
    ]
   },
   {
    "title": "11. INFORMATION NEEDED BEFORE THE SEPTEMBER CLOSE",
    "paragraphs": [
     "The September billing system export: MRR and customers by cohort and account, MRR movements by segment, and cancellation reasons for Essentials and Professional.",
     "Marvessa Hotels: the timetable and scope of its supplier review.",
     "Brandelo Cafes: the outcome of the September dispute meeting.",
     "The lender view on a covenant reset or a further interest-only period, and the covenant certificate for September.",
     "The tax adviser plan for the SII and monthly returns from January 2027, and confirmation of the FY2026 volume of operations.",
     "The 2027 pay review proposal and, when published, the 2027 social security order (rates, maximum base, solidarity contribution); the AT/EP rate for the activity code from the mutua.",
     "Prepared by BriQs Group for the board of Turnoval Software S.L. (fictional demonstration company). Model status at the time of preparation: OK."
    ],
    "rows": []
   }
  ]
 },
 "headline_series": {
  "T_rev": {
   "key": "T_rev",
   "label": "REVENUE",
   "basis": "",
   "section": "REVENUE (IFRS 15)",
   "format": "int",
   "kind": "calc",
   "bold": true,
   "values": [
    485641.0933,
    484887.1667,
    495250.14,
    518246.96,
    521169.9633,
    529450.7067,
    544833.9567,
    549281.6933,
    557912.2304,
    568021.8703,
    579850.6228,
    591426.6381,
    611515.5226,
    623426.1816,
    634818.5636,
    643792.0077,
    651904.677,
    663402.2088,
    672511.1765,
    680587.7594,
    693609.3888,
    706857.8706,
    718261.4893,
    727882.6427
   ],
   "fy2026": 6425973.0416,
   "fy2027": 8028569.4885,
   "total_rule": "sum"
  },
  "rev_sub": {
   "key": "rev_sub",
   "label": "SUBSCRIPTION REVENUE",
   "basis": "",
   "section": "REVENUE (IFRS 15)",
   "format": "int",
   "kind": "calc",
   "bold": true,
   "values": [
    472682.76,
    471295.5,
    482200.14,
    502221.96,
    506436.63,
    513884.04,
    529267.29,
    533473.36,
    542423.6242,
    551568.5683,
    563535.3915,
    574062.6339,
    594323.0931,
    605590.2989,
    616824.7363,
    627643.7716,
    635477.0322,
    646282.0244,
    655955.6139,
    663792.2096,
    676100.6587,
    688634.2391,
    700227.2613,
    710061.8093
   ],
   "fy2026": 6243051.8979,
   "fy2027": 7820912.7484,
   "total_rule": "sum"
  },
  "gp": {
   "key": "gp",
   "label": "GROSS PROFIT",
   "basis": "revenue - cost of revenue",
   "section": "COST OF REVENUE",
   "format": "int",
   "kind": "calc",
   "bold": true,
   "values": [
    379336.1833,
    377611.0867,
    389232.34,
    406687.32,
    406545.1233,
    408520.8867,
    425050.0967,
    430316.9633,
    440123.4647,
    446183.0092,
    457363.935,
    468414.0755,
    483976.2553,
    495239.515,
    498694.9088,
    507178.9043,
    510154.1009,
    521113.6554,
    529760.5578,
    537438.2604,
    549767.1766,
    562306.6389,
    573068.2579,
    582167.3597
   ],
   "fy2026": 5035384.4844,
   "fy2027": 6350865.5912,
   "total_rule": "sum"
  },
  "ebitda": {
   "key": "ebitda",
   "label": "EBITDA",
   "basis": "",
   "section": "OPERATING EXPENSES",
   "format": "int",
   "kind": "calc",
   "bold": true,
   "values": [
    -80316.1614,
    -94833.2523,
    -105483.4295,
    -73737.2925,
    -90125.6709,
    -82030.1099,
    -52494.6257,
    -21128.6869,
    -29062.7289,
    -19363.308,
    -19255.806,
    -2537.3107,
    -83593.8511,
    -36520.2043,
    -60866.727,
    -25559.6246,
    -51202.9767,
    -9929.4113,
    -1837.3868,
    20940.2953,
    2782.9503,
    25299.7894,
    35649.8658,
    45795.8905
   ],
   "fy2026": -670368.3826,
   "fy2027": -139041.3905,
   "total_rule": "sum"
  },
  "np": {
   "key": "np",
   "label": "NET PROFIT / (LOSS)",
   "basis": "",
   "section": "BELOW EBITDA",
   "format": "int",
   "kind": "calc",
   "bold": true,
   "values": [
    -140271.7214,
    -155479.7193,
    -167005.2423,
    -136165.5822,
    -153482.9323,
    -146323.3304,
    -117745.8971,
    -87331.3155,
    -95605.133,
    -86325.6882,
    -86617.4557,
    -70443.7472,
    -151955.3793,
    -105601.4297,
    -130284.5171,
    -95530.8525,
    -121722.3914,
    -80999.9875,
    -73368.2342,
    -50924.6212,
    -69452.7941,
    -47010.0664,
    -33482.7374,
    -23878.479
   ],
   "fy2026": -1442797.7645,
   "fy2027": -984211.4898,
   "total_rule": "sum"
  },
  "arr": {
   "key": "arr",
   "label": "ARR",
   "basis": "",
   "section": "TOTAL",
   "format": "int",
   "kind": "calc",
   "bold": true,
   "values": [
    5672193.12,
    5655546,
    5786401.68,
    6026663.52,
    6077239.56,
    6166608.48,
    6351207.48,
    6401680.32,
    6509083.4903,
    6618822.8191,
    6762424.698,
    6888751.6071,
    7131877.1172,
    7267083.5864,
    7401896.8352,
    7531725.2595,
    7625724.3869,
    7755384.2929,
    7871467.3665,
    7965506.5151,
    8113207.9044,
    8263610.869,
    8402727.1352,
    8520741.712
   ],
   "fy2026": 6888751.6071,
   "fy2027": 8520741.712,
   "total_rule": "last"
  },
  "mrr": {
   "key": "mrr",
   "label": "CLOSING MRR",
   "basis": "",
   "section": "TOTAL",
   "format": "int",
   "kind": "calc",
   "bold": true,
   "values": [
    472682.76,
    471295.5,
    482200.14,
    502221.96,
    506436.63,
    513884.04,
    529267.29,
    533473.36,
    542423.6242,
    551568.5683,
    563535.3915,
    574062.6339,
    594323.0931,
    605590.2989,
    616824.7363,
    627643.7716,
    635477.0322,
    646282.0244,
    655955.6139,
    663792.2096,
    676100.6587,
    688634.2391,
    700227.2613,
    710061.8093
   ],
   "fy2026": 574062.6339,
   "fy2027": 710061.8093,
   "total_rule": "last"
  },
  "customers": {
   "key": "lg",
   "label": "Customers",
   "basis": "",
   "section": "TOTAL",
   "format": "num1",
   "kind": "calc",
   "bold": false,
   "values": [
    909,
    919,
    941,
    954,
    951,
    954,
    979,
    977,
    992.4073,
    1009.0258,
    1021.6259,
    1028.434,
    1045.6191,
    1059.7501,
    1071.5522,
    1081.5986,
    1091.509,
    1100.1276,
    1104.7771,
    1104.2794,
    1117.3,
    1131.6629,
    1141.9084,
    1146.4784
   ],
   "fy2026": 1028.434,
   "fy2027": 1146.4784,
   "total_rule": "last"
  },
  "nrr": {
   "key": "nrr",
   "label": "NET REVENUE RETENTION, trailing 12 months",
   "basis": "bridge method",
   "section": "TOTAL",
   "format": "pct",
   "kind": "calc",
   "bold": true,
   "values": [
    0.9636,
    0.9332,
    0.9235,
    0.9318,
    0.929,
    0.9248,
    0.9288,
    0.9244,
    0.9222,
    0.9261,
    0.9247,
    0.9228,
    0.924,
    0.9438,
    0.9448,
    0.9449,
    0.9459,
    0.9472,
    0.9451,
    0.9489,
    0.9481,
    0.9474,
    0.9481,
    0.9485
   ],
   "fy2026": 0.9228,
   "fy2027": 0.9485,
   "total_rule": "last"
  },
  "grr": {
   "key": "grr",
   "label": "GROSS REVENUE RETENTION, trailing 12 months",
   "basis": "bridge method",
   "section": "TOTAL",
   "format": "pct",
   "kind": "calc",
   "bold": true,
   "values": [
    0.8156,
    0.7894,
    0.7815,
    0.7874,
    0.7832,
    0.7781,
    0.7836,
    0.7783,
    0.7769,
    0.7791,
    0.7786,
    0.776,
    0.776,
    0.7929,
    0.7953,
    0.797,
    0.7987,
    0.8007,
    0.7995,
    0.8021,
    0.8016,
    0.8013,
    0.8024,
    0.803
   ],
   "fy2026": 0.776,
   "fy2027": 0.803,
   "total_rule": "last"
  },
  "billings": {
   "key": "bill",
   "label": "TOTAL BILLINGS",
   "basis": "",
   "section": "BILLINGS (EUR ex VAT)",
   "format": "int",
   "kind": "calc",
   "bold": true,
   "values": [
    893904.81,
    341622.14,
    696673.3,
    652599.29,
    540671.24,
    539154.22,
    592023.44,
    362129.14,
    649931.0838,
    492868.8581,
    681123.5396,
    448133.3012,
    1028350.3486,
    488429.0501,
    841431.1033,
    773470.4444,
    643547.0346,
    689964.108,
    726370.6776,
    492347.3509,
    809532.1897,
    650782.2755,
    825958.8926,
    583247.5921
   ],
   "fy2026": 6890834.3628,
   "fy2027": 8553431.0676,
   "total_rule": "sum"
  },
  "deferred_revenue": {
   "key": "dr_tot",
   "label": "Deferred revenue, total",
   "basis": "",
   "section": "MEMO",
   "format": "int",
   "kind": "calc",
   "bold": false,
   "values": [
    1844226.4667,
    1700961.44,
    1902384.6,
    2036736.93,
    2056238.2067,
    2065941.72,
    2113131.2033,
    1925978.65,
    2017997.5034,
    1942844.4912,
    2044117.4081,
    1900824.0711,
    2317658.8972,
    2182661.7657,
    2389274.3055,
    2518952.7422,
    2510595.0999,
    2537156.9991,
    2591016.5002,
    2402776.0918,
    2518698.8927,
    2462623.2976,
    2570320.7008,
    2425685.6503
   ],
   "fy2026": 1900824.0711,
   "fy2027": 2425685.6503,
   "total_rule": "last"
  },
  "cash": {
   "key": "cash",
   "label": "Cash at bank",
   "basis": "CF",
   "section": "ASSETS",
   "format": "int",
   "kind": "calc",
   "bold": false,
   "values": [
    4852248.1816,
    4995217.7263,
    5127022.9542,
    4707127.2234,
    4886441.5383,
    4735039.5039,
    4308764.706,
    4314216.6401,
    4227071.6623,
    3890943.0951,
    3926768.8557,
    3695090.4834,
    3305287.3768,
    3251254.7826,
    3290582.2684,
    3120538.5967,
    3188304.5635,
    2873084.1872,
    2680289.7634,
    2687783.2289,
    2538330.7484,
    2387195.2231,
    2370346.5651,
    2041290.7634
   ],
   "fy2026": 3695090.4834,
   "fy2027": 2041290.7634,
   "total_rule": "last"
  },
  "burn_multiple": {
   "key": "bm",
   "label": "BURN MULTIPLE, trailing 12 months: net burn / net new ARR (0 when not burning or ARR not growing)",
   "basis": "",
   "section": "EFFICIENCY",
   "format": "x",
   "kind": "calc",
   "bold": true,
   "values": [
    2.0543,
    1.9822,
    1.7902,
    1.6356,
    1.4659,
    1.3562,
    1.4833,
    1.3145,
    1.1503,
    1.1278,
    0.9295,
    0.8436,
    0.8314,
    0.8409,
    0.8617,
    0.722,
    0.7379,
    0.7873,
    0.6327,
    0.6137,
    0.6372,
    0.5089,
    0.5424,
    0.6049
   ],
   "fy2026": 0.8436,
   "fy2027": 0.6049,
   "total_rule": "last"
  },
  "rule_of_40": {
   "key": "r40",
   "label": "RULE OF 40: ARR growth + EBITDA margin (trailing 12 months)",
   "basis": "",
   "section": "EFFICIENCY",
   "format": "pct",
   "kind": "calc",
   "bold": true,
   "values": [
    0.0573,
    0.0246,
    0.005,
    0.0622,
    0.0377,
    0.0531,
    0.0659,
    0.077,
    0.0941,
    0.128,
    0.1373,
    0.1634,
    0.1545,
    0.193,
    0.1956,
    0.1746,
    0.1866,
    0.2006,
    0.1903,
    0.2017,
    0.2088,
    0.2173,
    0.2188,
    0.2196
   ],
   "fy2026": 0.1634,
   "fy2027": 0.2196,
   "total_rule": "last"
  },
  "cac_payback_months": {
   "key": "payback",
   "label": "CAC payback (months): spend / ((new + expansion MRR) x gross margin), trailing 3 months",
   "basis": "",
   "section": "ACQUISITION COST",
   "format": "num1",
   "kind": "calc",
   "bold": true,
   "values": [
    13.5905,
    15.8113,
    15.3574,
    14.1605,
    15.0153,
    16.1098,
    17.7144,
    16.5669,
    15.963,
    17.1348,
    15.3965,
    15.1763,
    14.4062,
    15.236,
    15.2365,
    15.7672,
    16.8845,
    17.0307,
    17.4457,
    16.6989,
    16.0496,
    15.2695,
    14.3454,
    15.0134
   ],
   "fy2026": 15.1763,
   "fy2027": 15.0134,
   "total_rule": "last"
  },
  "ltv_cac": {
   "key": "ltv_cac",
   "label": "LTV / CAC",
   "basis": "",
   "section": "RETENTION AND LIFETIME VALUE",
   "format": "x",
   "kind": "calc",
   "bold": true,
   "values": [
    5.7852,
    4.9064,
    4.6932,
    4.6971,
    3.9118,
    3.6476,
    3.8965,
    4.1947,
    4.3477,
    4.5927,
    4.8466,
    4.488,
    4.3346,
    4.7074,
    4.8457,
    4.5898,
    4.4622,
    4.4697,
    4.2006,
    4.0818,
    4.3216,
    4.7916,
    5.2927,
    5.0109
   ],
   "fy2026": 4.488,
   "fy2027": 5.0109,
   "total_rule": "last"
  },
  "runway_months": {
   "key": "runway",
   "label": "Runway to the covenant floor (months): (cash - minimum cash) / average outflow; 60 = cash generative",
   "basis": "",
   "section": "RUNWAY",
   "format": "num1",
   "kind": "calc",
   "bold": true,
   "values": [
    11.0776,
    39.0192,
    60,
    60,
    60,
    28.5857,
    24.9177,
    17.3754,
    19.0587,
    20.7573,
    22.6619,
    15.1984,
    11.8088,
    9.998,
    16.9879,
    34.4339,
    60,
    13.4593,
    11.45,
    10.1162,
    13.7862,
    14.1988,
    12.9507,
    6.285
   ],
   "fy2026": 15.1984,
   "fy2027": 6.285,
   "total_rule": "last"
  },
  "headcount": {
   "key": "hc",
   "label": "TOTAL HEADCOUNT",
   "basis": "",
   "section": "HEADCOUNT BY BAND (A: payroll; F: prior + planned hires - leavers + replacements - reductions)",
   "format": "num1",
   "kind": "calc",
   "bold": true,
   "values": [
    81,
    83,
    85,
    87,
    89,
    90,
    90,
    88,
    87.8583,
    87.7236,
    88.7348,
    88.718,
    95.6971,
    95.6054,
    97.5147,
    98.4841,
    100.4427,
    100.4005,
    100.3685,
    100.3698,
    102.3703,
    102.3503,
    102.3305,
    102.3309
   ],
   "fy2026": 88.718,
   "fy2027": 102.3309,
   "total_rule": "last"
  }
 }
}