Tuesday, April 7, 2026

Cash Flow Tooling for Fund Analysis

I've gotten quite "lazy" after working at a tech company for a while -- I know automation exists, and so I try very hard to avoid doing rote tasks. (Classic software engineering trap: spend 10 hours to save 1.)

That being said, AI coding tools should be able to help me do this quickly and automatically. There's two big steps to this process (we're only tackling the second here):

  1. Retrieve data (manual step for now) -- from PDFs, Excel files, etc. For now, I've done this manually, because this is a surprisingly hard problem to do at scale. (The files can be in so many different forms, and PDFs are notoriously tricky to read! There's also an open question on how much AI should process this vs. other means; e.g. if it's in Excel already, why use an LLM and run the risk of it hallucinating data?)
  2. Analyze data and build pretty graphs (AI-assisted code) -- Once the data is clean, this step requires no LLMs, just regular code. (This also means no private info is sent to any LLM.) Again, I'm using Google Antigravity; I've copied my initial prompt below.

Initial Google Antigravity prompt to build IRR tool:

help me build another tool -- "Cash Flow Analysis" -- that helps to analyze a VC/PE Fund's cash flows.

This should take in as input an Excel sheet with the following sheets/columns:
"LP Gross Cash Flows" - columns: Fund, Company, Date, Gross Cash Flow, Notes

"Unrealized Value" - columns: Fund, Company, Date, Gross Cash Flow

"Unlevered Cash Flow" - columns: Fund, Transaction, Type, Date, LP Net Cash Flow

"LP Capital" -- columns: Fund, Date, LP Net Cash Flow


Outputs:
- a graph of cash flows, usin ghte LP Gross Cash Flows chart, with $ amount on Y axis and time period on x-axis. DIsplay negative cash flows as a red bar (down) and positive (i.e. distributions) as blue. also have a "net cash flows" line graph

use altair to build this. allow filtering by Fund and Company. also allow a parameter for the x-axis to be quarterly, half-year, and year increments.

- generate a table showing for each fund/company the total investment, total distribution, whether exited completely, gross IRR.

- calculate total gross IRR per fund, using unrealized value in the equation as well


build a similar graph as above with unlevered cash flow tab. use altair to build this. allow filtering by Fund. also allow a parameter for the x-axis to be quarterly, half-year, and year increments.

calculate fund-level IRR using the current unrealized values in LP Capital slide

Errors and Clean-Up
AI coding can be finicky. (Equally finicky are my prompts -- there's a ton of room for AI to "interpret" what I'm asking of it.) This is where a lot of the extra time with AI code comes in -- refining, revising, pivoting, etc. Here are all the additional prompts I added on, typos and all (took ~2 solid hours in total):
  • I'm hitting this error: Error processing Excel file: 'Company'
  • Error processing Excel file: Invalid frequency: QE, failed to parse with error message: ValueError("for Period, please use 'Q' instead of 'QE'")
  • Error processing Excel file: 'Column not found: Gross Cash Flow'
  • meh roll back that change. Instead can you abstract all of these column headers to the top of the routine as variables? maybe use a naming convention like "LP_GROSS_CASH_FLOWS__FUND" to designate "SHEET__COLUMN". this will help when we expand this later on
  • can you remoe comapny filter option from LP Gross Cash Flows? Maybe jus filter the company summary table by that ... also -- if it's yearly x-axis increments, can you just show the year and not months in between? .... also the fund filters tabs are cut off so it's ahrd to see the full fund name, can you fix? ... i also get this error in company summary table: Error processing Excel file: complex exponentiation.
  • can we replace this with a standard py function? def xirr(cashflows, dates):
  • remove the company filter entirely ... for 2022 for one of the funds, i have both investments and distribution and i expect to see both, please update ... in the company summary table, add in "earliest investment" "last distribution" and "unrealized value" columns
  • can you also adjust the green "net cash flow" to be the disributions minus investments? also label this line. can you also disable zooming and out of the graph, and make it a little taller?
  • move the "gross IRR per fund" into a streamlit metric ... below company summary table, add in a filter to allow filtering by company to see all investments/distributions/unrealized value
  • in the "detailed company data" -- can you sort the list alpahbetically for ease?
  • can you update Fund Filter to single-select dropdown
  • okay - let's remove the x-axis iincrements -- let's just keep it at "year" roll-up. ... i am still seeing two years per year (e.g. 2017 2017) in the x-axis.... Let's rename x-axis to "Year' also .... add a box around the metric ....
  • at the fund level: can you add as metrics "total invested", "total distributed" , "DPI" (which is distributed / invested), MOIC, earliest investment, latest investment .... at the "detailed company data" level, can you add in IRR per fund, total invested, total distributed, unrealized value as metrics?
  • rename "Positive/Distrubtion" to just "Distribution" and "Negative/Investment" to just "Investment" ... make the bars in the bar graph skinnier (more aesthetic)
  • split the metrics onto two lines with 4 metrics wide (the full $ amount gets cut off). maybe also abbreviate $5,000,000 to $5.0M (maybe create a shared tag to do that, if a library function doesn't exist?)
  • can you add all the same metrics to the unlevered cash flow screen? (total invested, total distributed, unrealized value, dpi, moic, gross irr, latest investment) ... can you also add the vintage to both
  • can you actually add the vintage in the name of the fund as well? ... in a collapsable section, can you also print out all the numbers that go into the gross fund-level IRR calculation? (i need to check #s) ... remove "Micro Metrics" (I think it's not needed)
Result
Here's a redacted version of the output. Overall -- fairly successful project, with a good foundation (i.e. not vibe coded). Certainly can be refined more, but a good look at "what's possible today" (and hopefully a time saver for me in the medium- and long-term!).


Sunday, April 5, 2026

Emotions and Investing

The current global geopolitical situation is distressing to me. That we went to war with Iran -- seemingly on a whim, with a first strike, and with the belief that we'd solve the Middle East in just a few days -- has to be amongst the dumbest, most unforced error that I can imagine, a level of hubris only enabled by yay-sayers following Venezuela. 

4/2/26: Yet another memorable (and jaw-dropping and frightening) Truth Social post today ...

I couldn't get past the sheer stupidity of our Iran entanglement, which I believe made me not notice it as a good potential investment opportunity. The smart investors, however, are able to think through these types of events a little more clearly. In hindsight, there was probably a decent chance that Trump would do something in Iran, especially after his Venezuelan conquest, which would inevitably drive up the price of oil. A simple bet, then, might've been long oil -- low-ish downside but high potential upside. 

More broadly, I think it'll take a little more time and experience to extricate my emotions from the act of investing. It brought me back to my days working in healthcare IT: inevitably someone would do something stupid, and we (I) would have to help clean it up. I got really good at just ignoring who caused the issue and instead diving in and fixing it. Perhaps it's a little harder with investing, especially because politics are inherently emotional (especially today). Nevertheless, still a good weakness to identify and an aspiration to work towards.




AI Notes - AlphaSense and Future Home Grown AI Tools

In the past month, I've written a few investment memos from soup to nuts, so now have strong opinions on what LLMs might be good for. 

First, AlphaSense. We have access to AlphaSense, so I've been able to give it a whirl. My takes:

  • Mediocre but voluminous investment memo writer -- We've come up with a decent investment memo prompt, and it can pull together a 20-page investment memo in ~15 minutes. However, some info isn't relevant, some isn't well supported, and overall ... it's 20 dense pages. More detailed gripes below.
  • References to internal sources -- One thing I love and hate is that it links to internal materials (e.g. Affinity, Sharepoint). Upside: when I've had trouble finding a single piece of info from the data room, AlphaSense did a good job on hunting down the sources of truth. Downside: it'll link to old memos or in-flight memos, which is not helpful if I'm trying to verify or double-check details for the in-flight memo. 
  • Expert calls -- I've been diving into some topics I have little prior knowledge in, so I've tried to make use of what I see as AlphaSense's primary edge: expert calls. I've tried to ask it something like: "Find me all expert calls that talk about X industry or Y company or its competitors" to get better situated from insiders. Overall valuable, but not worth the price of AlphaSense alone.
My current thoughts on tools that'd be (a) buildable and (b) useful:
  • Draft investment memo writer -- I think a well-constructed LLM tool can write a good investment memo. The keys are (a) asking the right sequence of questions to the LLM, (b) linking out to external sources for some pieces (e.g. for public market comps), and (c) knowing which pieces to delegate to LLM and which pieces should be 95% human. (I'll dive more into in another post, but one example: the "Investment Thesis" section should 100% be human-written -- if not, what is your value as an investor??)
  • Data room analyzer -- I wrote a little tool to help spill out all the contents of the data room (i.e. show me all the files in all the folders in an easy way), which is a good first start. Next step would be to get a rough summary of each files, and step after would be doing some heavier analysis. It'd also be great to be able to ask questions of the files, or at least have it help me find where X company is referenced. (i.e. what I use AlphaSense for). Should be buildable with LLMs and RAG (at least in a rudimentary form) -- big question is if 80% of max capability (what I-plus-AI am capable of) is good enough.
  • Investment memo cleaner upper -- Would love to have a tool to go through a memo and tidy up tables, help with resizing, flag areas to review/condense, etc. Not sure how much you can integrate into a Word doc. Will explore.

Friday, April 3, 2026

VC Notes (Part 2 of ?)

 Busy past month -- lots of deals. Trying to jot down a few notes from the "inside" before I forget, things that are hard to really see as a student or outsider:


"Good Fundraisers" vs. "Bad Fundraisers"

We've been looking at (or working with) a few companies that have great fundraisers, and a few are less enthusiastic. There's things to like -- and be fearful -- about both.

  • Good Fundraisers
    • Who they are: The founders tell compelling stories that connect with investors, making you feel like the TAM they state is not only real but attainable. 
    • Pros: If you invest early, you can have some confidence that (1) they can fundraise themselves out of cash burn troubles and (2) if they execute well, the next round will be marked up handsomely
    • Cons: The valuations (e.g. on a revenue multiple basis) are rich, and you're essentially a momentum investor in the company. Rocket ship will go up (until it crashes).
  • Bad Fundraisers
    • Who they are: the founder has a hard time fundraising and/or doesn't love it. A few archetypes: a company that has been just treading water looking to raise a bridge or a new round (company problem), a technical founder who sees fundraising as a necessary evil but isn't great at it (founder problem), a founder who doesn't love fundraising so does the bare minimum to raise, potentially underpricing their raise (founder-role fit?). (There's surely more.)
    • Pros: Essentially the opposite of good fundraisers. If you invest early at a "discount to fair market" (because they're a bad fundraiser) and the team executes, the next round should be up as the valuation catches up to intrinsic value. You're essentially a value investor, betting on the company and founder's abilities (as opposed to their fundraising prowess). 
    • Cons: If company is doing just okay, next fundraise might be challenging. A good company could be killed early because of poor fundraising skill.
I imagine these general fundraising skills apply at all levels (i.e. both start-ups and funds) and have variations by sector. For example, a "bad fundraiser"/"deep tech" start-up combo seems okay, but a "bad fundraiser"/"B2B SaaS" combo might signal the founder will have a hard time selling and with G2M. 


Founder / Investor Relationship
A study in contrasts again:
  • One seasoned founder (fourth start-up) sees the VC investor as a partner -- money is fungible, but prioritizes getting a small handful of strong investors on board. There's still negotiations, but no petty arm twisting. Philosophy is that it's better to have great partners on board, even if at a lower valuation. 
  • Another (first-time) founder gives an underlying sense that money is the end goal. There's light arm twisting (if you can invest $X more, we can give you X rights that you're asking for). This can result in small "lapses" in full transparency with investors or haggling over insignificant things (like board observer rights). 
I imagine: (a) some of this is coachable, (b) some of this can only be learned over time after being burned, (c) some of this is hardwired into the founder, and (d) some of this comes from "greed" (i.e. after seeing your shares are now valued at $X million and the investor is trying to "take" $Y million from you). 

Not all investors are created equal, too. CI has the advantage of being an evergreen investor, so can invest pre-seed (say, $500K) and continue investing for the next 10 years (up to $10M in a single company). It allows us to have a more long-term approach, perhaps allowing for a tighter founder/investor relationship than other VCs in the industry.

Friday, March 6, 2026

Yale Cooling Conference

 Notes from Yale Cooling Conference. Overall -- seems like a cool market I've never heard about, with a strong environmental case but still figuring out how to make the capital case. Will require mix of big industry investment (project financing and debt) and some new venture ideas (venture capital). There is a PE-backed services company in the list, too. Brief notes below

= = 

The environmental case for caring about cooling is clear:

  • Superpollutants (CFCs, etc.) are responsible for 45% of global warning to date
  • Cooling will be responsible for pollutant gases than cement, airplanes, etc.
  • Cooling is mission-critical to many areas and businesses (i.e. “national security”) and subject to geopolitical risk, supply shocks, etc.

 

The business case for cooling is harder:

  • Policy alone won’t scale, need to have market design and private capital to have a meaningful impact
  • Some areas are challenging to deploy capital to
    • Frances Lodge mentioned multifamily and C&I as challenging – split incentives b/t tenants and owners, and putting new stuff in old buildings is difficult … they’ve tried things like Cooling-aaS, DOE loan programs for methane, etc. … most get stuck in pilot hell
  • One other idea: can you make A/C “cool” (like Tesla did with EVs) to change value prop for consumers?
  • Industry wants durable solutions with predictable demand
  • (my take) lifecycle coolant management is not venture-scalable, more project-financeable; there are some alternative cooling solutions that look … cool (pun intended)

 

Speakers

  • Industry panel: Willem Vriessendorp, John Hurst (Lennox), Samantha Slater (AHRI), Wayne Rosa (Ahold Delhanze), Dale Waund (Orbia)
  • Randy Spock: industry leaders (Google, Amazon, Salesforce, Autodesk, JPM, Figma, Workday) just announced “superpollutant action initiative”, $100M over next few years to address cooling
  • Capital panel: Anastasia O’Rourke, Megan Phelan (AccelR8 Ventures), Frances Lodge (Galvanize), Randy Spock (Google, carbon credits and removals)

 

Startups

  • “LCM innovators” (mix of start-ups of all sizes and public companies): Trakref, Therm Solutions (leak detection and repair), Hudson Technologies, A-Gas, Lee Winter (Winter Lab @ Yale), Tradewater, Recoolit, Effectera
  • Alternative cooling technologies (ACTs): Magnotherm (refrigerant without cooling, piloted by Coca Cola and UofMD, etc.), Pascal (solid refrigerant tech, focused on affordability, backed by Khosla and Engine), Mimic, Exergyn, Artyc, Clema, SkyCool, ChillSkyn, LuxWall
  • (my take) I chatted w Magnotherm and Pascal. Pascal seems promising because it focuses on off-the-shelf components and ease-of-install and adoption. Magnotherm’s tech looked cool too. Both seem venture scalable.

 

Key Vocab

  • Lifecycle refrigerant management
  • CFCs/HFCs
  • Superpollutants
  • Montreal protocol on CFCs (1987),l AIM Act Framework (2021), Kigali Amendment

Thursday, February 26, 2026

VC Notes (Part 1 of ?)

Random quick notes about VC that I've come across this week. Someday I'll go back and aggregate them.

As a VC (or an investor writ-large)

  • Finding the ripcord in a deal - If a deal has a bunch of yellow flags but no damning red flag: you need to be able to find the "ripcord" in the deal, the one thing you can point to (in front of the CIO, in front of the investment committee) that's makes the deal most unattractive in the clearest, most explainable way. E.g. "not a good fit for our portfolio for XYZ reasons" or "untenable valuation" may be better than "well it's a collection of yellow flags"

For evaluating VCs

  • Ability to squeak into closed deals = green flag. Shows that you add true value to the start-up, and they're willing to let you in for good reasons. 
  • High-value VC qualities: gravitas, technical expertise, ability to sell next round of capital. Succinct way of putting what can make a VC firm great. From Ed Grefenstette, Venture Market Update - Capital Allocators with Ted Seides
  • (Also authenticity, ability to admit mistakes, the trite "intellectual honesty")
  • Massive venture firms' portfolio construction - from podcast above. Huge venture firms (like a16z) have to invest a little in hundreds of companies at early stage to buy the "option" for future rounds. Solo GPs are investing in the earliest stages and looking to build alongside founders (and respond to late night texts) -- they're more invested in the company's success. Good to think about both from allocator and start-up angle.
Portfolio Construction
  • Mixing huge and emerging VCs - from the same podcast above. One strategy for venture allocation is to get one or two marquee names to build stability in the venture book (for ~30% of portfolio), then a handful of contrarian, orthogonal emerging managers / solo GPs to give diversification. Gives more credence why it's hard to be in the middle right now


Saturday, February 21, 2026

Tooling Updates (and Exploring Antigravity!)

Antigravity continues to impress me. I've been excited by how much I've been able to get done, that I've continued to push the system to make updates. The updates I've made:

  • A chorus of LLMs: one way to "fix" the deficiencies of LLMs is to query multiple LLM providers (e.g. OpenAI, Gemini, Anthropic), then have another LLM summarize all the answers. The thinking goes: one of them might be hallucinate, but the chances of all of them hallucinating in the same wrong direction is low. (It's similar to how blockchain consensus works!) I created a tool that queries a few LLMs and then uses another to summarize them all -- you can play with this tool with any question you might have.
  • PDF Parser: I ultimately want to tackle the problem of processing and summarizing a bunch of files sitting in a folder. One use case: "read" through a term sheet and pull out all the key terms. (I would love to build up to "find me the bad/anomalous parts of the contract" but for now "get me the terms" would suffice!) I built this out, using OpenRouter to read the PDFs (using mistral-ocr, which costs $2/1000 pages). I then added in an LLM call that says, "if this looks like a term sheet, then pull out XYZ fields." It's just one use case for now, but it seems to work fairly well. (For testing, I used the Buffer term sheet found here.)
  • Competitors and public comps: I applied the "chorus of LLMs" to help find me competitors and public comps. My initial thought was to build this agent like I would run this: run a Google query, read the pages, then make sense of it. I tried using LLMs by themselves, hoping that throwing 5 different LLMs would provide good enough coverage across the internet. It's worked fairly well!
Lots of other doodads added on -- ability to download the report, etc. And, not too bad for a few hours of work!

So far, the app is a ChatGPT (plus other LLMs) wrapper, but the value this app is adding above ChatGPT alone:
  • The chorus architecture adds a legitimate benefit (and one that would be hard to do without this app!)
  • The agent adds a lot of extra context to the LLM query -- e.g. "don't hallucinate, return sources, etc." This is built into the series of LLM queries automatically. (In other words, great "prompt engineering"!)
  • Configurability -- I can tweak this to deliver the information to me however I want it! With the death of SaaS, this is the dream -- being able to build tools exactly as you want them!
Where this app will hit walls:
  • Analyzing tables/graphs -- say we upload a board deck. It will struggle with tables, figures, and graphs! (This is a known weakness of LLMs -- as they say, a picture is worth a thousand words.) There may be some tricks with tables and graphs, and that'll get me more into the weeds of LLM/AI capabilities. (A similar need: trying to figure out if a term sheet has been signed or not, which can be important if we have multiple drafts in a folder!)
  • Processing very long documents -- dealing with very long documents (e.g. a 10-K) is challenging. This is what things like RAG were built for -- but that adds a-whole-nother dimension of complexity.
  • Finding good data -- this is a forever challenge! For example, I typically get my private market data from Pitchbook now, but I couldn't get my ChatGPT API to integrate with Pitchbook. Crunchbase (via the chorus of LLMs) seemed to get pretty good information, but having good, reliable data will continue to be a need throughout the AI era.


Cash Flow Tooling for Fund Analysis

I've gotten quite "lazy" after working at a tech company for a while -- I know automation exists, and so I try very hard to av...