> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lendpathway.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Changelog

> Everything we ship, week by week.

## September 18, 2026 <sup>latest</sup>

### Email intake

**Connected Gmail: forwards from your own team were being skipped. Fixed.** The poll that reads a connected inbox excludes mail sent by the inbox itself, so Pathway's reply emails never get ingested. That exclusion was written as Gmail's "me", and Gmail expands "me" to include every "send mail as" alias on the account. If a teammate had their own address set up as an alias on the shared inbox, everything they forwarded into it was excluded too. The exclusion now names the connected mailbox's exact address and nothing else.

**Each poll now covers the previous hour.** Polls used to look back a few minutes past the previous one. An email that Gmail's search index surfaced late, or whose download failed once, could fall outside the window and never be seen. Polls now look back 60 minutes. Emails already in intake are skipped by id before any download, so the wider window adds no work.

**The Intake Inbox page reports when polling is stopped.** A banner appears when the poller could not complete a cycle in the last 10 minutes or is idling for a known reason: no inbox selected, the inbox owner left the organization or disconnected Gmail, or Gmail revoked access. The banner shows the reason and clears when polling resumes.

### Email intake settings

Three additions in the Email Intake settings dialog.

**Which emails to process.** Decides whether an email becomes a book, based on the types of files attached. Zip files are expanded and links in the body are downloaded before the check, and file types are detected from the file contents, not the filename.

* **Has a PDF or image.** The email is processed when at least one attached file is a PDF or an image. Every file on a qualifying email is processed. An email whose files are all something else, such as HTML download stubs, spreadsheets, or a signature logo, is recorded with the status "no attachments" and the skipped filenames, and no book is created. This is now the default for every organization. Before this change such emails created a book that failed with "No supported documents found."
* **Has a PDF.** Same, but only a PDF qualifies.
* **Every email.** Any attachment creates a book. This was the previous behavior.

**Ignored senders.** A list of email addresses. Mail from these addresses is never processed, in either intake mode. The connected inbox's own address is always treated as ignored and does not need to be added.

**Who can change the connected inbox.** The connected inbox can be changed or removed only by the user who connected it. Other admins see the inbox address and the owner's name in place of the selector, and can change every other setting. Saving intake settings now requires the admin role.

***

## September 7–11, 2026

### Screening rules can match categories

A screening rule used to do one thing: compare a number against a threshold or against another number, optionally limited to one state or industry. Rules can now also check what kind of business a book is. In the rule builder, choose **Match a category** instead of **Compare a number**, pick the category, and pick the values it must be one of, or must not be one of.

What you can match on:

* **Entity type.** The legal structure on the loan application: sole proprietorship, LLC, corporation, partnership, nonprofit, or other. "Reject sole proprietorships in California" is one rule: target California, then require Entity Type to be one of Sole Proprietorship.
* **Position funders.** The funders behind the loan positions found in the bank statements. Pick funders from your directory, with their logos, and say whether any position or every position must match. **Active Position Funders** looks only at MCA positions still pulling payments. **Position Funders** looks at every position, active or closed. "Reject if any active position is from OnDeck or Bitty" is one rule.
* **Business state.** The state on the loan application, the primary owner's home state, and the state printed on the bank statements, each as its own category.

**How funder matching works.** A position matches a funder when it has been attributed to that funder in your directory, whether by the parser, by a tag rule, or by you on Edit Position. A position the parser could only name, with no directory match, never matches a rule. If a funder keeps showing up unattributed, add it to the directory with the transaction descriptions it appears under, or add a tag rule for it. Deleting a funder does not delete the rules that name it; those rules show "Unknown funder" and stop matching on new parses. Resetting the directory to defaults keeps every funder whose name is still in the defaults, so rules, tag rules, and positions stay attached.

**Every rule now reports one of four outcomes:** it failed, it passed, it was skipped because the book is outside the rule's state or industry, or it could not be evaluated because the book is missing something the rule needs. A rule that cannot be evaluated never rejects a book.

Two changes to where values come from. Both apply to existing books the next time they are viewed:

* **The state a rule targets now comes from the loan application.** It used to come from the bank statement address, which is now used only when the book has no application. A book whose application and statements disagree on state may match different state rules than before.
* **Business name is now the legal name on the loan application,** with the bank statement name as the fallback. This applies to composer templates, Salesforce pushes, and contract fields, and matches what LendSaaS and OrgMeter already sent. Business Name and Business Name (Bank Statements) can both be picked in contracts, the composer, and the Salesforce mapping.

One more correction: a book with no included bank statements now reports its bank metrics as unavailable rather than zero. A rule like "average monthly revenue below \$10,000" no longer rejects a book that simply has no statements yet, and LendSaaS and OrgMeter pushes for that book send the revenue reported on the application instead of zero.

Existing rules keep working exactly as before. There is nothing to redo.

The funder field on **Edit Position** was rebuilt with the same picker: a search box, logos, and the current funder shown by name even if it has since been removed from the directory.

### Credit report parser

The parser used to look for a FICO 8 score only. Reports that print a different score, most often VantageScore 3.0, sometimes came back with a bureau's score missing. The parser now extracts every score printed for each bureau along with its scoring model (FICO 8, FICO 9, other FICO models, VantageScore 3.0 or 4.0), and picks one as the bureau's score: FICO 8 if printed, otherwise another FICO model, otherwise VantageScore. The model is shown next to the score on the Credit Report tab, in the credit exports, and on hover in the books list. Books parsed before this release show the score without a model until they are parsed again.

A bureau that prints a score or inquiries but lists no accounts, as with a thin or frozen file, used to be dropped from the book entirely. It now stays.

The worst days-late figure on an account is now taken from the late payment events the parser captured, and is empty when there are none, so an account cannot show a delinquency the report does not print.

A closed or paid account whose payment status still reads "Current" is now recorded as closed. The LOC scrub export treats an account as closed if the report marks it closed or its status is closed, so a closed account with a derogatory status shows as closed, with its full balance as the paydown.

Export changes:

* Credit Full: the score block is titled "Credit Score" and shows the model under each score. A bureau with no score shows a dash instead of 0. Credit history and highest limit no longer use functions that older Excel versions and some viewers cannot evaluate, which showed as `#NAME?`.
* Credit Summary: the scores table has a Model column.
* LOC scrub: a Model row under the scores, the inquiry count labeled with its six-month window, and a new Combined tab, placed first. It lists every revolving account and unsecured loan across all bureaus once, in the same layout as the bureau tabs, with a Not Reported By column naming the bureaus that do not carry the account. Blank means every bureau reports it; only bureaus in the report are considered, and a line under the scores says which bureaus those are when the report has fewer than three. Its DTI panel sums the merged accounts, so a debt reported by one bureau counts once. Accounts are matched across bureaus by creditor name and month opened, and each row takes its figures from the bureau that reported it most recently.

On the Credit Report tab, the score card is labeled "Credit Score" with the model under the number, and the inquiry count no longer says twelve months; it is the count on the report.

***

## August 31 – September 4, 2026

### Loan application parser update

The loan application parser pulls more out of an ISO application and stores it in a cleaner structure.

What's new on the parsed application:

* **All owners, not just one.** Every owner listed on the form is captured, each with name, address, SSN, ownership percentage, credit score, phone, and date of birth. One is marked as the primary owner.
* **The originating ISO.** If the form carries the broker's branding, the ISO or shop name, email, phone, website, and address are parsed out.
* **Stated time in business.** Forms that say "5 years in business" instead of a start date now get that captured too. Screening's time-in-business metric uses the start date when present and falls back to the stated duration.
* **Application date.** The date the form was completed, when shown.
* **Entity type as a fixed value.** LLC, corporation, sole proprietorship, partnership, nonprofit, other, or not stated, instead of free text.

Business details, address, contact info, tax ID, industry, requested amount, use of funds, and the self-reported financials (monthly and annual revenue, cash advance balance, daily balance, credit card sales, employee count) are all still there, now grouped under the business instead of mixed in with owner fields.

Application metrics in screening were renamed to match. The self-reported financials are now "Reported Monthly Revenue (ISO App)" and so on, and owner fields are "Primary Owner Name (ISO App)" and so on. Screening rules, contract field mappings, and composer templates that used the old names were updated in place.

LendSaaS pushes now send every owner from the application, including date of birth and phone.

**Existing books were migrated.** Every loan application parsed before this release was converted to the new structure in place, so older books keep their screening metrics, template exports, and CRM pushes exactly as before. Fields the old parser never captured, such as owner date of birth, additional owners, and the originating ISO, are empty on those books until the application is parsed again. A few values the new structure doesn't accept were cleared rather than guessed: non-US states, ownership percentages over 100, and unreadable dates.

We plan to add a bulk re-parse for loan applications so those fields can be filled in on older books selectively, without re-running the full parse on every document in the book.

### Hard declines in LendSaaS

Screening rules can now hard-decline a LendSaaS deal. Each rule has a **Hard decline** toggle in the LendSaaS Decline Reasons modal. When a hard-decline rule rejects a book, the auto-created deal is forced straight to **Declined** in LendSaaS, with the mapped decline reasons attached in the same call.

A hard decline also triggers LendSaaS's decline email to the ISO (never to the merchant).

This is different from the default behavior, which still applies: a normal rejection attaches the mapped reasons to the deal and moves it to whatever "fail status" you configured in auto-create settings. A hard decline skips that status entirely — the deal lands on Declined, full stop.

One requirement, imposed by LendSaaS itself: a decline must carry at least one reason. The toggle stays disabled until the rule has a decline reason mapped, and clearing a rule's last reason disarms it. If several rules reject the same book and any one of them is a hard decline, the deal is hard-declined with the combined reasons from every rejecting rule.

### Book and deal IDs in the completion email

The parse-complete email now shows the Pathway book ID in the footer, and — when the book is linked to a LendSaaS deal — the LendSaaS deal number next to it. Previously the book ID only existed inside the button links, so any system (or person) trying to reconcile an email with a book or deal had to dig through URLs. Now it's printed plainly above the copyright line.

***

## August 24–28, 2026

### Parses survive provider overloads

When the model provider returns an overload error mid-parse, the pipeline now steps down to a fallback model for the remaining attempts instead of retrying the overloaded one until the parse fails. Rate limits still retry the same model and genuine errors still fail fast; the fallback only engages on capacity errors. Parses that would have failed during a provider incident now complete.

### The changelog, in the app

This changelog now lives inside Pathway. Open it from the user menu and it slides over whatever you're working on, synced from the docs site.

***

## August 17–21, 2026

### Liens and litigation through Baselayer

Business verification now starts from the book. Book Actions has a Baselayer section that prefills the business name, address, EIN, and website from the parsed application, so a verification runs without retyping anything, and the latest search is stored against the book across refreshes.

From a completed verification you can order two follow-on checks: a lien search and a litigation/bankruptcy search. Results render in Liens, Litigation, Website, and Industry tabs on the book and on the Baselayer page. Lien filings list the states searched, docket results list the cases, and long-running searches now resolve through webhooks instead of sitting on pending. The report also reads plainer: both grade boxes explain their A–F scale, and match results say "Exact match", "Same city", or "Similar" instead of raw codes.

### Theme Studio

The theme picker grew into a studio: seven color presets with swatch previews, four font options, and a Theme Studio that generates a complete light and dark palette from any seed color, in styles like Balanced, Pastel, Bold, and Muted. Custom themes persist per browser.

### Parsing model upgrade

Bank statement extraction and tagging, credit report parsing, tampering detection, and chat all moved to the newest model generation.

### Monthly columns layout

In the monthly columns export, the offer calculator now sits to the right of the deposits and stacking tables, matching the classic underwriting sheet layout, with the notes boxes directly under the stacking table.

***

## August 10–14, 2026

### Credit card statements

Pathway parses credit card statements now. Upload one and it's recognized automatically; a dedicated pipeline extracts the issuer, card product, statement period, balances, and every line item, typed as purchase, payment, credit, fee, interest, or cash advance. Statements that group spend by employee card keep per-cardholder attribution.

Books with parsed card statements get a Credit Cards tab: total spend, a spend-over-time chart, a category breakdown, a recurring-charges panel, an account selector for multi-card books, and a full transactions table filterable by category, month, type, and one-time versus recurring.

### Simple synopsis, rebuilt

The Simple layout of the Overview tab was rebuilt end to end: a header listing each bank account, cash flow over time (monthly revenue and withdrawals with average daily cash), a cash health panel, debt commitments with funder, loan type, and estimated payoff progress, and a statement history table with a link to the source statement on every row.

### Credit reports: derogatories need printed evidence

The credit report parser no longer takes a derogatory status on faith. It captures dated late-payment events and verbatim remarks per account, and a final check downgrades any derogatory it can't back with captured evidence. Statuses printed on the report, like "Collection", are never downgraded. Counter-format lates ("Times 30/60/90 Days Late: 1/0/2") count as evidence for vendors that print counters instead of a history grid, ambiguous years resolve against the report's own date, and an account whose bureau column is blank is skipped for that bureau rather than borrowed from a neighboring column.

The LOC scrub export builds on this: derog sections are scoped per bureau, a Late Date column shows when the worst late happened, "Late N Days" replaces the generic "Delinquent" whenever the severity is known, inquiry counts anchor to the report date over a six-month window, cards with no printed limit fall back to high credit with a "(NO LIMIT)" tag, and authorized-user derog rows carry an "(AUTH)" prefix.

***

## August 3–7, 2026

### Composer

A new Composer page under Actions. Organizations write their own email templates instead of using fixed built-ins. Templates use `{{token}}` placeholders that fill from the book's metrics, plus business name, book name, and months of statements; an "Insert metric" picker targets the subject or body, and a live mockup previews exactly what will be sent. A token with no value renders as "N/A", never raw braces. Each surface that sends email picks its own default template.

### Partner matching remembers what you sent

Every deal email sent to a funding partner is now recorded. The Send Deal dialog shows a Sent badge with relative time on each partner, and the default selection seeds to passed partners who haven't already received the deal. There's a partner search box, a one-click filter to passed partners, and each partner shows its passed criteria as N of M.

### Plaid balance accuracy

Monthly balances from Plaid asset reports now anchor on the institution's last stated ending daily balance instead of the "data as of" current balance, which can include pending activity and offset every derived number by a constant. Accounts whose ledger fails balance reconciliation are excluded from analytics entirely rather than contributing wrong numbers. The extractor also handles dates that wrap across two lines and merged adjacent value cells.

### Reconciliation warnings on the book page

When statements fail balance reconciliation, an amber banner appears on the book with a "Review issues" popover grouping failures by document: the account, the statement period, the dollar discrepancy, and the reason. Excluded documents don't trigger it, and a dismissal holds until a new failure appears.

### Dexly per-account tabs

The Dexly underwriting export adds one tab per bank account on multi-account books, each carrying the bank block scoped to that account. Months where an account has no ledger are skipped rather than zeroed so averages aren't dragged down. The deal sheet stays the combined view and the only sheet with credit, positions, and pricing.

***

## July 27–31, 2026

### Send deals to funding partners

A Send button on the book's Partner Matching section opens a Send Deal dialog. Matched partners are listed as recipients at their submission emails with their rules-passed counts, the subject and body prefill from a deal-submission template, and you pick which of the book's documents to attach, plus an optional rendered underwriting spreadsheet. A pixel-accurate preview shows the exact branded email per recipient. Sends go out from your own connected Gmail, one individually addressed copy per partner, with per-recipient success reported.

### Metrics in the books list

The books table can show real underwriting numbers. A snapshot of key metrics is stored at parse time, and a "Show metrics" menu adds optional columns: true revenue, average monthly revenue, average daily balance, most recent month revenue, average monthly negative days, debt-to-income, active MCA positions, FICO, and a screening column with pass/fail and rules-passed counts. A Metrics filter sets minimum and maximum ranges on any of them, so "passing books with true revenue over \$50k" is a filter on the list, not an export. A one-time backfill in Settings computes the snapshot for existing books, with a progress bar you can leave and come back to.

### Screening reads the application

Thirty-three application facts now flow through the platform. The numeric ones are screening criteria: stated monthly and annual revenue, requested amount, ownership percentage, stated credit score, employee count, current advance balance, stated average daily balance, and monthly card sales. Rules can compare what the applicant claims against what the statements show. The string facts (legal name, DBA, EIN, addresses, owner details) fill contract templates, and a book with only a loan application can now fill a contract; bank statements are no longer required.

### Queued and Stopping parse states

Parse badges distinguish Queued and Stopping from Processing, and stopping works while a parse is still queued. Status polling now fetches only active parses, so open pages refresh promptly when a parse finishes, with far less background traffic.

***

## July 20–24, 2026

### Partner matching

A new Partner Matching page under Actions. Build a directory of funding partners, and give each one guidelines: screening rules written with the same rule builder your org policy uses. On any parsed book, the Partner Matching section evaluates the deal against every partner's guidelines and shows a verdict per partner, with each rule's resolved reason. Rules outside their target or missing a metric show as quiet skips rather than failures, and a Re-run button re-evaluates on demand.

### OrgMeter

A new OrgMeter card on the Integrations page. Connect with a Lead API key (verified before saving), and any parsed book gets a Push to OrgMeter action that creates a lead carrying the business fields, contacts, requested amount, and industry, with statement-derived numbers overriding self-reported figures where both exist. All of the book's documents upload to the lead, typed. Pushed books show a "Pushed to OrgMeter · Lead #N" badge, duplicate pushes are blocked, and an auto-push toggle sends every book that parses with real bank data.

### A dedicated Screening page

Screening policy moved out of settings into its own page: an on/off switch for the whole policy, a Rules tab with the rule builder, and an Industries tab for prohibited industries.

### Reference pages

Two new pages. Financial Institutions is a searchable directory of US banks and credit unions: logo, type, headquarters, assets, registry ID, website. Reference is a gallery of every transaction tag Pathway uses, with color chip, description, and examples, loan tags first. The Funders directory was also rebuilt as a ranked, searchable table with detail dialogs, and table search across the app now ranks results by relevance instead of plain substring filtering.

### Also this week

Contracts, Partner Matching, and Notes grouped into a single Actions tab on the book page. The books table gained a filterable Source column: Email, Salesforce, LendSaaS, API, or Manual. Chat's model lineup moved up a generation across Lightning, Classic, and Pro, tuned to answer quick questions directly.

***

## July 13–17, 2026

### Templates backed by live Google Sheets

Spreadsheet gallery templates can now be backed by an externally maintained Google Sheet. Pathway exports the sheet and fills its named ranges with book data instead of rebuilding the workbook in code, so a template tracks the workbook its owner actually maintains. Templates using modern Excel functions (XLOOKUP, IFS, FILTER) no longer render as #NAME? errors when the export opens in Excel.

### LendSaaS deals get their worksheet filled

The LendSaaS connector accepts a Google service-account key. When a push creates a new deal, the deal's Google worksheet fills once with a Pathway-generated workbook, and the link posts as a note on the deal. The auto-fill deliberately never overwrites underwriter edits; a Replace Google Sheet action on the book regenerates the full sheet explicitly, with confirmation.

### Dexly UW template

A new template in the gallery: a Dexly underwriting worksheet with a monthly bank summary, credit snapshot, open MCA positions with gross percentage of deposits, and buy/sell-rate pricing tools. The Bank Deposits column carries true revenue so pricing runs off real revenue, and MCA Payments counts only MCA-tagged debits.

### Plaid: duplicate reports handled

Books with multiple Plaid asset reports covering the same account no longer double-count transactions. The best-coverage instance of each account is kept, and a fully redundant report is marked with a clear message saying every account in it is already covered. Hiding a Plaid document in the Files tab now hides all of its per-month statements everywhere: the statements table, the CSV export, the templates.

### White-label watermark logo

Settings → Organization gained a Watermark Logo upload. When set, PDF exports render your logo in the header instead of Pathway's, starting with the Bank Statement Report. Credit report extraction also moved to a stronger model this week.

***

## July 6–10, 2026

### Screening rules with windows and account scope

Each side of a rule equation can now be scoped: a window (whole book, most recent month, previous month, last 3 months) and an account scope (all accounts or primary only). Cross-window rules become directly expressible, like `most recent month revenue < 0.7 × last-3-months revenue`. Every metric works under every scope because analytics recomputes over the slice, and an empty scoped period reports the metric as unavailable rather than zero. The rules table shows scope badges like "Last 3 mo · Primary acct".

### A clearer screening verdict

The screening popover on the book page was redesigned. It states plainly whether deny rules triggered, and each rule renders its equation twice: as variables, and with the book's actual numbers substituted in. Rules that didn't apply show as Skipped rather than silently passing, with scope chips on scoped rules.

### Balances from the combined cash position

Negative days, average daily balance, days under threshold, and peak and lowest balance are now computed from the combined end-of-day cash position summed across all included accounts. A book with three accounts gets one honest book-level balance curve instead of per-account numbers folded together after the fact.

### Splash template

A new template in the gallery recreating the SPLASH broker offer-fitting worksheet: a fixed January-to-December monthly table, a blank mirror table for hand entry, the current MCA stack with percentage of average deposits, and a live offer calculator with a holdback cap check.

### Frontier web research

A third web research mode in Settings → Document Parser: Frontier, running the strongest available model, above Pro and Classic.

***

## June 29 – July 3, 2026

### Baselayer business verification

A new integration: Baselayer, for KYB. Connect it from the Integrations page and a Baselayer page appears in the sidebar. Run a business search with the legal name, address, and optionally EIN and website, and get back a verification report: KYB and risk scores, match indicators for name, address, TIN, and officers, entity type, incorporation date, and time in business, with tabs for details, addresses, SOS filings, officers, and watchlists. Searches complete in the background and past searches recall from a history dropdown.

### Contracts fill from the book

Every book has a Contracts tab now. Your contract templates show as cards with PDF thumbnails and mapping badges; clicking one generates a filled PDF from that book's metrics and opens a preview with download. In the contract designer, a new Metric field type maps any spot on the PDF to a Pathway metric through a searchable picker, and generated values format exactly as screening formats them. Unparsed books show a hint to parse first, and encrypted PDF templates are normalized on upload so they no longer break generation.

### One metric picker everywhere

The metric dropdown in the screening rule builder became a full dialog: search, subject groups, highlighted matches, and a plain-English description for every metric. Contract field mapping uses the same picker.

### Intake through your own Gmail

Intake settings gained a second way to receive deals: Connected Gmail. Instead of forwarding to your Pathway address, the inbox polls a team member's connected Gmail directly, and replies to submitters send from that person's own address rather than the bot. Reply routing is snapshotted at ingest, so switching modes mid-parse can't misroute a reply. The sender whitelist can also be switched off entirely for dedicated deals mailboxes.

***

## June 22–26, 2026

### Faster bulk downloads

Bulk ZIP downloads of a book's documents got noticeably faster: files fetch from storage in one batched call, watermarking and zipping run off the main thread, and already-compressed PDFs skip pointless re-compression. The watermark itself looks better, keeping the logo's aspect ratio and rendering at double resolution.

### Filter transactions by document

The transactions tab gained a Document filter: one option per statement file, titled by its statement period, with the accounts it covers and the original filename underneath. The old truncated Doc ID column became a readable Document column showing the period, and account filter options show the bank name and masked number, primary account first.

### Full transactions inside the document viewer

Opening a document and flipping to its transactions now shows the complete transactions table, with filters, tag editing, and bulk selection, scoped to that document. The viewer header shows a status pill: Reconciled, N failed, MTD reconciliation skipped, or the failure reason. The bank statements table highlights the row of whichever document is open.

### Per-account cash flow calendar

The daily balance calendar gained an account selector on multi-account books: view any single account or the combined position. It's purely a view lens and never touches exclusions.

### Readable web research

The web research card renders its report with real typographic hierarchy: headings, lists, quotes. Every link shows its destination's favicon inline.

***

## June 15–19, 2026

### Statement rows open the source PDF

In the synopsis bank statements table, clicking any row opens that statement's PDF. Periods merged from several PDFs (banks that emit one file per account per month) expand into per-account rows, each opening its own source document. Every number on the page is one click from the statement it came from.

### Plaid parsing fixes

Asset-report PDFs whose header labels arrive concatenated on one line ("INSTITUTION: X ACCOUNT NAME: Y", seen with Navy Federal among others) now parse correctly, and institution headers no longer bleed into the previous account's last transaction description.

### Fixes

The per-account CSV export and the copyable bank statements table skip the synthetic combined row that duplicated the individual accounts in multi-account periods. Org admins can remove members again; the action was wrongly restricted.

***

## June 8–12, 2026

### Originators group themselves

When a new originator emails the intake inbox, Pathway auto-creates an originator group named after the firm's email domain, with the website attached and a domain matcher claiming the root, so every mailbox and subdomain of the same firm lands in one group. Personal addresses (Gmail, Yahoo, and about a hundred other freemail domains) are never grouped. Creating or editing a group's matcher rules immediately claims all existing ungrouped originators that match, and deleting a group frees its members to re-match later. The originator dialog gained a searchable group picker for manual assignment.

### LendSaaS reliability

Declines now go through LendSaaS's dedicated decline-reasons endpoint, with your configured decline status taking precedence, and the document-upload timeout went from 15 to 60 seconds so large syncs stop failing mid-transfer.

***

## June 1–5, 2026

### Guest role

Organizations have a third role: Guest, read-only. Guests see everything (books, analytics, documents), can download documents, and can export to Google Sheets, but every write is blocked server-side.

### The book page works on a phone

On phones and portrait tablets, the transactions table becomes a card stack: each transaction is a tappable card with the date, account, full description, funder badge, tag chips, and the amount with running balance. Filters, sorting, and pagination carry over from the desktop table, and the tab bar becomes a scrollable strip.

***

## May 25–29, 2026

### Originator Groups

Senders are now called Originators, and firms became first-class. A new Originator Groups page joined the Intake section: a group is the shop that individual originators belong to, with a name, website, notes, and matcher rules (exact email, domain, or domain suffix) that automatically assign incoming originators. An originator's group is derived from those rules, existing data was backfilled, and every new book snapshots which group submitted it at creation, so "which firm sent this deal" stays accurate even if the rules later change.

### Multi-account negative days, corrected

For merchants with multiple bank accounts, days negative and days under threshold in the combined row are now the maximum across accounts per month instead of the sum. Calendar days aren't additive: five negative days on each of three accounts is five days, not fifteen. Event counts like NSF still sum. This corrects displayed analytics, screening inputs, and exports.

### Hide month-to-date statements

A new option in Settings → Document Parser auto-excludes MTD bank statements from totals, averages, and downstream calculations at parse time. They still parse; they just don't weight any aggregates.

### Private spreadsheet templates

The template gallery supports private templates visible only to designated organizations. The list, the default-template resolution, and generation are all org-gated, so a private template never appears for anyone else. The first customer-specific underwriting exports shipped on this.

***

## May 18–22, 2026

### The Application tab

Books with a parsed loan application get a dedicated Application tab: parsed fields on the left, the original PDF rendered beside them, with a document picker when there are several. You verify extracted values against the source without leaving the page.

### Contract designer autosave

The contract designer autosaves your field layout three seconds after you stop editing and warns before you navigate away with unsaved changes.

### Business info accuracy

Bank statements proved an unreliable source for EINs, so the EIN field no longer appears on statement-derived surfaces: the book badges, the synopsis email, the monthly columns export. Address fields are optional in extraction rather than forced, and Plaid parsing no longer fabricates "Unknown" city values. Blank shows as blank instead of wrong.

### Monthly columns refinements

ISO/Broker now auto-fills from the book's intake lineage and Bank and Account # from the parsed ledgers, a Pathway Link cell points back to the book, and the business-info table gained Google Maps, Yelp, Facebook, and Instagram rows plus a Total Deposits row. A notes grid sized for handwriting sits under the offer calculator, and the stacking sheet shows a row for just-funded advances with no payment schedule yet, so brand-new positions stay visible.

***

## May 11–15, 2026

### Contract templates

A new Contracts page in the sidebar. Upload a PDF to create a reusable funding-contract template, then open the visual designer and drag fields onto the pages: text, signature, image, date, checkbox. Templates save, rename, and delete from the same page.

### Vanta theme

A sixth theme: pure black. A true 0% black canvas with tuned greys and a barely-lifted sidebar, alongside Ocean, Ember, Forest, Violet, and Rose.

### Forwarded mail resolves correctly

Emails routed through Google Workspace address-map forwarding now resolve to the original recipient, fixing originator attribution on forwarded submissions.

***

## May 4–8, 2026

### Twelve new screening metrics

The rule builder gained Total Deposits, Total Withdrawals, Average Monthly Withdrawals, Average Monthly Deposit Count, Average Monthly Negative Days, Average Monthly Loan Payments, NSF Total, and Overdraft Total, plus three debt-health metrics read straight off the ledger: reversal credits (the bank rejected a pull), missed payments (bounced credits plus gaps in the payment cadence, where a long gap counts as multiple misses), and modified payments (amount changes in an active cadence, indicating renegotiated terms). Every metric carries a plain-English description in the builder.

### Salesforce gets the full catalog

Opportunity field mapping now draws from the same metrics registry as screening, so every screening metric can push to a mapped Salesforce field. Pushed values compute from the same canonical metrics object screening evaluates, so what Salesforce receives always agrees with the screening verdict.

### LendSaaS declines carry reasons

A Decline Reasons modal on the LendSaaS page attaches decline reasons from your LendSaaS tenant to each screening rule, picked by name from a synced catalog. When a screened deal rejects and a rejecting rule has reasons configured, Pathway files the decline on the deal with those reasons, moving it to Declined in LendSaaS.

### ISO matching: subdomains and CCs

Subdomains count as the same shop, so an originator on acme.com matches reps on mail.acme.com. Colleagues on the CC line attribute as secondary reps when their domain matches any of the ISO's listed domains, and freemail domains are still refused so a gmail.com entry can't over-match. Fewer deals land in LendSaaS unattributed.

### Intake inbox: spam recovery and HTML mining

The poller now retrieves messages Gmail classified as spam, with the originator whitelist still gating ingestion, so a legitimate submission caught by the filter still becomes a book. Address extraction reads HTML bodies and mailto: links in addition to plain text; CRM-generated submissions are often HTML-only, and forwarded deals carry the original CC list in the quoted body. Industry mapping on loan applications is now hard-constrained to your org's industry list, so it cannot invent a category that isn't there.

***

## April 27 – May 1, 2026

### Payment schedule detection

A ground-up rebuild of how debt positions are analyzed. Each funder position breaks into episodes (initial, renewal, stack), each with its triggering advance and its payment schedules: average amount, frequency, pull day, daily-equivalent remit, term estimate. From the schedules come two risk reads: missed payments, detected as gaps in the cadence and cross-referenced with reversal credits, and payment modifications, detected as amount steps not explained by a new advance. Positions carry a status (just funded, active, closed) and rollups: holdback percentage, daily and monthly remit burden, estimated total payback, progress. All of it feeds the debt board, the synopsis, the spreadsheets, and screening.

The debt cards were redesigned around the engine: status pills, holdback and daily remit up front, a flags row for misses and modifications, an episode timeline showing each advance's role, and a paid-versus-estimated-payback progress bar. The MCA column shows book-level totals for daily remit, monthly remit, and combined holdback.

### MCA Stacking Pro

A new Excel template built directly on the engine: per-funder blocks listing every payment schedule, position rollup rows, risk-note rows carrying the miss and modification dates, an editable Active toggle driving live footer totals, and holdback as a live formula against the revenue cell.

### Bounced payments net out

Everywhere an MCA position's paid amount appears (debt cards, synopsis, reply email, spreadsheets, the PDF report), the figure is now net of attributed bounced payments, so remaining balance and progress stop overstating repayment. Just-funded advances with no payments yet also get a row in stack spreadsheets instead of disappearing.

### One period, however many PDFs

Banks that emit one PDF per account per period no longer splinter the analytics. Statements sharing the same start date, end date, and document type fold into one combined period holding all the account ledgers, with duplicate-account protection so nothing double-counts. Monthly tables, the synopsis, and exports see one row per period either way.

### Plaid asset reports

The classifier recognizes Plaid asset reports as a supported document type, and a dedicated pipeline extracts the report's accounts, holders, and full transaction history with daily balances, multi-account and multi-institution PDFs included.

### Screening picker and NAICS industries

The rule builder's metric picker groups metrics by subject, searches across labels and descriptions, and describes each one in plain English. New most-recent-month criteria landed (negative days, average daily balance, deposits, loan payments) plus NSF and overdraft counts. The industries list moved to a curated NAICS-aligned catalog of about fifty industries with real codes, which is what gets pushed to LendSaaS, with search, bulk import with preview, and reset-to-defaults.

### Google Sheets, one file per template

"Open in Google Sheets" keeps one Drive file per book per template, so switching templates doesn't clobber your synced sheet. Export filenames became `{Book name} - {Template name}`.

***

## April 20–24, 2026

### The Intake Inbox, rebuilt

Emails to your intake address now group by conversation thread. Follow-up replies stay attached to the original submission, and each thread shows the subject, status, message count, and every book it produced with live parse status. Opening a thread shows every message with its attachments, per-message processing status, and three resolved identities: the author (the raw From line), the forwarder (the mailbox that relayed it), and the originator (the true sender, resolved by walking forward chains, authentication headers, forward blocks in the body, and attached .eml files). New settings let CC'd mail ingest, and let emails create books and upload documents without auto-parsing. A built-in glossary explains every status.

When the parse finishes, the reply lands on the same thread with the deal synopsis, and can carry the org's rendered spreadsheet or PDF report as a real attachment.

### Senders

A new page: one managed row per unique originator ever seen in intake, with book count, first and last seen, and editable name, company, and notes. Edited names stick across future ingests.

### LendSaaS: auto-create and ISO attribution

Every book that finishes parsing with real bank data can automatically become a LendSaaS deal, with business fields, owners, documents, and worksheet data pushed up, no manual step. Emailed deals attribute to the right ISO by matching the sender's domain against the LendSaaS ISO directory, colleagues on the CC line attach as secondary reps, and a link back to the Pathway book posts as a note on the deal. The deal browser got richer too: per-month worksheet breakdowns, funding details, position status, and notes with authors.

### Slack

Connect Slack channels on the new Slack page, and chat can post into them: plain messages or rich blocks, including files it generated.

### Tag Rules

A new page for org-level tagging rules: a phrase maps to a tag, matched by contains, exact, or regex. Loan-tag rules replace the transaction's loan tag and can attribute the transaction to a specific funder; other tags stack. Rules apply at parse time to every future parse, and positions reconcile automatically.

### Web research on demand

Web research no longer forces itself into every parse. The card on the synopsis has a trigger button, research runs against the parsed business in about two minutes, and an org setting restores automatic runs during parse for those who want them. The research models also moved up a generation.

### Also this week

Text and code files (CSV, JSON, SQL, source files) render inline with syntax highlighting instead of failing to preview. CRM deals enforce stage-specific fields on moves: Offered requires the offer terms, Funded computes total RTR and remaining balance automatically, and declines require a reason. The Funders page gained faceted filters, sorting, and a guarded reset-to-defaults.

***

## April 13–17, 2026

### LendSaaS

A full two-way LendSaaS integration. Connect with your base URL and API key, and a LendSaaS page appears listing your deals and leads with a detail view. Any deal can pull into Pathway: its files become a new linked book. Any parsed book can push up as a new deal, with a full preview of the business fields, owners, and documents before anything is created. Linked books sync monthly bank worksheet data to the deal and carry View Deal and Open in LendSaaS buttons.

### CRM

A new CRM group in the sidebar: Deals, Borrowers, Contacts. Deals is a drag-and-drop pipeline over a real state machine, from Lead through Underwriting, Offered, Approved, Funded, and Paying, out to Paid Off, Declined, and the other terminal states, with only legal transitions allowed. Borrowers are the merchants you underwrite. Contacts are the people and firms around a deal (ISOs, brokers, funders, attorneys, syndicators) with typed roles. Deal pages show the parties, the attached Pathway books, and an event timeline.

### Chat: widgets and starters

Chat can render live interactive components inline: charts, sortable tables, calculators, running in a sandbox that inherits the app's exact theme and can fetch live data with the chat's own token. The new-chat view offers starter templates that prefill a prompt and enable the right tools, like an MCA ledger tracker that builds a portfolio view (position cards, payback progress, transaction ledgers) from a book's analytics.

### Also this week

The books list gained a created-date filter, page sizes up to All, and virtualized rows so All stays fast. Any document can now be deleted from the Files tab, parsed or not. The connected Gmail inbox transparently refreshes expired tokens, so it stops asking to reconnect. Bank statements missing a start or end date display as the known month or "Unknown" and degrade gracefully instead of erroring.

***

## April 2–10, 2026

### Chat lives on the book

The chat on a book page is now scoped to that book. It resumes the book's most recent chat automatically, New Chat starts a fresh one, and any chat can attach other books as context through a searchable picker. A Pathway API toggle gives the assistant org-scoped read-only access to your live data, and books it mentions render as clickable cards that open in the app. Chat search landed too: instant title filtering plus full-text search across message content that tolerates typos. Attachments now show real previews and persist across sessions.

### Read-only API tokens

The personal access token dialog gained a Read-only switch, so you can hand out API credentials that can't change anything.

### The Simple synopsis

Right-click the Overview tab to switch between Standard and Simple layouts. Simple is one page: hero numbers for true revenue, deposits, and withdrawals; a revenue card with the most recent month trending green or red against the average; balances; a flags card that only appears when there are flags; the application; and the debt positions.

### Seven new screening criteria

Most recent month revenue, number of active MCA positions, number of factoring positions, and four recency metrics: days since last transaction, days since last statement end, days since last MCA disbursement, and days since last MCA payment.

### Industry mapping on applications

The applicant's free-text industry ("pizza shop") now maps automatically to the closest category in your org's screening industry list ("restaurant"), so industry rules fire on real-world application text instead of only exact matches.

### Five themes

Right-click the light/dark toggle for a theme menu: Ocean, Ember, Forest, Violet, and Rose. Each restyles the whole app, composes with light and dark mode, and persists per browser. The Credit Full, LOC Scrub, and Monthly Columns exports also dropped their embedded logo this week, so workbooks come out white-label.

***

## March 30 – April 1, 2026

### 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" becomes `avg_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=true` when 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=unsecured` is now only assigned to installment personal/term loans. Credit lines, LOCs, and HELOCs get `None` collateral, 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_alert` and `has_security_freeze` on 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_days` field 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 `revolving` and `charge` account 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 combined `nsf_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.

Both tags are still deterministic (regex, no LLM), debit-only, and have the same $0.01–$200 amount guard. Both remain in the revenue exclusion set. A transaction like "NSF OD FEE" can match both tags simultaneously.

Analytics, metric cards, the bank statements table, and the pivoted deposits view now report NSF and Overdraft as separate columns and metrics. The monthly spreadsheet export has two rows instead of one.

Old books that were parsed before this change still have `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é`

**Wire patterns:**

* `Virement entrant` (incoming wire), `Virement sortant` (outgoing wire), `Virement électronique` (electronic wire), `Virement interbancaire` (interbank wire)

**NSF patterns:**

* `Fonds manquants` (missing funds), `Fonds insuffisants` (insufficient funds), `Sans provision` (without provision), `Chèque retourné` (returned cheque), `Effet retourné` (returned item)

**Overdraft patterns:**

* `Découvert` (overdraft), `À découvert` (overdrawn), `Solde négatif` (negative balance)

**Stop payment patterns:**

* `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 `_RawAccounts` sheet 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

***

## February 9–13, 2026

### Open in Google Sheets

Spreadsheets can now be opened directly in Google Sheets. One click uploads the generated workbook to Drive and opens it in a new tab.

### Chat overhaul

Chat UI rebuilt. The input bar supports file attachments and multi-line messages. The message list handles streaming and non-streaming responses more reliably. The chat panel layout was reworked with better status indicators, cleaner thread separation, and improved scroll behavior.

### Funder directory embed

The funder directory can be embedded as a public, token-authenticated iframe. Partners can drop an embed route directly into their own portals.
