Case study · a fictional bank on one Monday

Portfolio exposure analysis by the clock: a board question on a Monday

On a fictional Monday, a portfolio manager answers his board's question about imported inputs before ten o'clock: 63 borrowers, $611.4M committed, 17 below covenant under stress, every one tied to a passage in its file. This case study follows Commercial Loan Portfolio Analysis minute by minute and ends where the interesting part is: the borrowers the industry codes missed, and the four the files could not answer for.

Updated · 14 min read

Portfolio exposure analysis is the work of finding how much of a loan book is open to one risk, such as an industry, a supplier country, a cost or a type of counterparty. When the risk matches a field in the loan system, it is a query. When it does not, someone has to read the credit files. This case study follows one such question at a fictional bank on one Monday morning, through Botminds' Commercial Loan Portfolio Analysis, whose agents read every credit file against a plain-words question and return each borrower with the page that proves it. The bank, its people and its borrowers are invented and every figure describing them is sample data; the regulations quoted are real.

Ashgrove Commerce Bank has 1,184 commercial relationships, 4,912 credit files and $6.42B committed in its commercial book as of 30 September 2026. Its board risk committee meets on Thursday 15 October, and the chair has asked about tariffs. The question lands on Owen Castellanos, director of commercial portfolio management, on the morning of Monday 12 October.

Monday morning, 08:30 to 09:31: where the minutes went

One portfolio manager’s morning61 min
Hotel question10 min
Agents read 4,912 files, total and stress38 min
Review6 min
Approval7 min
  • Hotel question10 min
  • Agents read 4,912 files, total and stress38 min
  • Review6 min
  • Approval7 min
Fictional sample bank, Monday 12 October 2026. Hotel question asked 08:31, answered 08:34, compared and saved by 08:40. Board question asked 08:40, answered 09:18, sent to the chief credit officer 09:24, approved 09:31.

08:30: the question nobody planned for

The board chair's question has three parts, and only one of them is in the loan system. Which of our commercial borrowers depend on imported inputs? How much do we have out to them? Who would fall below covenant if those costs rise? The loan system knows each borrower's NAICS code, commitment, outstanding balance, risk rating and maturity. It does not know that a fastener maker buys nearly half its cost of goods sold from two mills overseas.

The question is a fair one for a board to ask. In the Federal Reserve's October 2025 Senior Loan Officer Opinion Survey, a significant net share of banks said they had become “less likely to approve loan applications from firms of all sizes with high trade exposures” (SLOOS, October 2025). If lenders were already treating trade exposure as a risk factor at origination, a board can reasonably ask how much of it the existing book carries. The OCC's definition of a concentration covers this kind of risk: “direct, indirect, or contingent obligations” (Concentrations of Credit, v3.0), and supplier dependence is an indirect one.

How long does it take to answer a board question about the loan portfolio by hand?

At the sample bank, about six weeks: that is how long the last tariff question took when the board asked it. The route was the usual one. The portfolio team screened the book by industry code for manufacturers, wholesalers and retailers. It sent a spreadsheet to every relationship manager asking which of their borrowers imported, and waited for the replies. Three senior analysts, Kai Lindqvist among them, re-read about 400 files where the replies were thin or contradictory. Then someone totalled the exposure, ran a stress in a spreadsheet and wrote it up.

Where six weeks went last time, by the bank’s own estimate

StepWorking days by handWhat made it slow
Screening the book by industry code2Choosing which codes count as trade-sensitive
Spreadsheets out to RMs, waiting for them back8Every RM answering from memory, then chasing the late ones
Re-reading memos, reviews and statements15About 400 files, three analysts
Totalling exposure and running the stress3Re-keying spreads, reconciling to the book
Writing and approving the board summary2Sources added by hand
Estimated split for the sample bank’s previous tariff question: 30 working days. It is an estimate for a fictional bank, not a measured result.

The result was still incomplete. A code screen looks only where the risk is expected. The bank found its steel and auto-parts borrowers and missed a solar installer whose code said construction. The answer also had no way to show what it did not know: a borrower missing from an RM's reply looked exactly like a borrower that did not import.

08:31: what is guarantor liquidity? Eleven hotel loans and one statement

Guarantor liquidity is the cash and readily saleable assets a guarantor could actually put behind a guaranty, and it is the warm-up question of the morning. Before the board's question, Owen clears one from Friday. Kai, renewing a hotel loan, had asked how many other hotel loans had a guarantor with thin liquidity. Owen types it in plain words: hotel loans over $5M whose guarantor has liquidity under 10% of the loan. The agents read 29 personal financial statements and 34 guaranty agreements and answer in 3 minutes 20 seconds. Eleven of the 34 hotel loans over $5M qualify, with $132.1M committed and $124.0M outstanding. Four of them also mature within 12 months with coverage under 1.20x.

Eleven of 34 hotel loans, each a dot and each a proof link

The Ask the book screen with the question: which hotel loans over $5M have a guarantor with liquidity under 10% of the loan. The answer: 11 of 34 hotel loans over $5M have a guarantor whose cash and marketable securities are under 10% of the loan, $132.1M committed, $124.0M outstanding; 4 also mature within 12 months with coverage under 1.20x. A table lists Riverside Lodging Partners, guarantor Daniel Voss, $14.8M, 4.2% liquid; Lakefront Inn Holdings 7.4%; Gateway Suites Dayton 4.3% with a statement flagged older than 12 months; Maumee Bay Hospitality 8.9%; Old Mill Hotel Group 8.7%. A scatter chart shows all 34 hotel loans with the 11 below the 10% line in red.
Fictional sample bank. One guarantor statement is flagged as older than 12 months: the answer uses it and says so, instead of dropping the loan.

The definition is the part a credit officer should check first, and it sits on the answer. “Liquidity” here means cash and marketable securities on the guarantor's latest personal financial statement. Retirement accounts and real estate are left out, because the bank's guaranty policy §6.2 says so. On Riverside Lodging Partners the proof chip opens Daniel Voss's statement of 31 March 2026 at page 2, with the two counted lines highlighted and the division written out underneath.

The page behind the row: cash, securities, and what was left out

Daniel Voss's personal financial statement of 31 March 2026, page 2 of 4, opened over the answer. Section 2, assets: cash in banks and money market $397K, counted as liquid; marketable securities $223K, counted; retirement accounts $1.14M, not counted, policy section 6.2; real estate $8.6M, not counted; closely held business interests $10.5M, not counted. Section 4 lists his personal guaranty of Riverside Lodging Partners to Ashgrove Commerce Bank, $14.8M. Under what the agents worked out: liquid assets $620K divided by commitment $14.8M equals 4.2%, under the 10% the question set.
Fictional sample file. The two lines that count are highlighted; the three that do not are marked with the reason.

Owen compares with the 30 June book. There were 8 loans then and 11 now: Old Mill and Hocking Hills because guarantor liquidity fell, Short North because it is a new loan. He saves the question to re-run each quarter, next on 2 January 2027, and whenever a guarantor files a new statement. It is 08:40.

08:40 to 09:18: the files read, the answer tied to the book

Owen types the board's question as the chair asked it. The question planner turns it into a test in six seconds. “Depends on imported inputs” means imports of at least 20% of cost of goods sold, or one named foreign supplier, which is the bank's own setting. The screener pulls the commercial book at 30 September and ties it to $6.42B committed. It lists 412 relationships in trade-sensitive codes as first candidates, then passes every relationship to the reader, not only those. The credit file reader takes 31 minutes on all 4,912 files.

Thirty-eight minutes, agent by agent

AgentTimeWhat it produced
Question planner6 sWhat counts: imports ≥ 20% of cost of goods sold, or one named foreign supplier; the stress and the coverage line
Portfolio screener41 s1,184 relationships, $6.42B committed; 412 in trade-sensitive codes; every relationship sent on to be read
Credit file reader31 min 12 s63 borrowers with a passage; 6 outside trade codes; 351 cleared with a passage; 4 not in file
Exposure calculator1 min 05 s$611.4M committed, $438.7M outstanding, tied to the loan system’s book
Stress tester2 min 40 s+15%, half passed through: 17 below 1.20x, $142.6M outstanding; 9 maturing within 12 months
Answer writer2 min 10 s63 passages cited, every number footnoted, 4 gaps named for their RMs
Fictional sample bank, the run that answered the board’s question. The six times add to 37 min 54 s.

At 09:18 the answer is on Owen's screen. Sixty-three borrowers in the commercial book depend on imported inputs: $611.4M committed, 9.5% of the book, and $438.7M outstanding. Each one is in because a file says so. The largest is Kessling Fastener & Wire, where an annual review says imported wire rod from Vietnam and Türkiye is about 46% of cost of goods sold.

The board’s question in Commercial Loan Portfolio Analysis: the cited answer and the six agents’ run

The board question answer, Monday 12 October 09:18, book as of 30 September 2026. 63 borrowers depend on imported inputs, $611.4M committed, 9.5% of the book, $438.7M outstanding. Tiles: 63 borrowers, 57 by code and 6 outside the codes; $611.4M committed; 17 below 1.20x at +15%, $142.6M outstanding; 9 mature within 12 months, $58.3M, 5 also below the line. Text names Kessling Fastener and Wire at 46% of costs, six borrowers outside industry codes including Northfield Solar Installers at 52% of job cost from Vietnam and Malaysia, 351 relationships cleared because their files show domestic sourcing, and a highlighted box: not in file for 4 borrowers, $20.3M committed, not counted, their RMs have been asked. On the right, how the agents answered, with each agent's time, and the numbered sources.
Fictional sample bank. The amber box is part of the answer, not a footnote: four borrowers are named because their files cannot say.

Why industry codes miss exposure: six borrowers the screen never saw

Industry codes describe what a borrower sells, not what it buys, so a dependence on imported inputs shows up only where the code happens to suggest it. The code screen would have found 57 of the 63. The other six sit in codes nobody would screen for tariffs: a solar installer, a flooring contractor, a pool builder, an IT reseller, a marine service yard and an event-rental firm, with $39.6M committed between them. Northfield Solar Installers buys 52% of its job cost from Vietnam and Malaysia, according to an RM call memo of 22 August. Under the stress its coverage falls from 1.44x to 1.01x.

What reading every file found that a code screen would not

57of 63

import-dependent borrowers the industry-code screen would have found

6

found only in the files, $39.6M committed, in codes that never looked exposed

351

relationships in trade-sensitive codes cleared, each with the passage showing domestic sourcing

4

borrowers the files could not answer for, $20.3M committed, named and not counted

Fictional sample bank. 57 found, 351 cleared and 4 not in file make up the 412 relationships in trade-sensitive codes.

The cleared names matter as much as the found ones. A code screen that lists 412 candidates leaves the team to prove a negative for each. Here 351 were cleared, and each clearance carries its own passage, such as Ohio Valley Millwork's annual review of 2 June 2026, at page 4. An examiner who asks why a furniture maker is not on the list gets a page, not an opinion. Why that matters more than it looks is the subject of what industry codes miss.

The four borrowers the files could not answer for are Sycamore Cabinetry, Elmhurst Medical Supply, Westlake Sign Company and Dunmore Pet Products, with $20.3M committed. Their memos and reviews do not say where inputs come from. The answer does not guess. It names them, leaves them out of the count and asks their RMs. A board told “63, plus four we are still confirming” is better informed than one told “63” or “about 65.”

09:18: how do you run a DSCR stress test on each borrower?

Take the borrower's latest audited spread, apply the shock only to the cost line the file supports, net off what the borrower can pass on, and divide the stressed cash flow by annual debt service. The stress is borrower by borrower, on each one's latest audited spread, and applies only to the imported share its own files state. On Kessling, the FY2025 spread shows revenue of $37.4M and cost of goods sold of $26.9M, of which $12.4M is imported. A 15% rise on that share costs $1.9M; passing half to customers recovers $0.9M. EBITDA falls from $4.0M to $3.1M against $2.9M of annual debt service. Coverage moves from 1.38x to 1.06x, below the 1.20x covenant, and the $12.0M revolver matures on 31 March 2027.

One borrower, three documents, the stress worked line by line

The borrower page for Kessling Fastener and Wire Co., Dayton, Ohio, NAICS 332722, RM Tessa Moore. Committed $18.5M, $14.2M outstanding, rating 5. Imported share of costs 46%, carbon steel wire rod from Vietnam and Türkiye. Coverage now 1.38x falling to 1.06x at +15%, below the 1.20x covenant line. Next maturity 31 March 2027. What the files say: the annual review of 14 March 2026, page 6; the field exam supplier list of 21 July 2026, Vinh Hai Steel Wire 31.2% and Anatolia Rod and Wire 14.9% of purchases; an RM call memo of 2 September 2026 noting a 10% surcharge, about half passed through. The stress worked out: revenue $37.4M, cost of goods sold $26.9M, imported $12.4M, +15% minus $1.9M, half passed through plus $0.9M, EBITDA $4.0M to $3.1M, annual debt service $2.9M. Facilities: revolver $12.0M maturing 31 March 2027, term loan $6.5M maturing 30 June 2030. Next steps: send the borrower questionnaire, move the annual review forward.
Fictional sample borrower. The three passages agree; where documents conflict, the reader prefers audited figures over memos and newer over older, and shows both.

Across the 63, 17 fall below 1.20x at the board case, with $142.6M outstanding. Five of those also mature within 12 months: Kessling, Ashby Seating, Cardinal Furniture, Brightside Toys and Copperline Enclosures. Owen can move the input-cost rise, the share passed through and the coverage line. Asked what happens if costs rise 20% and only a quarter is passed on, the agents answer that 44 of the 63 fall below the line, with $308.6M outstanding, by the same method on each spread. The board case stays the one the summary leads with.

The method is the “bottom up” one in the OCC's community bank stress testing bulletin: transaction stress testing “estimates potential losses at the loan level by assessing the impact of changing economic conditions on a borrower's ability to service debt,” and portfolio results come from “aggregating the results of individual transaction level stress tests” (OCC Bulletin 2012-33). The bulletin's alternative, a “top down” loss rate on pools, would have said how much the bank might lose. It would not have named Kessling.

Credit committee report sample: what the 09:31 summary carried

A board summary on an exposure question should let a director see the answer, the method and the gaps on one page, and let an examiner trace any number to its source. The answer writer drafts it from the run: the question, the answer by industry, the stress, what the RMs are doing and the four unknowns, every number footnoted. Owen reviews it and sends it to Ruth Adebayo, the chief credit officer, at 09:24. She approves at 09:31, and the summary goes into the committee pack.

What the board summary on the import question carried, section by section

  1. The question and the definition used

    Imports of at least 20% of cost of goods sold, or one named foreign supplier: the bank’s own test, printed, so the committee knows what “exposed” means.

  2. The book it was asked of, at one date

    1,184 relationships, $6.42B committed at 30 September 2026, tied to the loan system before any total was shown.

  3. The answer in committed, outstanding and share of book

    63 borrowers, $611.4M committed (9.5%), $438.7M outstanding, then the same by industry.

  4. The stress, with its assumptions in words

    +15% on the imported share, half passed through, against the 1.20x policy line: 17 below, $142.6M outstanding.

  5. Timing

    9 maturing within 12 months, 5 of them also below the line: the names to discuss first.

  6. What is not known

    Four borrowers, $20.3M, whose files are silent: named, not counted, RMs asked.

  7. Actions and owners

    Questionnaires through the RM team; earlier annual reviews where the stress bites; the question saved to re-run.

  8. Sources and approval

    A footnote behind every figure, and the approver’s name and time.

Fictional sample bank. The Federal Reserve’s manual expects management reports to include “analyses of the bank’s credit exposure by type, geographic areas, collateral, and large employers”; an unplanned question is one more cut of that analysis.Source: Federal Reserve, Commercial Bank Examination Manual, §2010.1

Good — put the five maturing names first on Thursday.

Ruth Adebayo, the sample bank’s chief credit officer, approving the summary at 09:31

None of the agents contacted a borrower or changed a rating. The stress moved coverage on paper; any rating change goes through the bank's credit process. Tessa Moore's RM team receives the borrower questionnaire for Kessling and the other names where the stress bites, and sends it themselves.

What the clock leaves out

Fifty-one minutes is the visible part. Three things made it possible and none of them is speed. First, the definition was the bank's own and was printed on the answer, so the CCO approved a test she recognised. Second, totals were tied to the loan system at one as-of date, and the answer would have stopped if they had not tied. Third, every row carried its source. The OCC's portfolio booklet expects stress testing as part of monitoring and notes that “some banks use software to conduct multifactor stress conditions while other banks use simple spreadsheets” (OCC, 2026). The method matters less than whether someone can trace the result.

The question also did not end on Thursday. Owen saved it as a sweep that re-runs when a new memo, review or supplier list arrives and every Sunday at 06:00. How the roles divide around a morning like this is in credit portfolio management roles. What the four “not in file” borrowers say about trusting an AI answer is in the borrowers it says it cannot answer for. What six weeks of analyst time costs is in what a new portfolio question costs.

Questions people ask

What is portfolio exposure analysis in banking?

It measures how much of a loan book is open to one risk, such as an industry, a region, a collateral type, a counterparty type or a cost like imported inputs, and what that exposure would do under stress. In investment management the same phrase means factor exposure of a securities portfolio; in a bank it ends in committed and outstanding balances, coverage and the borrowers to call.

How do you analyse a loan portfolio's exposure to tariffs?

Define dependence in terms the files can confirm, such as an imported share of cost of goods sold or a named foreign supplier. Read each borrower's reviews, statement notes and supplier lists for it, rather than screening industry codes alone. Then stress coverage on each borrower's own spread, applying the rise only to the share the files support.

Which documents in a credit file show where a borrower's inputs come from?

Annual reviews and credit memos often state it in the business description; field exams and borrowing base work carry supplier lists with shares of purchases; RM call memos record surcharges and new suppliers; audited statements may carry a concentrations note. In the sample run, the largest borrower's dependence was stated in all three of a review, a field exam and a call memo.

Can a smaller bank do this from call report categories instead?

For a loss estimate, often yes: the OCC says that for most community banks “a simple, stressed loss-rate analysis based on call report categories may provide an acceptable foundation.” Call report categories cannot say which borrowers import, though, so a question about named exposure still needs the files.

Why stress debt service coverage rather than apply a loss rate?

A loss rate on a pool tells you the possible cost; a borrower-level coverage stress tells you which borrowers to call. A board question about who would breach covenant needs the second, and it should be run on the share of costs each file supports rather than on an industry average.

How often should an exposure question be re-run?

Whenever the evidence changes, and at least before each committee meeting. At the sample bank the import question re-runs when a new memo, review or supplier list arrives and every Sunday at 06:00, and the hotel question re-runs each quarter and whenever a guarantor files a new statement.

Commercial Loan Portfolio Analysis.
See it on your own files.

An agentic solution from Botminds. Ask the whole commercial book a new question in plain words; the answer comes back as a table, each row linked to the page that proves it. Book a demo, or explore how it works.