Skip to main content

What an assistant can get wrong about BDC loans, and what the filings say

A business development company, or BDC, is a fund that lends to, and sometimes invests in, mid-sized private companies. With each quarterly and annual report it files a Schedule of Investments with the SEC: a list of every loan, with the borrower’s name, the loan’s terms, the principal still owed, what the fund paid for it and what the fund says it is worth.

Those schedules are public, and they are one of the few free windows into private credit. They are also easy to misread. The traps below catch any reader who works from a summary instead of the filing: a person skimming a table, or an assistant answering from memory. Each one is shown with a real output from the Oxford Ledge tools that read those schedules, labeled with the tool name and the date it was captured, and each ends with how to check the point in the filing yourself. You do not need to connect anything to use this page.

The outputs were captured once, on 2026-09-27, and are not live. Newer filings will change the figures; the lessons stay the same.

The date on a filing is not the date of the mark

Coupa, a software company, borrows from many BDCs at once. Asked how its lenders value those loans, the dispersion tool answers with one row per lender:

Captured 2026-09-27 · ol_bdc_borrower_dispersion {"borrower_norm": "coupa"}

{
 "lender_count": 8,
 "filing_date_range": [
  "2026-07-29",
  "2026-08-07"
 ],
 "as_of": {"mixes_filings": true},
 "marked_price_unit": "percent of par"
}

The lenders’ reports reached the SEC on different days, from 2026-07-29 to 2026-08-07. Yet every lender row carries the same mark_as_of: 2026-06-30, the quarter-end the valuations describe. The filing date says when the schedule became public. The mark date says which moment the number is about. Treat one as the other and the timing is wrong by weeks. The tool flags the mixed filing dates rather than hiding them: Each BDC is read at ITS most recent filing and BDCs file on different calendars, so these rows are NOT necessarily contemporaneous. Here the mark dates agree, so these marks describe the same day and can be compared. A lender whose quarter ends on a different date would not be comparable, whatever its filing date.

The range of filing dates grows as more lenders are compared. One capture asked which borrowers nine BDCs have in common; the filings behind the shared loans it returned ran from 2026-07-29 to 2026-08-20.

Captured 2026-09-27 · ol_bdc_common_borrowers {"bdc_tickers": ["SAR", "ARCC", "GBDC", "OBDC", "FSK", "MAIN", "PSEC", "GAIN", "PFLT"], "min_holders": 2, "limit": 30}

{
 "as_of_range": [
  "2026-07-29",
  "2026-08-20"
 ],
 "as_of": {
  "mixes_filings": true,
  "scope": "per-BDC latest filing"
 }
}

Some lenders stop filing altogether. Ask about BKCC and the answer rests on a final filing that will never be updated:

Captured 2026-09-27 · ol_bdc_credit_quality {"ticker": "BKCC", "quarters": 4}

{
 "filer_status": "inactive",
 "successor_ticker": "TCPC",
 "latest": {"filing_date": "2024-03-05"}
}

The summary line opens with the warning before any figure: INACTIVE filer (last filing 2024-03-05; successor TCPC). A reader who skips that line would describe a book last reported more than two years before this capture as if it were current.

How to check it in the filing. The cover of every 10-Q and 10-K names the period it covers, and the Schedule of Investments is headed with the date it is as of. Compare marks only when those dates match. Read the filing date separately, to know how old the information is, and check that the filer is still reporting at all.

A mark is a percent of par, and each lender sets its own

A loan’s mark is its fair value expressed as a percentage of par, the principal still owed. A mark of 94.85 means the lender values the loan at 94.85 percent of par. It does not mean anyone traded the loan at that price, and on its own it says nothing about whether the lender is ahead of or behind what it paid.

Here is each priced lender’s mark on its Coupa loans, from the same capture. Where a lender holds more than one tranche, the tool weights the marks by par. All eight are as of 2026-06-30. A ninth lender, TSLX, holds Coupa loans too, but our reading of its schedule did not capture their principal, so they have no mark and this tool leaves them out; the search tool below counts 9 holders. AGTC is the label our tools use for Ares Strategic Income Fund, which files with the SEC but has no exchange ticker.

LenderMark (percent of par)
AGTC95.5
ARCC94.85
CGBD100.0
GBDC99.5
MSDL100.0
NMFC98.66
OBDC96.18
OCSL97.5

Same borrower, same quarter-end, and the marks run from 94.85 to 100.0. That is not an error in anyone’s arithmetic. Each lender values its own loans, and a separate capture’s note explains why the numbers differ: private-credit loans are predominantly Level 3 under ASC 820, valued from unobservable inputs and determined in good faith by each BDC's board. In practice the board often delegates that work to the fund’s adviser and oversees it.

Two lenders that each hold a single Coupa loan show why the filing reports three amounts, not one:

  • ARCC carries fair value of $9,200,000 on par of $9,700,000, a mark of 94.85. Its cost, roughly what it paid, is $9,700,000, so the loan sits on its books below cost. ARCC reports these amounts in millions, rounded to one decimal place, so this mark is good to about a point either way.
  • CGBD carries fair value of $12,038,000 on par of $12,038,000, a mark of 100.0. Its cost is $11,919,000, so a loan marked at par sits on its books above cost.

How to check it in the filing. The Schedule of Investments lists principal, amortized cost and fair value in separate columns. Divide fair value by principal for the mark, and compare fair value with cost to see whether the lender carries the loan above or below what it paid. A mark above par can happen too; before reading it as a premium, check what that filer counts as principal.

One borrower can have more than one name

Lenders file under the borrower’s legal name, and a company can borrow through more than one legal entity. A search for Coupa returns the name that appears most often in the filings, and a second name that shares its prefix:

Captured 2026-09-27 · search_bdc_borrower {"query": "coupa"}

{
 "borrowerName": "Coupa Holdings, LLC",
 "relatedNorms": [{
  "borrowerNorm": "coupa software",
  "borrowerName": "Coupa Software Inc.",
  "holderCount": 1
 }]
}

The second name belongs to one lender:

Captured 2026-09-27 · ol_bdc_borrower_dispersion {"borrower_norm": "coupa software"}

{
 "lender_count": 1,
 "lenders": [{
  "bdc_ticker": "BXSL",
  "marked_price": 97.95,
  "mark_as_of": "2026-06-30",
  "tranches": [{
   "maturity_date": "2030-02-27",
   "fair_value": 1763000.0
  }]
 }]
}

The tool keeps the two names apart and does not guess. Its note says: A sibling may be the same obligor filed under another legal name (a brand vs its take-private vehicle) or an unrelated company. Here there is a clue: BXSL’s largest Coupa Software tranche matures on 2030-02-27, the same date OCSL gives for its Coupa Holdings term loans (2030-02-27). A matching maturity is a reason to look closer, not proof. Count lenders under one name only and you may undercount the company’s lenders; merge the names without checking and you may count a stranger.

How to check it in the filing. Find each name in the lender’s Schedule of Investments and compare the legal entity, the lien, the maturity date and the rate terms. Sometimes the filing settles it: ARCC’s schedule names the borrower on its loan “Coupa Holdings, LLC and Coupa Software Incorporated”, one loan to both entities. A company bought by a private-equity firm often borrows through a newly formed holding company, so the name in the filing may not match the brand you know.

An empty answer is not a zero

When a lookup comes back empty, the tempting summary is “none.” Two captures show why that is the wrong word. The first is a search for a company name made up for this page:

Captured 2026-09-27 · search_bdc_borrower {"query": "Quillmoor Teapot Holdings"}

{
 "found": false,
 "match_type": null
}

The tool does not say the company has no BDC loans. It says the search found nothing, which is a different claim: This is a search miss, not a finding that the borrower has no BDC exposure.

The second is subtler. A loan is on non-accrual when the lender stops counting its interest as income, usually because the lender no longer expects to collect what it is owed in full, so the share of a book on non-accrual is a common measure of stress. Asked for that share at TCPC:

Captured 2026-09-27 · ol_bdc_credit_quality {"ticker": "TCPC", "quarters": 4}

{
 "latest": {
  "filing_date": "2026-08-06",
  "flagged_fv": 0.0,
  "flagged_pct": null,
  "coverage_state": "none_parsed"
 }
}

The flagged amount reads 0.0. That is our tool’s own weak spot: it means nothing was read, not that nothing was flagged, and a reader who divides it by the size of the book would report a rate of zero. The tool does refuse to state a rate and gives the reason: This is a PARSER GAP (the parse path carried no non-accrual marker channel for this filing), not a withholding decision and not a 0% non-accrual rate. In plain words, our reading of TCPC’s recent filings has not captured their non-accrual markers, so the honest answer from this tool is “unknown”, which says nothing about the health of TCPC’s loans in either direction. TCPC’s own report states its non-accrual share in its discussion section.

How to check it in the filing. Most BDCs mark non-accrual loans in the Schedule of Investments itself, with a footnote, and state the total in the Management’s Discussion and Analysis section. If a tool or a summary shows nothing, open the filing before concluding there is nothing.

Reading with an assistant

None of these traps needs special software to avoid: read the as-of date, the three value columns, the legal name and the reason behind any blank. If you use an AI assistant that supports the Model Context Protocol (MCP), you can connect it to the same tools that produced the captures above, so it can look figures up in Oxford Ledge’s reading of the filings rather than recall them; the tools report the date each figure describes and say so when the record is thin. The tools shown here are free, connecting is free on every plan, and the steps are on the connect your assistant page.

About these captures

Each excerpt shows selected fields exactly as the tool returned them on 2026-09-27, to a call made to the public tool endpoint without an account. Figures are Oxford Ledge’s reading of SEC EDGAR filings, can contain errors (this page shows two of ours), and will change as new filings arrive. This page is educational material, not investment advice.