March 30 – April 1, 2026 latest
Screening rules
Screening rules now evaluate as an equation: metric → operator → value. You pick a metric on the left, an operator in the middle (greater than, less than, etc.), and a value on the right. If the condition is true, the application is rejected. The right side can be a fixed number or another metric. Click “Use metric instead” to switch. When comparing two metrics, a multiplier is applied to the right side. For example: avg daily balance < 0.3 × avg monthly revenue — this rejects any book where the average daily balance is less than 30% of average monthly revenue. When a book is screened, every rule is evaluated individually. Each one shows whether it passed or failed, the equation that was checked, and the actual numbers that were plugged in. The overall result is pass only if every rule passes. Screening is now computed live — updating a rule takes effect immediately on all books without re-parsing.Email inbox reply control
New “Send Replies” toggle in inbox settings. When disabled, incoming emails are still parsed and screened, but no completion or failure emails are sent back.March 16–20, 2026
Email synopsis
Rebuilt the completion email to mirror the synopsis page. Overview with business info and account chips, cash flow cards (avg monthly revenue, avg daily balance, true revenue, days negative, NSF, overdraft), debt positions table with funded/paid totals, monthly bank statement breakdown with negative days and DTI, book summary, and a web research preview. All metrics respect exclusions. Preview at/api/books/{id}/email-preview.
March 9–13, 2026
Screening rules
Screening rules let you set conditions against the metrics the parser extracts. They run on every scrub — the deal passes or gets flagged with the exact reason. Supported metrics: avg daily balance, negative days, true revenue, avg monthly revenue, avg monthly deposits, total loan payments, DTI ratio, closing balance, opening balance, total days, lowest balance, deposit count, withdrawal count, true revenue transaction count, MCA position count, state code. Operators: greater than, less than, equal, not equal, greater or equal, less or equal. Rules can target all states or specific states. A deal is rejected if any rule’s condition is met. Changing a rule re-screens every book the org has ever parsed — the metrics were already stored from parsing. Import from document. Drag in a PDF, spreadsheet, screenshot, or Google Doc containing a funder’s criteria. A constrained agent reads the document, maps requirements onto the supported metrics and operators, and inverts each requirement into its denial form (“minimum $25k monthly revenue” becomesavg_monthly_revenue < 25000). Anything that doesn’t map to a real metric is dropped — structurally impossible to express. You review checkboxes and approve what applies.
Credit report parser
- Authorized user detection. The parser now only sets
is_authorized_user=truewhen the report explicitly says “Authorized User” or “AU.” Joint, co-signer, and individual accounts are no longer misclassified. - Collateral type on revolving accounts.
collateral_type=unsecuredis now only assigned to installment personal/term loans. Credit lines, LOCs, and HELOCs getNonecollateral, keeping them out of the Unsecured Loans section. - Last Reported date accuracy. Field description clarified to point at the “Last Reported” / “Date Reported” label specifically, reducing misreads.
- Creditor name extraction. The extraction prompt now uses realistic creditor name examples (
SYNCB/AMAZON,BK OF AMER,THD/CBNA) and explicitly tells the parser that abbreviated/slash-delimited names are valid accounts. - Fraud alert and security freeze detection. New optional fields
has_fraud_alertandhas_security_freezeon the entity model. Existing templates are unaffected. - Bureau extraction model upgrade. Bureau extraction was running on an older model. Upgraded to match the rest of the parsing pipeline for better accuracy and reliability.
- Late payment history field. New
worst_delinquency_daysfield captures the worst number of days late (30, 60, 90, etc.) independently of account status. Accounts that are closed but have late history now surface in the delinquencies section of both templates.
LOC Scrub template
- Charge cards in revolving section. Charge accounts (e.g. Amex) were not showing up. The revolving filter now includes both
revolvingandchargeaccount types. - Revolving account classification guard. The unsecured loans filter now rejects revolving accounts as a safeguard against parser mislabeling.
- Closed revolving accounts with balances. Closed cards that still carry a balance now appear in the Revolving Accounts table, marked with
(CLOSED)prefix and red highlight. Paydown columns show the full balance (pay to zero) instead of 25% utilization. - Fraud and security freeze alerts. If the credit report contains a fraud alert or security freeze, a red bold warning appears in the header area under the logo.
Credit Full template
- AU accounts excluded from DTI by default. Authorized user accounts now default to
In DTI? = No, matching the LOC Scrub behavior. The toggle remains editable. - Inquiries filtered to last 12 months. The inquiries section now only shows hard pulls from the last 12 months, sorted newest first.
February 23–27, 2026
NSF and Overdraft tag split
The combinednsf_overdraft tag has been split into two separate tags: nsf and overdraft.
- NSF = the payment was rejected. It did not go through. The money never left the account.
- Overdraft = the payment went through, but pushed the account balance negative. The bank covered it.
nsf_overdraft in their tag arrays. The backend analytics layer treats legacy nsf_overdraft tags as matching both nsf and overdraft so existing books do not lose their data. The frontend renders the old tag with its original “NSF/Overdraft” label and color. On reparse, the old tag is replaced with the split tags automatically.
French-Canadian bank support
All five deterministic tagging functions (check, wire, NSF, overdraft, stop payment) now recognize French-language transaction descriptions from Quebec credit unions and Canadian banks. Check patterns:Chèque #740,Chèque, NO.740,Dépôt chèque,Chèque certifié
Virement entrant(incoming wire),Virement sortant(outgoing wire),Virement électronique(electronic wire),Virement interbancaire(interbank wire)
Fonds manquants(missing funds),Fonds insuffisants(insufficient funds),Sans provision(without provision),Chèque retourné(returned cheque),Effet retourné(returned item)
Découvert(overdraft),À découvert(overdrawn),Solde négatif(negative balance)
Arrêt de paiement(stop payment),Opposition(European French banking term for stop payment)
Monthly spreadsheet restructure
The monthly bank statement spreadsheet layout was restructured. The stacking table and offer calculator now flow vertically below the pivoted deposits table instead of being placed side-by-side. Stacking rows are grouped and sorted by loan type. Conditional formatting highlights active vs. inactive positions. NSF and Overdraft are separate rows in the pivoted deposits table.File management
New file list view replaces the old files tab. Documents have a dedicated panel component with PDF, CSV, and image viewing, plus a toggle to the parsed transaction sidebar. File uploads, downloads, and document exclusion are handled inline.Book page layout
The book page tab bar collapses into a popover on narrow screens. BookInfoBadges supports a compact mode. The document viewer was refactored into a standalone DocumentPanel component. Debt board defaults to expanded view and is responsive on mobile.MIME detection
File type detection switched from manual magic-byte checks to libmagic with filename extension as fallback. Fixes misclassification of edge-case file types during document upload and parsing.Analytics: payment processor and stop payment metrics
Payment processor totals/counts and stop payment totals/counts are now tracked at the statement and book level alongside existing tag-based metrics (NSF, overdraft, owner transaction, internal transfer, bank fee).February 16–20, 2026
LOC Scrub template rebuild
The Credit Report LOC Scrub spreadsheet template was rewritten from scratch.- Each bureau tab has a structured header block with customer info, underwriter, and estimated BLOC summary
- Delinquencies surface in their own section before the revolving accounts table. Charged off, collection, bankruptcy, and delinquent accounts are separated
- Revolving accounts table highlights closed accounts in light red and authorized-user accounts in light blue. 50%/25% utilization columns are live Excel formulas
- DTI panel in columns K-L pulls total monthly debts from the hidden
_RawAccountssheet via SUMIFS. Annual income is a user-input cell; monthly income and DTI ratio calculate automatically - Logo positioning fixed with pixel-level offsets so it renders correctly across Excel versions and zoom levels