We started with 44 requests captured at discovery. Below is the full list of where we left off last time, kept on hand so nothing gets lost. Underneath, you'll see what we committed to and built for the first release — grouped around the five lifts that anchored the work — followed by what comes next.
Everything captured from the walkthrough, across ten categories. Collapsed by default — expand to browse, sort, and filter. Green check = built as part of the first-release commitment. Blue check = bonus item built along the way (not originally in scope). Yellow bar = partial — the core capability is in place but more work remains.
| # | Status | Item | Category | Pri | Notes |
|---|---|---|---|---|---|
| 1.1 | Re-anchor the model on the ledger as the single source of truth — every ledger entry appears as a line. | Data Model | M | Confirmed on the call; inverts the prior PDF-first view. | |
| 1.2 | Populate cash flow for every ledger line; keep status indicators dormant until a statement is received, then activate them. | Data Model | M | Grayed indicators become live on arrival. | |
| 1.3 | Source fund, asset, instrument, and date from the ledger (not the statement) for consistent naming and clean summation. | Data Model | M | Manager names vary and break consolidation. | |
| 1.4 | Source the tax breakout columns (ROC, income, ST/LT gain, CG-unclear, carried interest, withholding) from the statement. | Data Model | M | Breakout preserved for review. | |
| 1.5 | Visually distinguish ledger-sourced columns from statement-sourced columns. | Data Model | S | A clear visual divide. | |
| 1.6 | Auto-validate that the breakout sums to the cash-flow total; flag mismatches and auto-flag anything classified "unclear." | Data Model | M | Extends to the ledger-first model. | |
| 1.7 | Sort / filter records by "has statement" vs. "awaiting statement." | Data Model | S | — | |
| 1.8 | Consolidate or retire the standalone ledger view once its data underlies the main view. | Data Model | C | Avoids duplicate maintenance. | |
| 2.1 | Match a received statement to its ledger line even when the statement date and the cash-receipt date differ. | Matching | M | Cash can land after the notice date. | |
| 2.2 | Allow manual "this statement belongs to this ledger line" assignment when auto-match can't resolve it. | Matching | M | Human override for edge cases. | |
| 2.3 | Allow deleting a wrong / mis-attached statement and uploading the correct one. | Matching | M | Wrong statements occasionally arrive attached. | |
| 2.4 | Keep ledger-sourced fields editable behind a "you are updating the source of truth — confirm" prompt, flagged to the secondary reviewer. | Matching | M | Amend without a full reload that wipes approvals. | |
| 2.5 | Side-by-side ledger-value vs. statement-value column for at-a-glance verification. | Matching | C | — | |
| 3.1 | Add a second level of review (associate → manager) with distinct states: Review 1, Review 2, Final. | Review | M | Mirror the green (R1) / blue (R2) convention. | |
| 3.2 | Indicate provenance per field: tool-generated vs. first-level vs. secondary approval. | Review | S | Builds on existing logging. | |
| 3.3 | Filter by review state (e.g., "reviewed but not final-reviewed"). | Review | S | — | |
| 3.4 | Export reviewed results to Excel, adding columns for who performed the first and secondary review. | Review | M | Doubles as the audit / sign-off record. | |
| 3.5 | Permission control over who can sign off the secondary review. | Review | S | Export is the interim safeguard. | |
| 3.6 | Path to a single human-review model once the tool earns trust, following a trial period. | Review | W | Trust- and testing-dependent. | |
| 4.1 | Apply carried-interest logic: reduce the lowest tax-rate bucket first (LT gain to zero), then cascade to short-term / income. | Tax Logic | M | The conservative method. | |
| 4.2 | Recognize positive carry / clawback (carry repaid via capital call) and exclude it from the ingested output. | Tax Logic | S | Confirm exact treatment. | |
| 4.3 | Optional conservative default (income / short-term) for no-detail distributions, preserving the breakout for review. | Tax Logic | S | Avoid silent netting. | |
| 4.4 | On full secondary approval, collapse the breakout into the consolidated output columns the tax team ingests, pulled directly. | Tax Logic | M | Removes a manual hand-off. | |
| 5.1 | When a distribution lacks a breakout, auto-pull the most recent financial statement dated before it, for reference. | Ingestion | S | No extraction from the FS required. | |
| 5.2 | Per-row drag-and-drop to attach additional backup (quarterly letters, capital statements). | Ingestion | S | Requires secured storage. | |
| 5.3 | Pull in no-breakout statements for verification and highlight / filter records with no detail. | Ingestion | S | Surfaces the "needs attention" set. | |
| 5.4 | Detect scanned-image statements, allow manual open, and smart-match by filename (fund / date) to the ledger. | Ingestion | S | Detection + manual open are in place; filename smart-match is queued. | |
| 5.5 | Deeper OCR extraction from scanned statements. | Ingestion | C | Gather frequency data first. | |
| 5.6 | Compute cost / gain from the FS statement-of-investments when only an underlying investment is named. | Ingestion | W | Placed out of the first release. | |
| 6.1 | Roll statement line items into the required category totals (carry, realized gain/loss, return of capital, tax). | Playbooks | M | Totals are what the estimate needs. | |
| 6.2 | Capture per-underlying detail when it's low-lift across templates; otherwise totals suffice. | Playbooks | C | More detail welcome if not a burden. | |
| 6.3 | Build reusable manager / administrator playbooks, leveraging repeat managers across fund vintages and shared templates. | Playbooks | S | Reusable-playbook capability is in place; ongoing as managers are added. | |
| 7.1 | On successive quarterly loads, ignore identical already-reviewed rows; ingest only new or changed activity. | Loading | M | Prevents re-reviewing the same rows. | |
| 7.2 | Flag rows with the same date / fund / manager but different values (possible restatement) for keep-or-replace. | Loading | S | Can be material. | |
| 7.3 | Year-based tabs / grouping to keep the growing dataset manageable. | Loading | C | Forward-looking. | |
| 8.1 | API to Ultimus / ULP to auto-pull the ledger. | Integrations | M | The hands-off goal; placeholder in design. | |
| 8.2 | API to Arch for statements, with a SharePoint feed as fallback if Arch access isn't granted. | Integrations | M | An Arch API already exists on your side. | |
| 8.3 | Automated, frequent first-pass review so reviewers aren't hit with a quarterly batch. | Integrations | W | Long-term vision. | |
| 9.1 | Add thousands-separator commas to number displays. | UX | C | Quick readability win. | |
| 9.2 | Flexible terminology — relabel views and fields to match your language. | UX | C | Labels are adjustable. | |
| 10.1 | Domo reporting: deliver the fund and partner views first; defer the manager view. | Related | S | Separate team. | |
| 10.2 | Translation table mapping book components to manager "complexes" (one investment to multiple K-1s), for ECI / UBTI and the manager view. | Related | S | SCS supplies it; inevitable but can wait. | |
| 10.3 | Confirm the commercial model: app deployed in your environment, monthly cost based on usage, upkeep by KR. | Related | Dec | For discussion as deployment nears. | |
| 10.4 | Define "success" for the first release after reviewing this backlog. | Related | Dec | Sequenced after scope is agreed. |
Of the 44 items captured at discovery, we scoped 18 for the first release — and built 17 in full, with one partial. Along the way, three "Must" items came along naturally during the work. The five anchors below show how the smaller items grouped under each lift, so the count isn't a list of isolated tickets — it's five focused builds.