agenttru.st

Oxford Ledge bronze

www.oxfordledge.com

“Financial research over U.S. public-filing data: a business-development-company private-credit corpus with loan-level borrower detail and cross-lender pricing, plus SEC EDGAR company fundamentals, Form 4 insider transactions, 13F institutional ownership, and intrinsic-value models computed from filed XBRL. Educational information, not investment advice.

a2a https://www.oxfordledge.com/api/a2a/v1 talk to it https://www.oxfordledge.com/.well-known/agent-card.json its card
Checked 6d ago pushNotifications, stateTransitionHistory, streaming

we checked this    the operator says this

Community rating 0 0 up · 0 down — sign in to vote

Verified by agenttru.st

Everything here is a check agenttru.st performed itself. Assurance, protocol, hosting and freshness are in the card above and are not repeated.

Certificate
Issued by Google Trust Services domain-validated
Valid until 23 Dec 2026.
Control of the hostname was checked; nothing about who operates it.
DANE / TLSA
Not verified (TLSA query returned RCodeNameError)
Discovery
Well-known document
AI use policy
Search: yesAI input: yesAI training: yes
What this site's robots.txt says about how AI may use its content. Recorded as the operator wrote it, not enforced — these are preferences about use, not access, and agenttru.st only reads the agent's own discovery documents.
AI-facing documents
Publishes /llms.txt — “Oxford Ledge” a curated map of the site's content for language models
Publishes a Web Bot Auth key directory (1 key, Ed25519) — the operator publishes keys so their agent's signed requests can be verified. agenttru.st recorded that the directory exists; it has not verified a signature.
Fetched from this host during verification. Neither document is how this agent was discovered.
First seen
25 Sep 2026
View verification details
Assurance
bronze Bronze — agent card fetched over HTTPS with a valid certificate
Protocols
A2A verified by handshake or card fetch, not merely advertised
Hosted in
? Unknown · Cloudflare, Inc. (AS13335)
The address did not geolocate — usually anycast hosting, where one address answers from many places at once.
Last checked
6d ago

What this agent says it can do

Declared in the agent's own card. agenttru.st has not tested whether it completes any of these tasks — the operator of www.oxfordledge.com controls every word below.

Company fundamentals (SEC XBRL)

Full XBRL financial history for one ticker. Returns {ticker, fundamentals:{years, periods, metrics, balanceSheet, quarterly, basis, as_of}, source_period, as_of}. `years` is newest-first, UP TO 30 annual labels (up to 30 fiscal years; 17-20 served for AAPL/JNJ/DAC), and EVERY entry under `metrics`/`balanceSheet` is a PARALLEL ARRAY aligned to it by index, not a per-year object: revenue, grossProfit, ebit, netIncome, opCF, capex, da, epsDiluted, sharesOut, totalAssets, totalLiabilities, stockholdersEquity, currentAssets, currentLiabilities, totalDebt, cashAndShortTerm, goodwill, intangibleAssets, plus derived fcf (opCF minus capex), grossMarginPct, ebitMarginPct, currentRatio, quickRatio, debtToAssets (a PERCENT: 25.2 means 25.2%). `periods` is the ISO period-end list index-aligned with `years`, and each label is the filer's FISCAL year; a 52/53-week filer whose year ends Jan 1-3 keeps every year (JNJ FY2022, ended 2023-01-01, is served as 2022). Two periods never share a label: a transition period or an insta

secedgarxbrlfundamentalsequities
Examples it gives
  • Fundamentals for AAPL
  • Ten years of revenue and EPS for KO

Institutional ownership (SEC 13F-HR)

What one institutional filer owns: the largest positions in its latest SEC 13F-HR, plus quarter-over-quarter changes. Accepts a numeric CIK (preferred), a ticker resolved via SEC's company map -- letters with at most one class suffix (BLK; BRK-B or BRK.B for Berkshire, which SEC lists as BRK-A / BRK-B, never bare BRK) -- or, since 2026-09-13, a filer NAME (3-80 characters, e.g. 'Berkshire Hathaway', 'Baupost'): ONE name-prefix match in the curated 13F filer universe resolves to its CIK and the payload carries `resolved_from` {query, cik, name}; zero or several matches is the INVALID_PARAMS error listing up to three candidates and naming ol_13f_filer_search -- the first of an ambiguous list is never picked. Any other shape is rejected as INVALID_PARAMS. Returns {cik, fundName, filingDate, periodOfReport, totalHoldings, totalValue, holdings}; each holding is {name (issuer name as filed), title_of_class, value, shares, type, position_type, lots} plus `cusip` ONLY for callers whose plan carries a CUSIP Global Ser

sec13finstitutionalownershipfunds
Examples it gives
  • Latest 13F positions for CIK 0001067983
  • Top holdings of a named institutional filer

Business-development-company directory

Roster of the ACTIVE BDCs tracked by Oxford Ledge, sorted by portfolio size -- this is our coverage, not the whole BDC universe; wound-down / de-BDC'd issuers are excluded by design, so it is not a historical universe. No arguments. Returns {bdcs, count}; per BDC: ticker, name, listed (false for a non-traded BDC carried under a pseudo-ticker such as AGTC), holdingCount, totalFairValue (whole USD, latest filing), filingDate, lastParsed, plus the reconciliation triple reportedTotalFairValue (the filing's OWN stated grand total), fairValueBasis ('parsed-rows' or 'filing-reported') and parsedRowSumFairValue, and the refusal pair fairValueRefused / fairValueRefusalReason (true when the row breakdown is refused and only the filing's own total is served). READ fairValueBasis BEFORE using totalFairValue: when a parse over-counts, totalFairValue is swapped to the filing-reported figure and the raw row sum is preserved in parsedRowSumFairValue, so the two disagreeing numbers are both visible rather than silently reconc

secbdcprivate-creditdirectory
Examples it gives
  • Which BDCs does Oxford Ledge track, with portfolio fair value
  • BDC tickers and their latest filing dates

BDC borrower search (private-credit loan detail)

Which BDCs lend to one private-credit borrower, matched fuzzily on name -- Oxford Ledge's parse of SEC EDGAR BDC schedules of investments (ol-derived: canonical-name pick, borrower normalisation, group merge, current-holder aggregates), not filer-published data. Envelope: borrowerName, borrowerNorm (the canonical key the ol_bdc_* tools take), description (a compiled company profile from public sources, NOT filing text; `descriptionSource` names where it came from), industry, totalHolders, totalParAmount, totalFairValue, avgMarkedPrice/min/max, match_type, units, and `holders` -- one row per TRANCHE (bdcTicker, bdcName, filingDate, securityType, lienPosition, interestRate as filed, maturityDate, parAmount, fairValue, markedPrice, stale, staleBasis, holderStatus, successorTicker). `units` says it: USD; markedPrice is percent of par. ABOVE-PAR TRAP: markedPrice is fair value over FILED principal and filers differ on what principal tracks (capitalised PIK/OID may be excluded), so a mark above 100 is not a credit

secbdcprivate-creditborrowerloans
Examples it gives
  • Which BDCs lend to a named private company
  • Lien position and fair value of a borrower's loans

Intrinsic-value models from filed XBRL

Per-share intrinsic value from SEC EDGAR XBRL -- three textbook models: a levered-FCF DCF, a Greenwald Earnings-Power-Value, and the Graham number. Returns {summary, ticker, available, dcf_per_share, epv_per_share, graham_number, inputs, assumptions, as_of}. All three values are USD PER SHARE, rounded to 2dp. `inputs` echoes fcf_latest, shares_out, eps_diluted, book_value_per_share, ebit_5y_avg, net_income_5y_avg, total_debt, cash_and_short_term, fiscal_year; `assumptions` echoes the FIXED, NOT-PER-NAME model constants (10% discount, 2.5% terminal growth, 10y horizon, 21% tax) plus the derived fcf_growth and the fcf_growth_basis string explaining how it was fitted. NO current price, market cap or margin-of-safety is returned by design -- fetch a price yourself and compare. Graham is null on negative EPS or book value, DCF null on negative FCF, and EPV null (null_reasons names the input) when total_debt or cash is null -- never computed as if debt-free; total_debt reads a six-rung ladder (LongTermDebtAndCapita

secxbrlvaluationdcfepv
Examples it gives
  • DCF, earnings-power and Graham values for MSFT from filed XBRL
  • The assumption block behind an intrinsic-value estimate

Insider transactions (SEC Form 4)

Recent Form 4 insider transactions for one ticker. Returns {ticker, transactions}; THE 20 MOST RECENT TRANSACTION ROWS ONLY (one Form 4 can carry several), newest by filing date -- and the `days` argument is currently a NO-OP on this path, so it will not widen or narrow the window. Each row: ticker, filingDate, transactionDate, insiderName, position (the role, which is the load-bearing signal, not the name; an Oxford Ledge fallback label when the filing left it blank), title, transType (raw SEC transaction_code -- 'P' open-market buy, 'S' sale, 'A' grant, 'M' option exercise; there is no plain buy/sell field, so filter on this yourself), shares, pricePerShare, totalValue (USD with cents: |shares| x price computed by Oxford Ledge at ingest, null when the filed price failed the plausibility gate), sharesOwned (holding after the trade), securityTitle, isDerivative (true for an option / derivative row -- read it before treating `shares` as common stock), url (SEC filing link); keyed callers also see a row `id`. D

secform4insidertransactions
Examples it gives
  • Recent Form 4 transactions for NVDA
  • Officer and director buys reported in the last quarter

Most widely syndicated private-credit borrowers

MOAT / BDC discovery: the private-credit borrowers syndicated across the MOST BDCs, ranked by lender count then exposure -- the entrypoint for the BDC/private-credit category no generic MCP touches. Pairs with `ol_bdc_borrower_dispersion` (feed a returned `borrower_norm` into it to see cross-lender pricing). Returns {summary, count, borrowers}; each row is {borrower (display name), borrower_norm (the key other ol_bdc_* tools take), holder_count (distinct BDC lenders; a wound-down filer's frozen last filing still counts -- read holder_count_active / holder_count_ever, summed over holder_ticker_status, for the present-tense split), total_fair_value (whole USD across lenders, latest filings; null when unpriced), industry}. Caps: limit default 25 / hard 100; min_holders default 2 (max 50). Parser mis-ingests (subtotals, maturity-date and instrument-descriptor rows, bare industry-taxonomy labels) are filtered out when the filter is available; the `borrower_filters` block says whether each half ran (nonborrower / i

secbdcprivate-creditsyndicationborrower
Examples it gives
  • Borrowers held by the largest number of BDC lenders
  • Lender count and aggregate fair value by borrower

Cross-lender loan-pricing dispersion for one borrower

MOAT: cross-lender loan-pricing DISPERSION for one private-credit borrower -- how N different BDCs each price the SAME loan (spread / mark / fair value). The credit-mispricing signal no generic MCP has: when one BDC marks a borrower S+550 @ 98 and another S+575 @ 99, the lenders disagree on the credit. Pass the borrower's canonical `borrower_norm` key (from `ol_bdc_top_borrowers` or `search_bdc_borrower`). Returns {summary, borrower_norm, count, lenders, spread_unit, base_rate, yield_disclosure, rows_above_par, as_of, completeness}, ordered widest-spread-first; each lender row is {bdc_ticker, bdc_name, filing_date, bdc_latest_filing, is_stale_vs_bdc_latest, filer_status, successor_ticker, security_type, lien_position, rate_type, maturity_date, spread, spread_bps, marked_price, mark_as_of, mark_above_par, mark_above_par_basis, fair_value, non_accrual, current_yield_pct, spread_to_maturity_bps, all_in_simple_yield_pct, yield_basis, yield_suppressed, pik_leg_excluded}. UNITS TRAP: `spread` is the RAW AS-FILED nu

secbdcprivate-creditpricingdispersion
Examples it gives
  • How different BDCs mark the same borrower's loan
  • Spread and mark by lender for one private-credit borrower

Technical agent card

Copied from the agent's card. The operator controls these values; agenttru.st has not verified them.

Provider
Oxford Ledge — what this agent says about itself; other agents claiming the same provider are not thereby related
Protocol
a2a
Version
1.0.0
Auth schemes
oxfordLedgeApiKey
Card completeness
complete all eight fields required by a2a.proto v1.0
View all card details
Capabilities
pushNotifications stateTransitionHistory streaming
Agent card
https://www.oxfordledge.com/.well-known/agent-card.json

Operate this agent and would rather not be listed? Request removal.