{
 "meta": {
  "company": "Alderway Home B.V. (fictional demonstration company)",
  "fictional": true,
  "currency": "EUR",
  "last_actual_month": "2026-08-31",
  "scenario": "Base",
  "generated": "2026-09-13",
  "source_workbook": "Alderway_Home_BV_Ecommerce_Finance_Pack_Aug26_FICTIONAL.xlsx",
  "model_status": "OK",
  "formula_errors": 0,
  "integrity_checks_passed": 26,
  "integrity_checks_failed": [],
  "formats": {
   "eur": "EUR, whole units",
   "eur2": "EUR, two decimals",
   "pct": "ratio (0.25 = 25%)",
   "int": "count",
   "num1": "number, one decimal",
   "x": "multiple",
   "date": "ISO date",
   "month": "month end, ISO date"
  }
 },
 "scenarios": {
  "snapshot_run_date": "13-Sep-2026",
  "selected": "Base",
  "metrics": [
   {
    "key": "fy26_net",
    "label": "FY2026 net revenue (outlook)",
    "unit": "EUR",
    "base": 4310520.8988,
    "downside": 4158848.0695,
    "upside": 4398801.2882,
    "live_selected": 4310520.8988,
    "check": 0
   },
   {
    "key": "fy27_net",
    "label": "FY2027 net revenue",
    "unit": "EUR",
    "base": 5610598.7419,
    "downside": 4477777.1264,
    "upside": 6375944.0208,
    "live_selected": 5610598.7419,
    "check": 0
   },
   {
    "key": "fy26_gm",
    "label": "FY2026 gross margin %",
    "unit": "%",
    "base": 0.6291,
    "downside": 0.6208,
    "upside": 0.6335,
    "live_selected": 0.6291,
    "check": 0
   },
   {
    "key": "fy26_cm2",
    "label": "FY2026 CM2",
    "unit": "EUR",
    "base": 1110164.2748,
    "downside": 954766.0593,
    "upside": 1197255.5357,
    "live_selected": 1110164.2748,
    "check": 0
   },
   {
    "key": "fy26_cm2p",
    "label": "FY2026 CM2 %",
    "unit": "%",
    "base": 0.2575,
    "downside": 0.2296,
    "upside": 0.2722,
    "live_selected": 0.2575,
    "check": 0
   },
   {
    "key": "fy26_opex",
    "label": "FY2026 operating expenses",
    "unit": "EUR",
    "base": -973778.5447,
    "downside": -951630.3511,
    "upside": -976478.1288,
    "live_selected": -973778.5447,
    "check": 0
   },
   {
    "key": "fy26_ebitda",
    "label": "FY2026 EBITDA",
    "unit": "EUR",
    "base": 136385.7301,
    "downside": 3135.7081,
    "upside": 220777.4069,
    "live_selected": 136385.7301,
    "check": 0
   },
   {
    "key": "fy26_ebitdap",
    "label": "FY2026 EBITDA %",
    "unit": "%",
    "base": 0.0316,
    "downside": 0.0008,
    "upside": 0.0502,
    "live_selected": 0.0316,
    "check": 0
   },
   {
    "key": "fy26_np",
    "label": "FY2026 net profit",
    "unit": "EUR",
    "base": 62634.469,
    "downside": -55923.517,
    "upside": 130991.7272,
    "live_selected": 62634.469,
    "check": 0
   },
   {
    "key": "fy27_ebitda",
    "label": "FY2027 EBITDA",
    "unit": "EUR",
    "base": 238865.6507,
    "downside": -262565.4388,
    "upside": 676760.6187,
    "live_selected": 238865.6507,
    "check": 0
   },
   {
    "key": "fy27_np",
    "label": "FY2027 net profit",
    "unit": "EUR",
    "base": 140895.6382,
    "downside": -327485.8573,
    "upside": 467585.4286,
    "live_selected": 140895.6382,
    "check": 0
   },
   {
    "key": "cash_dec26",
    "label": "Cash at 31-Dec-26",
    "unit": "EUR",
    "base": 611228.1591,
    "downside": 486356.9605,
    "upside": 664521.8139,
    "live_selected": 611228.1591,
    "check": 0
   },
   {
    "key": "cash_dec27",
    "label": "Cash at 31-Dec-27",
    "unit": "EUR",
    "base": 346148.3018,
    "downside": -86197.3265,
    "upside": 674795.4419,
    "live_selected": 346148.3018,
    "check": 0
   },
   {
    "key": "cash_min",
    "label": "Lowest month-end cash, Sep-26 to Dec-27",
    "unit": "EUR",
    "base": 1825.2167,
    "downside": -214906.6863,
    "upside": 171993.2055,
    "live_selected": 1825.2167,
    "check": 0
   },
   {
    "key": "cash_min_m",
    "label": "Month of the lowest cash",
    "unit": "month",
    "base": "2027-10-31",
    "downside": "2027-10-31",
    "upside": "2027-10-31",
    "live_selected": "2027-10-31",
    "check": 0
   },
   {
    "key": "fund_need",
    "label": "Peak funding need vs the minimum cash buffer (negative = shortfall)",
    "unit": "EUR",
    "base": -148174.7833,
    "downside": -364906.6863,
    "upside": 21993.2055,
    "live_selected": -148174.7833,
    "check": 0
   },
   {
    "key": "inv_dec26",
    "label": "Inventory on hand, net, at 31-Dec-26",
    "unit": "EUR",
    "base": 435689.7832,
    "downside": 396015.9629,
    "upside": 457798.7216,
    "live_selected": 435689.7832,
    "check": 0
   },
   {
    "key": "ar_dec26",
    "label": "Marketplace receivables at 31-Dec-26",
    "unit": "EUR",
    "base": 182242.7845,
    "downside": 198926.4561,
    "upside": 196934.9786,
    "live_selected": 182242.7845,
    "check": 0
   },
   {
    "key": "nwc_dec26",
    "label": "Net working capital at 31-Dec-26",
    "unit": "EUR",
    "base": 483698.8417,
    "downside": 475320.0184,
    "upside": 514796.8637,
    "live_selected": 483698.8417,
    "check": 0
   },
   {
    "key": "vat_dec26",
    "label": "VAT payable at 31-Dec-26",
    "unit": "EUR",
    "base": 241870.5216,
    "downside": 221478.8131,
    "upside": 252884.4109,
    "live_selected": 241870.5216,
    "check": 0
   },
   {
    "key": "fy27_cm2p",
    "label": "FY2027 CM2 %",
    "unit": "%",
    "base": 0.2485,
    "downside": 0.1629,
    "upside": 0.2895,
    "live_selected": 0.2485,
    "check": 0
   },
   {
    "key": "fy27_ebitdap",
    "label": "FY2027 EBITDA %",
    "unit": "%",
    "base": 0.0426,
    "downside": -0.0586,
    "upside": 0.1061,
    "live_selected": 0.0426,
    "check": 0
   }
  ],
  "drivers": [
   {
    "driver": "Shopify unit volume growth vs deseasonalised run-rate (annualised)",
    "unit": 0,
    "base": 0.22,
    "downside": 0.05,
    "upside": 0.32,
    "selected": 0.22
   },
   {
    "driver": "Amazon unit volume growth vs run-rate (annualised)",
    "unit": 0,
    "base": 0.28,
    "downside": 0.1,
    "upside": 0.38,
    "selected": 0.28
   },
   {
    "driver": "Walmart unit volume growth vs run-rate (annualised)",
    "unit": 0,
    "base": 0.7,
    "downside": 0.25,
    "upside": 1.1,
    "selected": 0.7
   },
   {
    "driver": "Shopify gross unit price change (annualised)",
    "unit": 0,
    "base": 0.03,
    "downside": 0,
    "upside": 0.04,
    "selected": 0.03
   },
   {
    "driver": "Shopify discounts as share of gross sales",
    "unit": 0,
    "base": 0.085,
    "downside": 0.1,
    "upside": 0.075,
    "selected": 0.085
   },
   {
    "driver": "Shopify refunds and returns as share of gross sales",
    "unit": 0,
    "base": 0.065,
    "downside": 0.08,
    "upside": 0.055,
    "selected": 0.065
   },
   {
    "driver": "Amazon refunds and returns as share of gross sales",
    "unit": 0,
    "base": 0.075,
    "downside": 0.09,
    "upside": 0.07,
    "selected": 0.075
   },
   {
    "driver": "Landed unit cost inflation (annualised)",
    "unit": 0,
    "base": 0.03,
    "downside": 0.07,
    "upside": 0.01,
    "selected": 0.03
   },
   {
    "driver": "Returned units resellable and recovered to stock",
    "unit": 0,
    "base": 0.65,
    "downside": 0.55,
    "upside": 0.7,
    "selected": 0.65
   },
   {
    "driver": "FBA fulfilment fee per unit",
    "unit": "EUR",
    "base": 5.4,
    "downside": 5.65,
    "upside": 5.35,
    "selected": 5.4
   },
   {
    "driver": "Carrier cost per Shopify order",
    "unit": "EUR",
    "base": 6.35,
    "downside": 6.8,
    "upside": 6.2,
    "selected": 6.35
   },
   {
    "driver": "Shopify paid media (Meta, Google) as share of net revenue",
    "unit": 0,
    "base": 0.19,
    "downside": 0.23,
    "upside": 0.17,
    "selected": 0.19
   },
   {
    "driver": "Amazon advertising as share of net revenue",
    "unit": 0,
    "base": 0.095,
    "downside": 0.115,
    "upside": 0.085,
    "selected": 0.095
   },
   {
    "driver": "Walmart Connect advertising as share of net revenue",
    "unit": 0,
    "base": 0.12,
    "downside": 0.15,
    "upside": 0.1,
    "selected": 0.12
   },
   {
    "driver": "Amazon settlement cycle plus reserve",
    "unit": "days",
    "base": 21,
    "downside": 28,
    "upside": 21,
    "selected": 21
   },
   {
    "driver": "Inventory purchasing policy: target forward days of cover",
    "unit": "days",
    "base": 75,
    "downside": 65,
    "upside": 80,
    "selected": 75
   },
   {
    "driver": "Discretionary opex factor (contractors, travel, content, recruitment)",
    "unit": "x",
    "base": 1,
    "downside": 0.9,
    "upside": 1.05,
    "selected": 1
   },
   {
    "driver": "Planned hires proceed (1 = yes, 0 = frozen)",
    "unit": "flag",
    "base": 1,
    "downside": 0,
    "upside": 1,
    "selected": 1
   },
   {
    "driver": "USD per EUR, forecast months",
    "unit": "rate",
    "base": 1.1,
    "downside": 1.16,
    "upside": 1.06,
    "selected": 1.1
   }
  ]
 },
 "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 in every month",
    "proves": "Net cash flow built from P&L and balance sheet movements equals 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 equals opening plus cumulative profit less dividends",
    "proves": "Equity roll-forward to Dec-27",
    "value": 0,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "EBITDA on the cash flow equals EBITDA on the P&L",
    "proves": "Add-backs are complete",
    "value": 0,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "Opening balance sheet balances",
    "proves": "FY25 closing balances entered on Inputs_Actuals",
    "value": 0,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "Product contribution: sum of categories equals channel net revenue",
    "proves": "Allocation keys sum to 100% every month",
    "value": 0,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "Product contribution: sum of categories equals channel CM2",
    "proves": "Every allocated cost line is fully distributed",
    "value": 0,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "Volume engine: category units equal channel units",
    "proves": "Mix shares sum to 100%",
    "value": 0,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "AR aging: marketplace receivables tie to the balance sheet",
    "proves": "Aging built from settlement reports agrees with the ledger at the last actual month",
    "value": 0,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "AR aging: other receivables tie to the balance sheet",
    "proves": null,
    "value": 0,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "AP aging: logistics group ties to the AP schedule",
    "proves": "Open invoices agree with the roll-forward closing balance",
    "value": 0,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "AP aging: paid media group ties to the AP schedule",
    "proves": null,
    "value": 0,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "AP aging: other opex group ties to the AP schedule",
    "proves": null,
    "value": 0,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "PO register: deposits on unshipped POs equal supplier deposits at the last actual month",
    "proves": "Balance sheet prepayments are fully supported by the register",
    "value": 0,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "PO register: FOB value of shipped, unarrived POs equals inventory in transit at the last actual month",
    "proves": "Balance sheet in-transit is fully supported by the register",
    "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 reconciles to the P&L variance",
    "proves": "Volume plus price and mix effects equal the revenue variance",
    "value": 0,
    "tolerance": 0.5,
    "status": "OK"
   },
   {
    "check": "Inventory on hand by category never negative",
    "proves": "Purchasing policy keeps stock available",
    "value": 26146.65,
    "tolerance": 0,
    "status": "OK"
   },
   {
    "check": "Marketplace receivables never negative",
    "proves": "Payout sizing is bounded by the receivable",
    "value": 6395.1564,
    "tolerance": 0,
    "status": "OK"
   },
   {
    "check": "Trade payables never negative",
    "proves": null,
    "value": 62533.271,
    "tolerance": 0,
    "status": "OK"
   },
   {
    "check": "Fixed asset net book value never negative",
    "proves": "Depreciation is capped at cost",
    "value": 41483.3333,
    "tolerance": 0,
    "status": "OK"
   },
   {
    "check": "Term loan balance never negative",
    "proves": "Principal is capped at the balance",
    "value": 214925.5183,
    "tolerance": 0,
    "status": "OK"
   },
   {
    "check": "Timeline: months flagged actual equal the last actual month index",
    "proves": "Actual and forecast flags are consistent",
    "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 is needed",
    "value": 1825.2167
   },
   {
    "item": "Lowest 13-week closing cash",
    "note": null,
    "value": 290055.2406
   },
   {
    "item": "Highest days of inventory on hand in the forecast",
    "note": "Over 150 days signals overstock",
    "value": 128.1701
   },
   {
    "item": "Amazon share of FY2026 net revenue",
    "note": "Concentration above 50% is a dependency risk",
    "value": 0.4227
   }
  ]
 },
 "bva": {
  "rows": [
   {
    "key": "orders_S",
    "label": "Shopify EU (DTC): orders",
    "ytd_actual": 15614,
    "ytd_budget": 16560,
    "ytd_variance": -946,
    "ytd_variance_pct": -0.0571,
    "fy_outlook": 27020.2172,
    "fy_budget": 28221,
    "fy_variance": -1200.7828,
    "fy_variance_pct": -0.0425,
    "commentary": null
   },
   {
    "key": "orders_A",
    "label": "Amazon EU (FBA): orders",
    "ytd_actual": 18746,
    "ytd_budget": 19440,
    "ytd_variance": -694,
    "ytd_variance_pct": -0.0357,
    "fy_outlook": 32693.7539,
    "fy_budget": 33129,
    "fy_variance": -435.2461,
    "fy_variance_pct": -0.0131,
    "commentary": null
   },
   {
    "key": "orders_W",
    "label": "Walmart US (WFS): orders",
    "ytd_actual": 3488,
    "ytd_budget": 5220,
    "ytd_variance": -1732,
    "ytd_variance_pct": -0.3318,
    "fy_outlook": 7405.85,
    "fy_budget": 10770,
    "fy_variance": -3364.15,
    "fy_variance_pct": -0.3124,
    "commentary": "Walmart ramp 33% behind the budgeted launch curve; go or no-go review at 900 orders a month."
   },
   {
    "key": "rev_S",
    "label": "Shopify EU (DTC): net revenue",
    "ytd_actual": 1149062.11,
    "ytd_budget": 1225440,
    "ytd_variance": -76377.89,
    "ytd_variance_pct": -0.0623,
    "fy_outlook": 2001235.783,
    "fy_budget": 2088354,
    "fy_variance": -87118.217,
    "fy_variance_pct": -0.0417,
    "commentary": null
   },
   {
    "key": "rev_A",
    "label": "Amazon EU (FBA): net revenue",
    "ytd_actual": 1043911.06,
    "ytd_budget": 1108080,
    "ytd_variance": -64168.94,
    "ytd_variance_pct": -0.0579,
    "fy_outlook": 1821897.3857,
    "fy_budget": 1888353,
    "fy_variance": -66455.6143,
    "fy_variance_pct": -0.0352,
    "commentary": null
   },
   {
    "key": "rev_W",
    "label": "Walmart US (WFS): net revenue",
    "ytd_actual": 232757.1464,
    "ytd_budget": 287100,
    "ytd_variance": -54342.8536,
    "ytd_variance_pct": -0.1893,
    "fy_outlook": 487443.7857,
    "fy_budget": 592350,
    "fy_variance": -104906.2143,
    "fy_variance_pct": -0.1771,
    "commentary": null
   },
   {
    "key": "T_net",
    "label": "NET REVENUE",
    "ytd_actual": 2425730.3164,
    "ytd_budget": 2620620,
    "ytd_variance": -194889.6836,
    "ytd_variance_pct": -0.0744,
    "fy_outlook": 4310576.9544,
    "fy_budget": 4569057,
    "fy_variance": -258480.0456,
    "fy_variance_pct": -0.0566,
    "commentary": "Volume effect EUR -212k, price and mix EUR 17k (bridge below)."
   },
   {
    "key": "cogs",
    "label": "Cost of goods sold (incl. inventory adjustments)",
    "ytd_actual": -886793.5987,
    "ytd_budget": -982732.5,
    "ytd_variance": 95938.9013,
    "ytd_variance_pct": 0.0976,
    "fy_outlook": -1598761.7397,
    "fy_budget": -1713396.375,
    "fy_variance": 114634.6353,
    "fy_variance_pct": 0.0669,
    "commentary": null
   },
   {
    "key": "gp",
    "label": "GROSS PROFIT",
    "ytd_actual": 1538936.7176,
    "ytd_budget": 1637887.5,
    "ytd_variance": -98950.7824,
    "ytd_variance_pct": -0.0604,
    "fy_outlook": 2711815.2147,
    "fy_budget": 2855660.625,
    "fy_variance": -143845.4103,
    "fy_variance_pct": -0.0504,
    "commentary": null
   },
   {
    "key": "gm",
    "label": "Gross margin %",
    "ytd_actual": 0.6344,
    "ytd_budget": 0.625,
    "ytd_variance": 0.0094,
    "ytd_variance_pct": null,
    "fy_outlook": 0.6291,
    "fy_budget": 0.625,
    "fy_variance": 0.0041,
    "fy_variance_pct": null,
    "commentary": "Product margin 0.9 points better than budget: landed cost inflation below plan, recovery of returned stock included."
   },
   {
    "key": "T_var",
    "label": "Variable channel costs",
    "ytd_actual": -549699.8366,
    "ytd_budget": -523227.6,
    "ytd_variance": -26472.2366,
    "ytd_variance_pct": -0.0506,
    "fy_outlook": -993286.3883,
    "fy_budget": -918468.81,
    "fy_variance": -74817.5783,
    "fy_variance_pct": -0.0815,
    "commentary": "Amazon fee changes and peak storage multiplier; 5.1% over budget on -7.4% revenue."
   },
   {
    "key": "cm1",
    "label": "CONTRIBUTION BEFORE MARKETING (CM1)",
    "ytd_actual": 989236.8811,
    "ytd_budget": 1114659.9,
    "ytd_variance": -125423.0189,
    "ytd_variance_pct": -0.1125,
    "fy_outlook": 1718528.8264,
    "fy_budget": 1937191.815,
    "fy_variance": -218662.9886,
    "fy_variance_pct": -0.1129,
    "commentary": null
   },
   {
    "key": "T_ads",
    "label": "Paid media",
    "ytd_actual": -341980.4561,
    "ytd_budget": -334092.6,
    "ytd_variance": -7887.8561,
    "ytd_variance_pct": -0.0236,
    "fy_outlook": -608364.5516,
    "fy_budget": -580688.685,
    "fy_variance": -27675.8666,
    "fy_variance_pct": -0.0477,
    "commentary": "Spend near budget, efficiency not: Shopify CAC EUR 21 in Jan vs EUR 26 at the last actual month."
   },
   {
    "key": "cm2",
    "label": "CONTRIBUTION AFTER MARKETING (CM2)",
    "ytd_actual": 647256.425,
    "ytd_budget": 780567.3,
    "ytd_variance": -133310.875,
    "ytd_variance_pct": -0.1708,
    "fy_outlook": 1110164.2748,
    "fy_budget": 1356503.13,
    "fy_variance": -246338.8552,
    "fy_variance_pct": -0.1816,
    "commentary": null
   },
   {
    "key": "cm2pct",
    "label": "CM2 %",
    "ytd_actual": 0.2668,
    "ytd_budget": 0.2979,
    "ytd_variance": -0.031,
    "ytd_variance_pct": null,
    "fy_outlook": 0.2575,
    "fy_budget": 0.2969,
    "fy_variance": -0.0393,
    "fy_variance_pct": null,
    "commentary": "Gap of 3.1 points on full-year revenue is worth EUR 134k."
   },
   {
    "key": "ox_salaries",
    "label": "Salaries and wages (incl. employer costs)",
    "ytd_actual": -369300,
    "ytd_budget": -369500,
    "ytd_variance": 200,
    "ytd_variance_pct": 0.0005,
    "fy_outlook": -581000,
    "fy_budget": -570300,
    "fy_variance": -10700,
    "fy_variance_pct": -0.0188,
    "commentary": null
   },
   {
    "key": "ox_contractors",
    "label": "Contractors and freelancers",
    "ytd_actual": -39579,
    "ytd_budget": -36000,
    "ytd_variance": -3579,
    "ytd_variance_pct": -0.0994,
    "fy_outlook": -58779,
    "fy_budget": -54000,
    "fy_variance": -4779,
    "fy_variance_pct": -0.0885,
    "commentary": null
   },
   {
    "key": "ox_rent",
    "label": "Rent and facilities",
    "ytd_actual": -38400,
    "ytd_budget": -38400,
    "ytd_variance": 0,
    "ytd_variance_pct": 0,
    "fy_outlook": -57600,
    "fy_budget": -57600,
    "fy_variance": 0,
    "fy_variance_pct": 0,
    "commentary": null
   },
   {
    "key": "ox_software",
    "label": "Software, apps and platform subscriptions",
    "ytd_actual": -34004,
    "ytd_budget": -32000,
    "ytd_variance": -2004,
    "ytd_variance_pct": -0.0626,
    "fy_outlook": -51204,
    "fy_budget": -48000,
    "fy_variance": -3204,
    "fy_variance_pct": -0.0668,
    "commentary": null
   },
   {
    "key": "ox_profees",
    "label": "Professional fees (finance, legal, audit)",
    "ytd_actual": -25670,
    "ytd_budget": -24000,
    "ytd_variance": -1670,
    "ytd_variance_pct": -0.0696,
    "fy_outlook": -38470,
    "fy_budget": -36000,
    "fy_variance": -2470,
    "fy_variance_pct": -0.0686,
    "commentary": null
   },
   {
    "key": "ox_insurance",
    "label": "Insurance",
    "ytd_actual": -9200,
    "ytd_budget": -9200,
    "ytd_variance": 0,
    "ytd_variance_pct": 0,
    "fy_outlook": -13800,
    "fy_budget": -13800,
    "fy_variance": 0,
    "fy_variance_pct": 0,
    "commentary": null
   },
   {
    "key": "ox_travel",
    "label": "Travel and entertainment",
    "ytd_actual": -10408,
    "ytd_budget": -9600,
    "ytd_variance": -808,
    "ytd_variance_pct": -0.0842,
    "fy_outlook": -16008,
    "fy_budget": -14400,
    "fy_variance": -1608,
    "fy_variance_pct": -0.1117,
    "commentary": null
   },
   {
    "key": "ox_content",
    "label": "Content, creative and PR (non-media)",
    "ytd_actual": -47685,
    "ytd_budget": -40000,
    "ytd_variance": -7685,
    "ytd_variance_pct": -0.1921,
    "fy_outlook": -69685,
    "fy_budget": -60000,
    "fy_variance": -9685,
    "fy_variance_pct": -0.1614,
    "commentary": "Discretionary overrun of EUR 7.7k; no approval owner until the September action."
   },
   {
    "key": "ox_custserv",
    "label": "Customer service (outsourced, per order)",
    "ytd_actual": -27006,
    "ytd_budget": -26793,
    "ytd_variance": -213,
    "ytd_variance_pct": -0.0079,
    "fy_outlook": -47496.2748,
    "fy_budget": -46878,
    "fy_variance": -618.2748,
    "fy_variance_pct": -0.0132,
    "commentary": null
   },
   {
    "key": "ox_office",
    "label": "Office and other G&A",
    "ytd_actual": -14120,
    "ytd_budget": -12800,
    "ytd_variance": -1320,
    "ytd_variance_pct": -0.1031,
    "fy_outlook": -21320,
    "fy_budget": -19200,
    "fy_variance": -2120,
    "fy_variance_pct": -0.1104,
    "commentary": null
   },
   {
    "key": "ox_bank",
    "label": "Bank charges and FX costs",
    "ytd_actual": -3719,
    "ytd_budget": -3930.93,
    "ytd_variance": 211.93,
    "ytd_variance_pct": 0.0539,
    "fy_outlook": -6546.27,
    "fy_budget": -6853.5855,
    "fy_variance": 307.3155,
    "fy_variance_pct": 0.0448,
    "commentary": null
   },
   {
    "key": "ox_recruit",
    "label": "Recruitment and training",
    "ytd_actual": -8270,
    "ytd_budget": -5600,
    "ytd_variance": -2670,
    "ytd_variance_pct": -0.4768,
    "fy_outlook": -11870,
    "fy_budget": -8400,
    "fy_variance": -3470,
    "fy_variance_pct": -0.4131,
    "commentary": "Two unbudgeted searches; EUR 2.7k over."
   },
   {
    "key": "T_opex",
    "label": "TOTAL OPERATING EXPENSES",
    "ytd_actual": -627361,
    "ytd_budget": -607823.93,
    "ytd_variance": -19537.07,
    "ytd_variance_pct": -0.0321,
    "fy_outlook": -973778.5447,
    "fy_budget": -935431.5855,
    "fy_variance": -38346.9592,
    "fy_variance_pct": -0.041,
    "commentary": null
   },
   {
    "key": "ebitda",
    "label": "EBITDA",
    "ytd_actual": 19895.425,
    "ytd_budget": 172743.37,
    "ytd_variance": -152847.945,
    "ytd_variance_pct": -0.8848,
    "fy_outlook": 136385.7301,
    "fy_budget": 421071.5445,
    "fy_variance": -284685.8144,
    "fy_variance_pct": -0.6761,
    "commentary": "EUR 153k behind budget YTD; EUR 285k on the full year."
   },
   {
    "key": "ebitdapct",
    "label": "EBITDA %",
    "ytd_actual": 0.0082,
    "ytd_budget": 0.0659,
    "ytd_variance": -0.0577,
    "ytd_variance_pct": null,
    "fy_outlook": 0.0316,
    "fy_budget": 0.0922,
    "fy_variance": -0.0605,
    "fy_variance_pct": null,
    "commentary": null
   },
   {
    "key": "np",
    "label": "NET PROFIT",
    "ytd_actual": -19817.0742,
    "ytd_budget": 109952.1297,
    "ytd_variance": -129769.2039,
    "ytd_variance_pct": -1.1802,
    "fy_outlook": 62634.469,
    "fy_budget": 297084.951,
    "fy_variance": -234450.4821,
    "fy_variance_pct": -0.7892,
    "commentary": null
   },
   {
    "key": "cash",
    "label": "Cash at bank",
    "ytd_actual": 391452.1962,
    "ytd_budget": 438000,
    "ytd_variance": -46547.8038,
    "ytd_variance_pct": -0.1063,
    "fy_outlook": 611228.1591,
    "fy_budget": 548000,
    "fy_variance": 63228.1591,
    "fy_variance_pct": 0.1154,
    "commentary": "December cash includes EUR 242k of Q4 VAT paid in January."
   },
   {
    "key": "inv",
    "label": "Inventory on hand, net",
    "ytd_actual": 383198.7118,
    "ytd_budget": 520000,
    "ytd_variance": -136801.2882,
    "ytd_variance_pct": -0.2631,
    "fy_outlook": 435689.7832,
    "fy_budget": 505000,
    "fy_variance": -69310.2168,
    "fy_variance_pct": -0.1372,
    "commentary": "Below budget because stock was run down after Q2, not because of better buying; Tableware and Storage remain overstocked."
   },
   {
    "key": "ar",
    "label": "Marketplace and payment receivables",
    "ytd_actual": 105116.5236,
    "ytd_budget": 114000,
    "ytd_variance": -8883.4764,
    "ytd_variance_pct": -0.0779,
    "fy_outlook": 182242.7845,
    "fy_budget": 178000,
    "fy_variance": 4242.7845,
    "fy_variance_pct": 0.0238,
    "commentary": null
   }
  ],
  "revenue_bridge_ytd": [
   {
    "channel": "Shopify EU (DTC)",
    "actual_units": 20921,
    "budget_units": 22356,
    "actual_rev_per_unit": 54.9239,
    "budget_rev_per_unit": 54.8148,
    "volume_effect": -78659.2593,
    "price_mix_effect": 2281.3693,
    "total_variance": -76377.89,
    "check": 0
   },
   {
    "channel": "Amazon EU (FBA)",
    "actual_units": 21560,
    "budget_units": 22356,
    "actual_rev_per_unit": 48.4189,
    "budget_rev_per_unit": 49.5652,
    "volume_effect": -39453.913,
    "price_mix_effect": -24715.027,
    "total_variance": -64168.94,
    "check": 0
   },
   {
    "channel": "Walmart US (WFS)",
    "actual_units": 4213,
    "budget_units": 6264,
    "actual_rev_per_unit": 55.2474,
    "budget_rev_per_unit": 45.8333,
    "volume_effect": -94004.1667,
    "price_mix_effect": 39661.313,
    "total_variance": -54342.8536,
    "check": 0
   },
   {
    "channel": "TOTAL",
    "actual_units": 46694,
    "budget_units": 50976,
    "actual_rev_per_unit": null,
    "budget_rev_per_unit": null,
    "volume_effect": -212117.339,
    "price_mix_effect": 17227.6553,
    "total_variance": -194889.6836,
    "check": 0
   }
  ]
 },
 "cash_13w_control": {
  "Low point in the 13 weeks": 290055.2406,
  "Week ending of the low point": "2026-11-06",
  "Shortfall vs buffer at the low point (negative = action needed)": 140055.2406,
  "Undrawn revolving facility available": 150000,
  "Facility headroom after covering the low-point shortfall": 150000
 },
 "product_scorecard": [
  {
   "category": "Cookware",
   "ytd_net_revenue": 972613.6666,
   "fy26_net_revenue": 1730488.9601,
   "ytd_cm2": 243882.5863,
   "fy26_cm2": 423225.342,
   "ytd_cm2_pct": 0.2507,
   "fy26_cm2_pct": 0.2446,
   "dio_last_actual": 23.4995,
   "dio_dec26": 47.9317
  },
  {
   "category": "Knives",
   "ytd_net_revenue": 482631.8371,
   "fy26_net_revenue": 861301.4306,
   "ytd_cm2": 144360.1041,
   "fy26_cm2": 253214.5484,
   "ytd_cm2_pct": 0.2991,
   "fy26_cm2_pct": 0.294,
   "dio_last_actual": 52.4111,
   "dio_dec26": 47.8949
  },
  {
   "category": "Textiles",
   "ytd_net_revenue": 448075.4476,
   "fy26_net_revenue": 783598.1251,
   "ytd_cm2": 124786.7759,
   "fy26_cm2": 212133.1946,
   "ytd_cm2_pct": 0.2785,
   "fy26_cm2_pct": 0.2707,
   "dio_last_actual": 121.5862,
   "dio_dec26": 47.8621
  },
  {
   "category": "Tableware",
   "ytd_net_revenue": 334261.9711,
   "fy26_net_revenue": 600811.3269,
   "ytd_cm2": 79839.268,
   "fy26_cm2": 139700.563,
   "ytd_cm2_pct": 0.2389,
   "fy26_cm2_pct": 0.2325,
   "dio_last_actual": 208.0788,
   "dio_dec26": 112.3287
  },
  {
   "category": "Storage",
   "ytd_net_revenue": 188147.3939,
   "fy26_net_revenue": 334377.1117,
   "ytd_cm2": 42074.4193,
   "fy26_cm2": 72079.6729,
   "ytd_cm2_pct": 0.2236,
   "fy26_cm2_pct": 0.2156,
   "dio_last_actual": 302.1986,
   "dio_dec26": 130.0957
  }
 ],
 "cfo_report": {
  "reporting_line": "Reporting month: Aug-26 actuals, Base scenario for the outlook. Amounts in EUR. Every figure in this report 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,426k, 7.4% below budget (EUR 195k). Gross margin held at 63.4% against a budget of 62.5%, so the shortfall sits entirely in volume and in the cost of selling: contribution after marketing is EUR 647k, 17.1% below budget, and EBITDA is EUR 20k against EUR 173k budgeted.",
     "Full-year outlook (actual plus Base forecast): net revenue EUR 4,311k (-5.7% vs budget), EBITDA EUR 136k (3.2% of revenue) and net profit EUR 63k. Cash closes December at EUR 611k, of which EUR 242k is the Q4 VAT that leaves in January, so the underlying year-end position is EUR 369k.",
     "Cash is safe through the 13-week window: the low point is EUR 290k in the week ending 06-Nov, EUR 140k above the EUR 150k buffer, with the revolving facility undrawn.",
     "Looking further out, the Base case bottoms at EUR 2k in Oct-27, EUR 148k short of the buffer. That trough is the FY2027 peak-season inventory build; it is a financing question to settle by mid 2027, not a solvency question today."
    ],
    "rows": []
   },
   {
    "title": "2. WHAT HAPPENED YEAR TO DATE (figures from BvA and Channel_PL)",
    "paragraphs": [
     "Volume, not price, explains the revenue miss. Units were 46,694 against 50,976 budgeted, a volume shortfall worth EUR 212k of revenue, partly offset by EUR 17k of price and mix. Walmart is the largest gap: 3,488 orders against 5,220 budgeted (-33%), a EUR 54k revenue shortfall on a channel launched with a ramp the budget assumed would be twice as fast.",
     "Shopify orders are -5.7% vs budget and Amazon -3.6%. Blended net revenue per order is EUR 64.22, in line with budget, and the refund rate is 7.0% of gross sales; the Textiles quality issue in Q2 is visible in the Shopify refund line and is the reason the refund driver on Assumptions carries a higher reference than the budget did.",
     "Cost of selling is the second problem. Variable channel costs (payment, referral, fulfilment, storage and inbound) were EUR 550k, 5.1% over budget, driven by Amazon FBA fee changes and the peak storage multiplier. Paid media of EUR 342k is close to budget in total, but its efficiency is not: Shopify paid CAC moved from EUR 21 in January to EUR 26 in August, and Shopify ROAS from 5.9x to 5.0x. Contribution margin after marketing is 26.7% against a 29.8% budget: that 3.1 point gap on the full-year revenue is EUR 134k of profit.",
     "Operating expenses are EUR 627k, 3.2% over budget. Salaries are on plan; the overrun is discretionary: content and creative EUR 8k over (19%), recruitment EUR 3k over, contractors EUR 4k over. None of these lines has an approval owner today; the action list fixes that."
    ],
    "rows": []
   },
   {
    "title": "3. CASH, WORKING CAPITAL AND THE 13 WEEKS",
    "paragraphs": [
     "Cash at Aug-26 is EUR 391k against a budgeted EUR 438k. Inventory on hand is EUR 383k (97 days), EUR 137k below budget, because the business ran stock down after a weak Q2 rather than because it bought well. The cash conversion cycle is 77 days (DIO 97, DSO 11, DPO 31).",
     "The 13-week forecast starts from EUR 351k and ends the week of 11-Dec at EUR 539k. Receipts of EUR 1,294k are set against payments of EUR 1,105k, of which committed purchase orders EUR 213k and the Q3 VAT and OSS payment EUR 150k on 31-Oct, which is what produces the low point in the following week. The forecast reconciles to the December balance sheet to the euro (Checks).",
     "Inventory is unbalanced rather than short. At the last actual month Cookware carried 23 days of cover and Knives 52, against Tableware at 208 days and Storage at 302. The register shows EUR 692k FOB of open orders with EUR 354k of cash still to pay; the two Cookware orders arriving in September and October cover peak, and the Tableware order placed for January should be cut or deferred while the slow-moving provision stands at EUR 7k.",
     "Receivables are clean apart from two items: an Amazon FBA reimbursement claim of EUR 4,120 open 47 days and a disputed forwarder invoice of EUR 2,000 (47 days past due) on the payables side. Marketplace balances of EUR 105k are 11 days of settlements, in line with the platform cycles."
    ],
    "rows": []
   },
   {
    "title": "4. SCENARIOS (Scenarios sheet; snapshot values from three full model runs)",
    "paragraphs": [
     "Base: FY2027 net revenue EUR 5,611k, EBITDA EUR 239k (4.3%), lowest cash EUR 2k. Downside: revenue EUR 4,478k, EBITDA EUR -263k, lowest cash EUR -215k, a funding need of EUR 365k against the buffer. Upside: revenue EUR 6,376k, EBITDA EUR 677k, lowest cash EUR 172k.",
     "The downside is the case that matters for the board: it combines slower growth, higher discounting and refunds, a heavier paid-media load and the current inventory policy, and it exhausts cash in the FY2027 peak build. The contingency plan is written now, with triggers on the monthly KPIs (CM2 % below 24.8% for two months, or Shopify CAC above EUR 30), not when the trough arrives."
    ],
    "rows": []
   },
   {
    "title": "5. RISK REGISTER (scored 1 to 5; score = likelihood x impact)",
    "paragraphs": [],
    "rows": [
     [
      "FY2027 peak-season funding gap: the Base case falls below the cash buffer in Oct-27 and the downside turns cash negative",
      4,
      4,
      16,
      "Arrange a EUR 250k inventory facility or supplier terms of 60 days with Foshan by Jun-27; CEO and BriQs CFO"
     ],
     [
      "Amazon dependency: Amazon is 42% of FY2026 net revenue and holds a settlement reserve; an account health event stops both revenue and cash",
      3,
      5,
      15,
      "Keep account health metrics above thresholds weekly, hold 14 days of Amazon settlements as buffer, grow Shopify share; Head of Ecommerce"
     ],
     [
      "Cookware stock-out in Q4: cover fell to 23 days at the last actual month; peak depends on two POs arriving in Sep and Oct",
      3,
      4,
      12,
      "Track PO-2026-024 and PO-2026-026 weekly against ETA; air-freight option priced now; Operations and Supply Chain Manager"
     ],
     [
      "Overstock in Tableware and Storage: over 200 days of cover ties up cash and drives the slow-moving provision",
      4,
      3,
      12,
      "Freeze new Tableware and Storage orders, run a Q4 bundle promotion, defer PO-2026-043; Head of Ecommerce"
     ],
     [
      "Paid media efficiency: Shopify CAC up 25% since January; the budget assumed flat CAC",
      4,
      3,
      12,
      "Weekly CAC and ROAS by campaign, cap Meta spend at the CM2 breakeven CAC, shift budget to email and retention; Performance Marketing Manager"
     ],
     [
      "Walmart ramp: orders one third below budget; fixed WFS costs and ads spend do not scale down automatically",
      4,
      2,
      8,
      "Set a Q4 go or no-go at 900 orders a month; cut Walmart Connect spend to a 15% share until velocity proves out; Marketplace Specialist"
     ],
     [
      "USD exposure: Walmart revenue in USD with EUR costs; a 5% move is worth about EUR 46k of FY2027 revenue",
      3,
      2,
      6,
      "No hedge below EUR 1m of USD revenue; review quarterly; BriQs CFO"
     ],
     [
      "Supplier concentration: Foshan Crestware is 44% of committed FOB value and the only cookware source",
      2,
      4,
      8,
      "Qualify a second cookware supplier in Q1 FY2027; Operations and Supply Chain Manager"
     ],
     [
      "VAT and OSS compliance: quarterly payables reach EUR 242k in December; late filing penalties and interest apply",
      2,
      3,
      6,
      "Reconcile VAT to the settlement reports monthly, not just at filing; BriQs finance team"
     ],
     [
      "Disputed forwarder invoice and open Amazon reimbursement claim: small amounts, but both show control gaps in three-way matching",
      3,
      1,
      3,
      "Close both by 31-Oct; add PO-to-invoice matching for freight; BriQs finance team"
     ]
    ],
    "columns": [
     "Risk",
     "Likelihood",
     "Impact",
     "Score",
     "Mitigation and owner"
    ]
   },
   {
    "title": "6. ACTIONS (owner, due date, status)",
    "paragraphs": [],
    "rows": [
     [
      "Term sheet for a EUR 250k inventory facility (or 60-day terms with Foshan Crestware) so the FY2027 peak build is funded without breaching the buffer",
      "CEO",
      "2027-03-31",
      "Open",
      "Signed facility or amended supplier terms before the Jun-27 deposits"
     ],
     [
      "Cut Tableware and Storage purchasing: cancel or defer PO-2026-043 and run a Q4 bundle promotion to bring both categories under 120 days of cover by Dec-26",
      "Head of Ecommerce",
      "2026-10-15",
      "Open",
      "DIO under 120 days on the Product_Contribution scorecard"
     ],
     [
      "Weekly Q4 stock watch on Cookware and Knives against PO-2026-024, 025, 026 and 034 ETAs, with an air-freight fallback priced by 30-Sep",
      "Operations and Supply Chain Manager",
      "2026-09-30",
      "In progress",
      "Cover never below 30 days through December"
     ],
     [
      "Paid media rules: Meta and Google capped at the CM2 breakeven CAC by campaign, weekly CAC and ROAS reporting, 10% of budget moved to retention",
      "Performance Marketing Manager",
      "2026-10-01",
      "Open",
      "Shopify CAC back under EUR 23 by Nov-26"
     ],
     [
      "Walmart go or no-go review at 900 orders a month; until then Walmart Connect spend capped at 12% of net revenue",
      "Marketplace Specialist",
      "2026-11-15",
      "Open",
      "Decision minuted with the Q4 trading numbers"
     ],
     [
      "Approval owner and monthly cap on content, recruitment and contractor spend; over-cap requests to the CEO in writing",
      "CEO",
      "2026-09-30",
      "Open",
      "Opex variance on those three lines at zero from October"
     ],
     [
      "Close the Amazon FBA reimbursement claim (EUR 4,120) and the disputed Northsea invoice (EUR 2,000); add freight invoice matching to the AP checklist",
      "BriQs finance team",
      "2026-10-31",
      "In progress",
      "Both items off the aging, checklist updated"
     ],
     [
      "Downside contingency plan written with KPI triggers (CM2 %, CAC, cash headroom) and the five cash levers on Cash_13W in priority order",
      "BriQs CFO",
      "2026-10-15",
      "Open",
      "Plan approved by the CEO and attached to the October pack"
     ],
     [
      "Qualify a second cookware supplier and obtain samples; target 30% of FY2027 Cookware FOB",
      "Operations and Supply Chain Manager",
      "2027-02-28",
      "Open",
      "Supplier qualified with a first PO placed"
     ]
    ],
    "columns": [
     "Action",
     "Owner",
     "Due",
     "Status",
     "Measure of done"
    ]
   },
   {
    "title": "7. INFORMATION NEEDED BEFORE THE OCTOBER PACK",
    "paragraphs": [
     "Amazon Date Range Reports and Walmart Payment reports for September, so fees and reserves are taken from the platform rather than from ratios.",
     "Returns report by reason code for Textiles, to confirm whether the Q2 quality issue is closed or still running in the refund rate.",
     "Confirmation from Foshan Crestware of the shipped date and container number for PO-2026-026, and a quote for a 40% air-freight split if the ETA slips past 25-Oct.",
     "The September bank statements and AP ledger listing at 30-Sep, to replace the payment sizing in the 13-week to-date column with actuals.",
     "The signed facility term sheet or the amended supplier terms, whichever the CEO chooses, so the FY2027 forecast carries the real cost of funding.",
     "Prepared by BriQs Group for the owners of Alderway Home B.V. (fictional demonstration company). Model status at the time of preparation: OK."
    ],
    "rows": []
   }
  ]
 },
 "headline_series": {
  "T_net": {
   "key": "T_net",
   "label": "NET REVENUE",
   "basis": "after refund provision movement",
   "section": "REVENUE",
   "format": "int",
   "kind": "calc",
   "bold": true,
   "values": [
    277584.8725,
    250578.7869,
    293906.783,
    310130.1931,
    347974.3983,
    331656.7237,
    308283.766,
    312802.4824,
    352438.6657,
    408063.5875,
    584527.5041,
    532573.1357,
    345089.8741,
    321469.2483,
    370774.3823,
    391846.7057,
    423828.6623,
    421291.3828,
    410423.5734,
    410316.1054,
    470301.8935,
    546603.6494,
    783714.2357,
    714939.029
   ],
   "fy2026": 4310520.8988,
   "fy2027": 5610598.7419,
   "total_rule": "sum"
  },
  "gp": {
   "key": "gp",
   "label": "GROSS PROFIT",
   "basis": "",
   "section": "COST OF SALES",
   "format": "int",
   "kind": "calc",
   "bold": true,
   "values": [
    172667.3063,
    154106.4228,
    186536.4761,
    204482.7936,
    229057.7931,
    203653.8171,
    198599.0188,
    189833.0899,
    222340.803,
    250070.4059,
    368014.6896,
    332452.5985,
    217261.4764,
    199578.1999,
    230197.306,
    242916.4309,
    262915.0906,
    261337.0839,
    255020.2378,
    254473.4032,
    290470.266,
    337905.9045,
    481671.6997,
    444266.3039
   ],
   "fy2026": 2711815.2147,
   "fy2027": 3478013.4028,
   "total_rule": "sum"
  },
  "cm2": {
   "key": "cm2",
   "label": "CONTRIBUTION AFTER MARKETING (CM2)",
   "basis": "",
   "section": "MARKETING",
   "format": "int",
   "kind": "calc",
   "bold": true,
   "values": [
    78291.314,
    64439.0213,
    78601.3278,
    90778.6934,
    102360.4897,
    78331.2034,
    83176.4613,
    71277.9142,
    91576.3926,
    94998.377,
    144090.6862,
    132242.394,
    92507.6582,
    80751.8591,
    93307.6373,
    98054.1704,
    106570.8487,
    106097.336,
    104364.3905,
    103558.6782,
    116517.412,
    131583.0687,
    183421.1246,
    177309.3014
   ],
   "fy2026": 1110164.2748,
   "fy2027": 1394043.4851,
   "total_rule": "sum"
  },
  "ebitda": {
   "key": "ebitda",
   "label": "EBITDA",
   "basis": "",
   "section": "OPERATING EXPENSES",
   "format": "int",
   "kind": "calc",
   "bold": true,
   "values": [
    1509.314,
    -9915.9787,
    2270.3278,
    12346.6934,
    23379.4897,
    -3006.7966,
    3675.4613,
    -10363.0858,
    10540.4336,
    10574.6088,
    53221.0971,
    42154.1655,
    2173.943,
    -14112.4328,
    -2170.4699,
    2308.4367,
    10438.2515,
    10008.0065,
    8436.8168,
    7627.7222,
    19808.6314,
    33939.8212,
    82736.1341,
    77670.79
   ],
   "fy2026": 136385.7301,
   "fy2027": 238865.6507,
   "total_rule": "sum"
  },
  "np": {
   "key": "np",
   "label": "NET PROFIT",
   "basis": "",
   "section": "BELOW EBITDA",
   "format": "int",
   "kind": "calc",
   "bold": true,
   "values": [
    -3497.3527,
    -14877.8231,
    -2759.7476,
    7362.0023,
    17526.6329,
    -7052.6994,
    -1263.0346,
    -15255.0521,
    5670.2877,
    5726.5759,
    40800.1721,
    30254.5075,
    -2605.9768,
    -19702.384,
    -7736.8172,
    -3234.0031,
    4920.025,
    4514.3009,
    2967.9414,
    2183.9887,
    14390.353,
    23940.8125,
    62669.4684,
    58587.9295
   ],
   "fy2026": 62634.469,
   "fy2027": 140895.6382,
   "total_rule": "sum"
  },
  "cash": {
   "key": "cash",
   "label": "Cash at bank",
   "basis": "CF",
   "section": "ASSETS",
   "format": "int",
   "kind": "calc",
   "bold": false,
   "values": [
    396444.4392,
    378620.8784,
    473742.3177,
    328674.2766,
    453889.7159,
    495519.1551,
    332377.757,
    391452.1962,
    312681.1137,
    288663.1982,
    399941.0409,
    611228.1591,
    487746.8379,
    441345.6715,
    504001.6102,
    385995.6654,
    458320.2354,
    505412.126,
    259894.0613,
    257728.9573,
    118370.8804,
    1825.2167,
    140551.6514,
    346148.3018
   ],
   "fy2026": 611228.1591,
   "fy2027": 346148.3018,
   "total_rule": "last"
  }
 }
}