■ Vader Hairitai
vader.hairitai@kellogg.northwestern.edu ■

Spandrel: Agentic Deal Sourcing in Transferable Tax Credits

Deal Intelligence · 2026

Spandrel is an agentic deal-intelligence system for a US private-capital firm in the transferable tax credit market. It learns the firm's deal criteria from their own portfolio and scores new deals nightly with rationales the team can override.

STATUSIn production at a US private-capital firm
STACKPython · Anthropic API · Postgres
SCALE150+ deals scored/week
RESULT~7 actionable deals/week · 36-hour window

Spandrel is an agentic deal-intelligence system for a US private-capital firm in the transferable tax credit market. It finds the few fundable deals each week and gets them in front of the team inside the window they have to act.

The analysts and partners at the firm, a US private-capital house focused on transferable tax credits in housing and renewable energy, see more deals each week than any one analyst can read. The senior partners know a good deal when they see one, but the criteria live in their heads, not in a rulebook. Pre-filtering is the bottleneck on origination, and it costs the team the time they should be spending on real deals instead of triage.

Spandrel reads the firm's open-deal portfolio to infer the criteria, then scrapes federal and state credit sources nightly. Each candidate runs through the Anthropic API for a structured score plus a written rationale the team can correct or override. An agentic refresh loop tracks sub-threshold deals for rising signal and promotes them with a note. Python scrapers, Postgres, Anthropic API, Next.js front.

Inbound RFP emails(~150 / week)LLM extraction· sponsor· location· asset class· deal sizeScore + matchto thesisHIGH→ DirectorMID→ next batch reviewLOW→ archive with rationale
Hover any node for detail.
From unstructured inbound to scored, routed pipeline. The morning queue shows only HIGH.

In production at the firm. Unlike inbound-reactive deal sourcing, Spandrel proactively and continuously surfaces the latest fundable deals from a specialized, government-linked segment (transferable tax credits in housing and renewable energy). By the team's own count, roughly seven deals a week that would otherwise have been missed in the first 36 hours (the window in which engagement matters most for credit pricing) are now in front of them.

OPEN SPANDREL ↗

The ground truth is the head of origination's judgment, not a labeled dataset. The eval framework matches that reality. Each week the top twenty surfaced deals get a binary label: would the head of origination engage, or pass. The label comes from her actual subsequent behavior over the following two weeks, recorded by polling the team on which surfaced deals turned into outreach.

Precision at twenty has held above eighty percent across the engagement, with the failure mode being adjacent credit types, particularly newer EV and battery credit programs that resemble historic credits in some structural features but live under different regulations.

A second metric, surfacing latency, measures the time between a deal becoming publicly observable and the system flagging it. The current median is about four hours, faster than the team's manual baseline by roughly a day. Latency maps most directly to revenue capture, since first-mover advantage in tax credit origination is the dominant economic factor.

Python scrapers running nightly against state historic preservation office filings, NPS Tax Credit Quarterly publications, and the small set of trade publications that list active credit raises. Postgres for the normalized record store with entity dedupe, address geocoding, and state and credit-type tagging. Anthropic API for structured scoring: each candidate deal returns a structured object with sub-scores for state tier, sponsor strength, and deal size band, plus a written rationale. Next.js front, no chat interface; the team uses the system to consult, not converse with.

When a customer cannot specify their requirements, the right move is not to ask better questions. It is to read their existing portfolio. Customers under-specify what they want and over-specify how they want to be served. The portfolio specifies the want in the form most useful to a builder, which is a labeled set of decisions the customer has already made.

The agentic refresh loop, the part that took the system from a one-time delivery into an embedded engagement, was less technically interesting than I expected. The polling logic is simple. What made it work was the discipline of writing the rules for promotion in a form the customer could read, so they could correct the system when its judgment diverged from theirs.

The dominant failure mode is adjacent credit types, particularly newer EV and battery credit programs that resemble historic credits in some structural features but live under different regulations. The system can score them high based on structural similarity even when the regulatory regime makes them unworkable for the firm.

■ 2026
Colophon ■