A deal pipeline that scores, underwrites and remembers
This is the application I built and run for a family office's investment desk: the place where an inbound opportunity becomes a record, moves through named stages with a responsible owner at each, is scored, underwritten and written up, and is either passed on or decided. It is captured here page by page as a static site over an invented pipeline, so you can click through exactly what the desk uses, with every deal, sponsor, document, email and score in it made up.
What it is, and who uses it
An investment desk sees far more opportunities than it can take: venture rounds, private-equity co-investments, credit, fund commitments, and multifamily, industrial and commercial properties, each arriving as a deck, an email thread or a phone call. The hard part is not finding deals; it is deciding them consistently, remembering why, and never letting one stall without anyone noticing. Before this application the desk tracked that in a spreadsheet and a shared inbox, and a deal's history lived in whoever had handled it.
The Deal Evaluator gives every opportunity the same path. It arrives by email or by hand and is drafted into a record; it is classified into one of seven deal types, each with its own diligence checklist, scoring rubric and weights; it moves through the stages of a pipeline where one person is responsible at every step; it is scored on questions with red-flag knockouts, underwritten against the sponsor's own numbers where the type calls for it, compared against its peers, and written up in a memo that grows with the stage. Follow-ups, sign-offs and the emails and documents that came with the deal all hang off the same record, so the page for a deal is its complete dossier.
The desk reads the pipeline board every morning, the analysts work inside the deal pages, and the principal reads the memos and the comparisons before a decision. A few rules keep it honest: a sign-off records whose court a deal is in but blocks nobody, so nothing can silently stall behind a missing signature; a memo section written at screening is carried forward rather than rewritten, so the reasoning at each stage stays on the record; and the AI only ever reads a deal's own documents, never the open web, so what it drafts can be checked against the file.
The capabilities
Intake and classification
A forwarded email or a deck is read into a draft record: sponsor, asset, ask, terms and the documents that came with it. The deal is classified into one of seven types (venture, private equity, credit, fund, multifamily, industrial, commercial), which decides its checklist, rubric and stage ownership from then on.
The pipeline
Every live deal on a board by stage, with its owner, its health, what it is waiting on and how long it has been there; the same book as a filterable table with lead, score, days in stage and follow-ups; an archive for the deals that were passed or snoozed, with the date they come back.
Stage ownership and sign-offs
One owner per deal type and stage, so a deal is never without a name on it. A sign-off puts a deal in the principal's court for review and records who moved it and when, but gates nothing: anyone can move any deal, and the system keeps the record of who did.
Rubric scoring
Per-type questions grouped into weighted sections, red-flag knockouts that cap a score however well the rest reads, a share reserved for the evaluator's own judgement, and a recommendation computed from the answers. The weights per type are edited in the app.
Underwriting
A standardised multifamily underwrite hung off the deal: every income and expense line driven by a method (the house standard, the trailing twelve months, the sponsor's budget or a custom figure), reconciled against the T-12 and the sponsor's numbers in one grid, with a five-year pro-forma, returns and the waterfall. A library of standard bands sets what the house expects for each line.
Comps
Peer, sale and prior-sale comparables summarised per deal with the subject held out of its own peer set, so a property is never compared against itself; rent, price per unit and cap rate against the set, with the sources recorded.
Stage memos
One memo that grows with the deal. A section written at screening is carried into the first assessment and the underwriting memo rather than rewritten, every section is attributed and dated, and the combined dossier points back to the sections instead of copying them.
Follow-ups and comparisons
Every reminder on the book by urgency and kind, including the re-evaluate snoozes that archive a deal until a date; side-by-side scores and a section radar for any set of deals, with one-click sets by type.
Documents, emails and the file
The documents and emails that brought a deal in and everything added since, on the deal's page, with the AI reading only those files when asked to summarise or draft.
Thirteen screens, one book

Dashboard
Open sign-offs, follow-ups due, stale deals and the recent activity feed on one screen, so the morning starts with what is waiting on whom.
Open →
Pipeline board
Every live deal on a board by stage, with its owner, its health, what it is waiting on and how long it has sat there; drag a card and the system records who moved it.
Open →
Pipeline table
The same book as a filterable table: lead, current owner, score, days in stage and follow-ups, sortable by any column and exportable.
Open →
A deal page
The record, the stage play, the checklist, the rubric scores, documents, emails, comps and who owns each stage: a deal's complete dossier on one page.
Open →
Underwriting
A standardised multifamily underwrite: the reconciliation grid against the T-12 and the sponsor, the five-year pro-forma, returns and the waterfall, every line driven by a stated method.
Open →
Comps
Peer, sale and prior-sale comps summarised with the subject held out of its own peer set, so a property is never compared against itself.
Open →
Stage memos
One memo that grows with the stage: a section written earlier is carried forward, attributed and dated, never rewritten.
Open →
Rubric scoring
Per-type questions, weighted sections, red-flag knockouts and a recommendation computed from the answers, with every step of the arithmetic on the page.
Open →
AI pre-scoring
The model reads a deal's documents and emails, proposes a score and a one-line reason for every rubric question, and writes a thesis, strengths and risks; the analyst keeps or changes each score.
Open →
Compare deals
Side-by-side scores and a section radar for any set of deals, with one-click sets by type.
Open →
Follow-ups
Every reminder on the book by urgency and kind, including the re-evaluate snoozes that archive a deal until a date.
Open →
Stage ownership
One owner per deal type and stage, so a deal is never without someone responsible for its next step.
Open →
Rubric weights
The scoring model per deal type: section weights, question weights and the share reserved for the evaluator's own judgement.
Open →What you are looking at
The Deal Evaluator is where inbound opportunities get decided. A deal arrives by email or by hand, is classified into one of seven types (venture, private equity, credit, a fund, or a multifamily, industrial or commercial property), and walks a pipeline of stages with a named owner at every step. Each type has its own rubric: weighted questions, hard red-flag knockouts and a computed recommendation, so two people scoring the same deal are measured against the same model.
Some of the parts worth a look:
- The underwriting module hangs a standardised apartment underwrite off a deal: every income and expense line is driven by a method (the house standard, the T-12, the sponsor's budget or a custom figure), reconciled against both source documents, and rolled into a five-year pro-forma with a refinance, an exit and the waterfall.
- The stage memo is one document that grows with the deal. A section written at screening is carried into the first assessment and the underwriting memo rather than rewritten, and the combined dossier points back instead of repeating.
- Sign-offs and ownership never gate anything, by design: anyone can move any deal, and the system records who did and whose court it is in, so nothing silently stalls without a name on it.
- The intake reads a forwarded email or a deck and drafts the record; the diligence checklist is per type, and the AI reads the deal's own documents when asked, never the open web.
How it is built
Python and Flask on PostgreSQL, server-rendered pages with Alpine.js for the interactive parts. The per-type configuration — checklists, rubric questions, section and question weights, stage owners, underwriting bands — is data edited in the app, not code, so the desk can change how a type is judged without a deploy.
- Email intake reads a forwarded thread and its attachments through the Microsoft Graph API and drafts the record; the diligence checklist and the rubric are instantiated for the deal's type the moment it is classified.
- Document reading, not web search. When the AI is asked to summarise, score or draft, it is given the deal's own documents and nothing else, so every claim it makes can be checked against the file it came from.
- Scoring is explainable. A recommendation is computed from the answers through the stored weights and knockouts, and the evaluation page shows every step of that arithmetic.
- Shared platform. Single sign-on with the office's other applications, the same database cluster, nightly backups to two object stores and a deploy on every push through a serialised safe-deploy.
- Over twelve hundred tests, checked by mutation so that a test which cannot fail is found before it is trusted.
The code itself is private. If you would like to walk through it, get in touch.