Covenant ComplianceHypha · 2026

An always-on covenant analyst for commercial real estate lenders.

Role: Member of Technical Staff, full-stack · Design lead: Sara Duval · Status: rolling out to first customers

The old way

Spreadsheets, every period, by hand

Before, covenant checks lived in spreadsheets. For every covenant and every reporting period, an analyst wrote the formula, pulled numbers from the borrower’s financials, plugged them in, and worked out the result by hand. That then went into a compliance certificate.

fxCovenantThresholdQ1Q2Q3Total Net Leverage≤ 4.00x3.62x3.88x3.97x=Net_Debt / EBITDADebt Service Coverage≥ 1.25x1.41x1.33x1.29x=NOI / Debt_ServiceMinimum Liquidity≥ $5.0M$7.2M$6.1M$5.4M=Cash + SecuritiesCOMPLIANCE CERTIFICATEReporting period: Q3Total Net Leverage3.97x ✓Debt Service Coverage1.29x ✓Minimum Liquidity$5.4M ✓Authorized signatureCERTIFIED
The problem

It never ended

The hard part was that it never ended. Every period, analysts had to pull the latest financials into their spreadsheets, double-check that each formula still matched the loan’s definitions (those change over time with amendments), and then review all their math again before anything could go out.

How we started

Two of us, starting from a chatbot

Sara Duval led the visual design, and we started on this together. First we sat down with stakeholders to understand what was broken and what was needed. Our starting point was an existing chatbot skill. Once the requirements were clear, Sara began designing, and I built the full-stack product alongside her as the designs came together. As the designs evolved, I gave feedback on what information analysts needed to see and where it should go.

We called it a “workflow”: instead of asking a chatbot, analysts use Hypha’s data to speed up the covenant testing they already do.

From chat to workflow

One covenant at a time

The chatbot worked out the whole calculation inside the chat. That made results hard to trust and hard to reproduce: ask twice and you might get a different answer. It also gave one big blob of text, with no easy way to check the work or look at a single covenant on its own. So we split the job into individual covenants, each with its own result you can inspect.

ChatIs this loan in compliance for Q3?Net debt = $211.0M − $11.0M = $200.0MEBITDA (trailing 12 months) = $50.4MLeverage = 3.97x, under the 4.00x maxNOI = $4.21M, debt service = $3.26MCoverage = 1.29x, above the 1.25x minAssuming the amended definition…Cash $3.9M + securities $1.5MLiquidity = $5.4M, above $5.0MSo overall the loan looks compliant.Total Net Leverage3.97xmax 4.00x123Pass↗ Loan Agreement · p. 84Debt Service Coverage1.29xmin 1.25x123Pass↗ Amendment No. 2 · p. 3Minimum Liquidity$5.4Mmin $5.0M123Pass↗ Loan Agreement · p. 91
Making results reliable

Build the formula once, reuse it every period

The agent works covenant by covenant. It pulls each covenant out of the loan documents, then uses tools to build that covenant’s formula once. The same formula carries forward to every later period, so results stay consistent quarter to quarter. For each step, the agent also writes a short explanation and links it to the exact spot in the documents, so anyone can check where a number came from.

Easy to scan

Loan and portfolio views

Each loan gets its own compliance view: status, calculated value against the threshold, the cushion, and trend charts over time. Results then roll up by deal and portfolio, so it’s easy to see what’s passing, failing, missing data, or not tested yet.

When something’s off

From read-only badges to editable results

Then came the question of what to do when data is missing or a number looks off. We debated two options: let people run “what-if” versions anyway, or have the system simply not run until it has what it needs. Our first version only let you look at results. Each covenant got a badge: Needs review, Low confidence, Pass, Fail, or Could not run (not enough information). The idea was that if the system spotted something off in a calculation, it would flag it for a person to look at. Covenant tests also create tasks: when the agent needs approved financials, it raises a task that takes you straight to uploading the document or reviewing the financials, in the same Tasks queue as everything else in Hypha.

When we showed it to a client who does this work all the time, they were clear: they needed to make changes. Adding, removing, and editing line items, and ideally even the formulas themselves.

So we added an edit view inside the side panel where the calculations live. Clicking Edit turns the steps into a simple spreadsheet-like view where analysts can add, change, or remove line items. Any edited line gets an ADJ badge, and that badge carries through to every number calculated from it, so it’s always clear what was adjusted. Edits are saved as a hypothetical by default. If the analyst is happy with it, they can save it as the current result instead.

CovenantsTotal Net LeverageDebt Service Coverage1.29xPassMinimum Liquidity$5.4MPass4.06xNeeds review3.96xPassTotal Net Leverage · CalculationEditHypotheticalSave as current✓ Current resultFunded debt$211.0MUnrestricted cash−$11.0MNet debt$200.0MEBITDA (trailing 12 months) + Add-back: one-time legal fees+$1.2MADJ$49.3M$50.5MADJLeverage = Net debt ÷ EBITDA (max 4.00x)4.06x3.96xADJEdits are marked ADJ and flow into everything calculated from them.
Back in the chat

Covenants in Hypha’s Conductor agent

I also took the initiative to bring this into Hypha’s Conductor chatbot agent, so people can run covenant tests and ask about the results right from the chat, on top of the same workflow.

Where it is today

Rolling out

Covenant Compliance is now being rolled out to its first customers, an investment group and a bank, who use it to run their covenant tests. It’s running on at least three loans so far.

What I learned

One click, editable, human in the loop

The biggest lesson was turning a slow, manual Excel process into something you can run in one click, and then letting people edit the results, because real data always has gaps. Making results easy to scan mattered just as much: a simple list of what’s passing or failing, and by how much. Above all, it had to keep a human in the loop, with the agent relying on tools and fixed, repeatable equations so nobody has to second-guess the numbers.

See Covenant Compliance on Hypha’s site →
Tasks case study →
Cost Optimizations case study →