Skip to content

Latest commit

 

History

History
206 lines (149 loc) · 13.1 KB

File metadata and controls

206 lines (149 loc) · 13.1 KB

Numbers check - Redwood Software Inc.

Generated 2026-09-08T20:40:21+00:00. 20 of 20 figures reported, 20 traced to their source, 0 marked uncertain.

Read this before the memo. It is the evidence layer: reported figures with the document text behind them, then every derived number with its arithmetic. If a figure in the memo looks wrong, it is checked here, not argued about.

Sources

Document Characters SHA-256
banker_call.txt 1,560 37f6d76f7e4f40eb
cim_excerpt.txt 1,471 62557f7c0bc3d549
financials.txt 5,893 a9ebdbdff712125e

Extraction: model claude-sonnet-4-6, prompt clarify-extract-v8, request msg_011Cer5YuEvVY6difeDBC2uz, 28.1s, 7,398 in / 1,517 out tokens.

Raw model response: step1_latest.json (replayed). Every run keeps one, so a contract problem is diagnosed from the payload rather than by calling the model again.

Reported figures

One row per field in the extraction schema, always the same rows in the same order, so the same things get reviewed every run. A dash in the value column means no document stated that figure, which is a data gap rather than a zero.

The check column is the result of searching the named document for the quote. Differences of rendering are ignored, so a run of spaces in a column-aligned file matches a single space and an en dash matches a hyphen; differences of wording are not. A figure that fails is still reported and still used, marked with the reason, because a number we cannot fully stand behind is more useful to the analyst than a silence.

Figure Value Source Verbatim quote Check
Funded debt, pre-transaction $0.0M cim_excerpt.txt The Company carries no funded debt. verified
Total debt at close $52.0M financials.txt Total Debt: $52M (unitranche) verified
Cash at close $4.0M financials.txt Cash: $4M (estimated post-close) verified
LTM EBITDA ($1.7M) financials.txt ADJUSTED EBITDA: ($1.7M) ← note: differs from CIM; CIM states ($1.2M); difference likely stock-comp add-back verified
Forward EBITDA $1.6M financials.txt Forward EBITDA (Mgmt Case): $1.6M (assumes Q3 2026 breakeven + H2 ramp) verified
ARR $18.2M financials.txt Ending ARR (Dec 2025): $18.2M ← note: differs slightly from CIM figure of $18.0M verified
Run-rate revenue $13.0M banker_call.txt he cited $13M run-rate revenue and 12% EBITDA margin verified
Reported revenue $16.1M financials.txt REVENUE (GAAP, FY 2025): $16.1M ← recognized revenue lags ARR due to implementation delays verified
Beginning ARR $13.4M financials.txt Beginning ARR (Jan 2025): $13.4M verified
New logo ARR $3.1M financials.txt New Logo ARR: + $3.1M verified
Expansion ARR $2.6M financials.txt Expansion ARR: + $2.6M ← includes two large Q4 enterprise addons verified
Concentrated expansion ARR $2.0M banker_call.txt ~$2M of that is "expansion from two enterprise clients that signed multi-site addons in Q4." verified
Gross churn ARR $0.9M financials.txt Gross Churn: - $0.9M verified
Net revenue retention 118.0% financials.txt NRR: 118% verified
Gross logo churn 6.3% financials.txt Gross Logo Churn Rate: 6.3% (annualised) verified
Customer count 142 financials.txt Total Customers (Dec 2025): 142 verified
Average ACV $128k financials.txt Average ACV: $128k verified
Enterprise value $110.0M financials.txt Deal size implied: ~$110M EV based on debt + equity structure verified
Comparable ARR multiple range 6-9x financials.txt Vertical SaaS, $10-30M ARR, 2024-2025 deals: 6–9x ARR verified
ARR multiple stated by documents ~6.1x financials.txt Implied ARR multiple: ~6.1x — low end of range, possibly reflecting pre-profitability discount verified

Derived figures

Every number below is computed in Python from the reported figures above, in exact decimal arithmetic, and none of it is taken from the model. Each block shows the formula, the numbers substituted into it, and where each input came from, so any line can be redone by hand.

A ratio is only shown where its denominator is a positive number. Anything else is marked N/M with the reason, never rendered as a negative multiple.

Capital structure and leverage

Current net debt = $0.0M

  • Formula: pre-transaction funded debt, before any transaction cash
  • Working: 0.0
  • Input: Funded debt, pre-transaction = 0.0 (cim_excerpt.txt)
  • Note: Cash at close is excluded on purpose: the documents describe it as a post-close estimate, so it is part of the pro-forma structure rather than of the balance sheet as it stands.

Current net leverage = 0.0x

  • Formula: current net debt / LTM EBITDA
  • Working: 0.0 / any EBITDA
  • Input: Current net debt = 0.0 (computed: current_net_debt)
  • Note: Zero debt makes the ratio zero whatever EBITDA does, so this is a real answer rather than an N/M. All of the leverage in this situation is created by the transaction.

Pro-forma net debt = $48.0M

  • Formula: total debt at close - cash at close
  • Working: 52.0 - 4.0
  • Input: Total debt at close = 52.0 (financials.txt)
  • Input: Cash at close = 4.0 (financials.txt)

Net leverage, LTM EBITDA = N/M (LTM EBITDA is not positive)

  • Formula: pro-forma net debt / LTM EBITDA
  • Working: 48.0 / -1.7
  • Input: Pro-forma net debt = 48.0 (computed: pro_forma_net_debt)
  • Input: LTM EBITDA = -1.7 (financials.txt)
  • Note: LTM EBITDA of ($1.7M) is not positive, so the ratio has no meaning. Reporting it as a negative multiple would read as low leverage when it means there are no earnings to lever.

Net leverage, forward EBITDA = 30.0x

  • Formula: pro-forma net debt / forward EBITDA
  • Working: 48.0 / 1.6
  • Input: Pro-forma net debt = 48.0 (computed: pro_forma_net_debt)
  • Input: Forward EBITDA = 1.6 (financials.txt)
  • Note: Forward EBITDA is a management case, so this multiple inherits every assumption behind it.

Net debt / run-rate revenue = 3.69x

  • Formula: pro-forma net debt / run-rate revenue
  • Working: 48.0 / 13.0
  • Input: Pro-forma net debt = 48.0 (computed: pro_forma_net_debt)
  • Input: Run-rate revenue = 13.0 (banker_call.txt)
  • Note: This is a revenue multiple, not an earnings multiple. Where a document quotes a low single-digit leverage figure alongside a much higher EBITDA-based one, this row is usually what the low figure is: the same debt measured against revenue. The two are not alternative views of the same ratio and only the EBITDA-based one describes capacity to service debt.

Recurring revenue and retention

ARR rebuilt from the bridge = $18.2M

  • Formula: beginning ARR + new logo ARR + expansion ARR - gross churn ARR
  • Working: 13.4 + 3.1 + 2.6 - 0.9
  • Input: Beginning ARR = 13.4 (financials.txt)
  • Input: New logo ARR = 3.1 (financials.txt)
  • Input: Expansion ARR = 2.6 (financials.txt)
  • Input: Gross churn ARR = 0.9 (financials.txt)
  • Note: Rebuilding ARR from its components gives $18.2M against the $18.2M reported, so the bridge supports the reported figure.

ARR implied by customer metrics = $18.18M

  • Formula: customer count x average ACV, converted from thousands
  • Working: 142 x 128 / 1,000
  • Input: Customer count = 142 (financials.txt)
  • Input: Average ACV = 128 (financials.txt)
  • Note: Customer count times average ACV gives $18.18M, corroborating the reported $18.2M from a different part of the data pack.

NRR implied by the ARR bridge = 112.7%

  • Formula: (beginning ARR + expansion ARR - gross churn ARR) / beginning ARR
  • Working: (13.4 + 2.6 - 0.9) / 13.4
  • Input: Beginning ARR = 13.4 (financials.txt)
  • Input: Expansion ARR = 2.6 (financials.txt)
  • Input: Gross churn ARR = 0.9 (financials.txt)
  • Note: The bridge supports 112.7% against the 118.0% the documents report. The reported figure is a management metric whose definition is not given, so the gap is a question to ask rather than an error to assert.

NRR excluding concentrated expansion = 97.8%

  • Formula: (beginning ARR + (expansion ARR - concentrated expansion ARR) - gross churn ARR) / beginning ARR
  • Working: (13.4 + (2.6 - 2.0) - 0.9) / 13.4
  • Input: Beginning ARR = 13.4 (financials.txt)
  • Input: Expansion ARR = 2.6 (financials.txt)
  • Input: Concentrated expansion ARR = 2.0 (banker_call.txt)
  • Input: Gross churn ARR = 0.9 (financials.txt)
  • Note: Strip out the expansion the documents attribute to a small number of accounts and retention on the rest of the base is below 100%, meaning the base shrinks without them. Whether those accounts recur is therefore the question the retention story turns on.

Valuation, and our arithmetic against the documents' own

Implied ARR multiple = 6.04x

  • Formula: enterprise value / ARR
  • Working: 110.0 / 18.2
  • Input: Enterprise value = 110.0 (financials.txt)
  • Input: ARR = 18.2 (financials.txt)

ARR implied by the documents' own multiple = $18.03M

  • Formula: enterprise value / the ARR multiple the documents state
  • Working: 110.0 / 6.1
  • Input: Enterprise value = 110.0 (financials.txt)
  • Input: ARR multiple stated by documents = ~6.1x (financials.txt)
  • Note: The documents' own multiple of 6.1x implies an ARR denominator of $18.03M, against the $18.2M used above. The gap is which ARR figure was divided by, not a disagreement about enterprise value, and it is a rounding difference in the denominator rather than a contradiction.

Enterprise value at the comparable range = $109.2M to $163.8M

  • Formula: comparable ARR multiple range x ARR
  • Working: 6.0 x 18.2 to 9.0 x 18.2
  • Input: Comparable ARR multiple range = 6-9x (financials.txt)
  • Input: ARR = 18.2 (financials.txt)
  • Note: The range is the documents' own and they hedge it as rough and indicative, so it is a sanity check on where this deal sits, not a valuation.

Deliberately not computed

Annual cash interest and interest coverage = withheld - see note

  • Formula: total debt x (benchmark base rate + margin)
  • Input: Total debt at close = 52.0 (financials.txt)
  • Input: benchmark base rate behind the pricing spread = - (not stated by any document, missing)
  • Note: Not computed, deliberately. The documents price the debt as a spread over a floating benchmark but never state that benchmark's level, and supplying one from outside the corpus would put an invented number into the memo. Interest cost and interest coverage are therefore data gaps to raise, not outputs.

Conflicts between documents

Reported by the extraction step, not by the arithmetic. These are the places where the corpus disagrees with itself and a reader has to choose which document to believe.

  1. Adjusted EBITDA: financials.txt states ($1.7M) while cim_excerpt.txt states ($1.2M); financials.txt attributes the difference to a stock-comp add-back but does not reconcile it, and the figure drives the leverage ratio.
  2. Ending ARR: financials.txt states $18.2M while cim_excerpt.txt states $18.0M; financials.txt flags the discrepancy without reconciling it, and ARR is the denominator of the implied ~6.1x multiple.
  3. Average ACV: the second (definitive) block of financials.txt states $128k while the first block states $1628k—an internal conflict within the same document across its two appearances; the definitive block figure is used here but the first-block figure is unresolved.
  4. Net leverage framing: banker_call.txt states management frames leverage as '4x on forward EBITDA,' while financials.txt states the same framing is '4x on run-rate revenue'—different denominators for the same leverage claim, material to how the ratio is read.

Assumptions the numbers rest on

Accept these or the analysis does not stand up.

  1. The $2.6M expansion ARR from two enterprise Q4 addons is treated as recurring for ARR and NRR purposes, though the banker flagged it may not be fully recurring in the traditional sense.
  2. Forward EBITDA of $1.6M—on which leverage is sized—depends on management's Q3 2026 breakeven assumption materialising with no further slippage.
  3. The $52M unitranche is the sole debt instrument at close, with no other funded obligations.

Data gaps

Information a credit memo needs that the documents do not contain, including anything a document refers to without providing.

  1. Accuracy benchmarks for the AI lease abstraction model versus manual extraction were referenced on the banker call but not provided.
  2. No profitability bridge or detailed path to Q3 2026 breakeven is provided beyond the assertion in the CIM.
  3. Cohort-level retention data for the two large Q4 enterprise expansion clients is not included in any document.
  4. Audited financial statements are absent; all figures are flagged as unaudited management data.

Questions worth asking

Capped at three by the contract, and only where an answer would change the analysis.

  1. Is the $0.5M difference in Adjusted EBITDA between financials.txt ($1.7M) and cim_excerpt.txt ($1.2M) entirely explained by stock-comp, and if so what is that stock-comp amount?
  2. Is the 6% gross logo churn cited by the banker measured on an annualised basis consistent with the 6.3% annualised figure in financials.txt, or does it reflect a different measurement period?
  3. What specific revenue and cost milestones support the Q3 2026 breakeven target, given that forward EBITDA of $1.6M implies net leverage of ~30x on the $52M debt?