Run the BusinessDeployedFinancial Services Quarterly CRA Letter Generation
Generates Community Reinvestment Act (CRA) credit letters for institutional LP banks that hold positions in the fund. Bank LPs invest in SBICs in part to earn CRA credit, and each quarter their compliance teams request documentation showing which portfolio investments qualify — low- and moderate-income geography placement, job creation in underserved areas, small-business lending impact. The agent pulls the quarter's portfolio activity, evaluates each investment against each LP's specific CRA criteria, and drafts the tailored letter with the supporting evidence the LP's compliance officer needs to log the credit.
Quarter-end CRA letter request from an institutional LP bank
- Quarterly portfolio activity (new investments, follow-ons, exits)
- Portfolio company geographies and demographics (LMI census tracts, underserved areas)
- Employment and community-impact metrics per portco
- Each LP bank's CRA eligibility criteria
- Tailored CRA credit letter per institutional LP bank
- Portfolio investment × CRA criteria evidence table
- Supporting documentation package for LP compliance files
Snowflake AIM tables (pipeline, securities, account, investor, fund)FFIEC CRA geographic data (LMI census tracts)python-docx letter generation
- CRA credit is allocated per deal, not flat fund-wide: each deal's investment is split only across the banks that requested CRA for that specific deal, weighted by each bank's commitment — so the denominator changes deal to deal
- Pulls the quarter's closed deals and investor data straight from the Snowflake AIM tables by named field — pipeline (account, close date, transaction type, total investment), securities (fund-sleeve mapping), account (portco addresses), investor (bank commitments), and fund (SBIC flag, SBA license number)
- Per-deal CRA purpose language is derived from each deal's transaction type (growth, acquisition, LBO), with body language adjusted when a fund sleeve isn't SBIC
- Renders one .docx letter per bank from a fixed template via python-docx — logo, addressee block, indented per-deal blocks, superscripted address ordinals, comma-formatted whole-dollar amounts, signature — handling the repeating deal blocks programmatically
- Human-in-the-loop by design: it presents the full per-deal, per-bank allocation table for confirmation before generating any letter, and asks rather than guesses when a portco address is missing
Reference implementationsSBIC / lower middle market private equity firm
SBIC / lower middle market PE — quarterly CRA credit letters generated for every institutional LP bank that requests CRA documentation