@model-match/api 3.49.0 → 3.50.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/RELEASE_NOTES.md CHANGED
@@ -2,6 +2,14 @@
2
2
 
3
3
  Changes to `@model-match/api` that affect how you use it. Each version is generated from the ModelMatch API's OpenAPI spec, so new endpoints and fields appear in the [API reference](https://docs.modelmatch.com/developers) as they ship.
4
4
 
5
+ ## 3.50.0
6
+
7
+ - **`companyRetention`: `leakiestOriginators` is now `originatorRetention`.** Same list (the company's own loan officers ranked by borrowers who refinanced at another company, with kept and lost counts, retention rate and verdict) under a new name. Read `originatorRetention`; the old property is no longer returned.
8
+
9
+ ## 3.49.1
10
+
11
+ - Regenerated from the latest API spec. No changes to the client itself.
12
+
5
13
  ## 3.49.0
6
14
 
7
15
  - **Companies: borrower retention.** `companyRetention` (`GET /v1/companies/{nmlsId}/retention`) returns a company's borrower retention for `window=last12Months` (the default, with the prior 12 months for comparison) or `allTime`: the refinance retention rate and verdict, where lost borrowers went (servicers vs. other lenders), the top capturing companies and loan officers, and `leakiestOriginators`, the company's own loan officers ranked by borrowers lost. A refinance written by any loan officer at the same company counts as retained. Figures are recomputed weekly and `computedAt` says when; a company that has not been computed yet returns 404.
@@ -4496,9 +4496,9 @@ type CompanyRetentionSnapshot = {
4496
4496
  };
4497
4497
  };
4498
4498
  /**
4499
- * The company's own LOs ranked by borrowers lost to other companies (top 10; only LOs with at least 10 refi events in the window).
4499
+ * Refinance retention for the company's own loan officers, ranked by borrowers who refinanced at another company (top 10; only LOs with at least 10 refi events in the window).
4500
4500
  */
4501
- leakiestOriginators: Array<{
4501
+ originatorRetention: Array<{
4502
4502
  /**
4503
4503
  * Their borrowers who refinanced at another company.
4504
4504
  */
@@ -12835,12 +12835,12 @@ type AgentAnalyticsTimeSeriesResponse = AgentAnalyticsTimeSeriesResponses[keyof
12835
12835
  type SubmitAgentsBulkDeliveryData = {
12836
12836
  body?: AgentListRequest & {
12837
12837
  /**
12838
- * A FORMATTED file: its columns, in order, with header labels and number formats — for `format` `csv` or `xlsx` only, and not combined with `fields` or a push-target `destination` (400 `columns_format_unsupported` / `columns_with_fields` / `columns_with_destination`). Every field a column reads is gated by the entitlement exactly as if it were listed in `fields`: a withheld field drops out of a column's fallback list, and a column with nothing left is omitted. An unknown field is a 400 `unknown_column_field`. No `id` column is added. A formatted `csv` starts with a UTF-8 byte-order mark and uses CRLF line endings, so Excel opens it with accented names intact. Columns may read any DTO field and any opt-in column `fields` documents, including the computed `governmentPct`, `branchCount` and `managerName` / `managerNmlsId`.
12838
+ * A FORMATTED file: its columns, in order, with header labels and number formats — for `format` `csv` or `xlsx` only, and not combined with `fields` or a push-target `destination` (400 `columns_format_unsupported` / `columns_with_fields` / `columns_with_destination`). Every field a column reads is gated by the entitlement exactly as if it were listed in `fields`: a withheld field drops out of a column's fallback list, and a column with nothing left is omitted. An unknown field is a 400 `unknown_column_field`. No `id` column is added. A formatted `csv` starts with a UTF-8 byte-order mark and uses CRLF line endings, so Excel opens it with accented names intact. Columns may read any DTO field and any opt-in column `fields` documents, including the computed `governmentPct`, `branchCount`, `managerName` / `managerNmlsId` and `licensedSince`.
12839
12839
  */
12840
12840
  columns?: Array<BulkDeliveryColumn>;
12841
12841
  destination?: BulkDeliveryDestination;
12842
12842
  /**
12843
- * Optional output column projection, named by the response DTO fields (the same camelCase fields the list endpoint returns, e.g. `city`, `interestRate`). Intersected with the entitlement scope's allowedFields and the entity's full column set. If empty after intersection, falls back to all columns. It also SELECTS the opt-in columns, which are not part of the list DTO and are never delivered unless named here: `communityLending` (properties, originators, companies, branches) — the Community Lending neighborhood profile, identical to the block on the entity's detail endpoint; `parties` (properties) — the mortgage parties attributed to the parcel, by attribution scope; `marketCount` / `countyCount` / `stateCount` / `zipCount` / `lenderCount` (originators) — the market-breadth rollups you can already filter on; and the computed `governmentPct` (originators: FHA + VA percent of loans, 0–100), `branchCount` (companies: NMLS branch count) and `managerName` / `managerNmlsId` (branches: the first branch manager). Agents also offer `email2` / `phone2` (the best-ranked email / phone distinct from `email` / `phone`, admitted by the `email` / `phone` entitlement field), `bestEmail` / `bestEmail2` and `bestPhone` / `bestPhone2` (the best and runner-up contact over every email / phone on the record, `email` / `phone` included — the pair the ModelMatch web app's agent export shows; same entitlement fields), `officePhone` (admitted by `phone`), `activeListings` (current active listings; null when unknown), and the profile-link columns `facebook`, `instagram`, `linkedin`, `twitter`, `youtube`, `tiktok`, `zillow`, `otherLinks` (a `; `-joined list of profile URLs on no known platform) — all admitted by the `links` entitlement field. Loans offer the list row's transaction-export fields (`employerName`, `employerNmlsId`, `brokerName`, `titleCompanyName`, `soldAgentName`, `listAgentName`, `coListAgentName`, `buyer1FirstMiddle` … `seller2Last`). In `csv` and `parquet` the two block columns are JSON-encoded cells; in `json` and `ndjson` they are nested objects. Windowed production (originators, agents, companies, branches): name `<field>_<n>mo` for n in 3, 6, 12, 14, 18, 24 to get a production field for that trailing window regardless of `period` — e.g. `volume_3mo`, `units_6mo`, `purchaseVolume_24mo`. Available for originators `volume`, `units`, `avgLoanAmount`, `purchaseVolume`, `purchaseUnits`, `refinanceVolume`, `refinanceUnits`, `conventionalPct`, `fhaPct`, `vaPct`; agents `volume`, `units`, `avgSoldPrice`, `buyerVolume`, `buyerUnits`, `sellerVolume`, `sellerUnits`, `totalOriginatorsWorkedWith`, `totalCompaniesWorkedWith`, `totalLendersWorkedWith`; companies `volume`, `units`, `avgLoanAmount`, `loCount`; branches `volume`, `units`, `avgLoanAmount`, `purchasePct`, `refinancePct`, `loCount`. Numbers (null when the window has no data); an entitlement that allows a field allows every window of it.
12843
+ * Optional output column projection, named by the response DTO fields (the same camelCase fields the list endpoint returns, e.g. `city`, `interestRate`). Intersected with the entitlement scope's allowedFields and the entity's full column set. If empty after intersection, falls back to all columns. It also SELECTS the opt-in columns, which are not part of the list DTO and are never delivered unless named here: `communityLending` (properties, originators, companies, branches) — the Community Lending neighborhood profile, identical to the block on the entity's detail endpoint; `parties` (properties) — the mortgage parties attributed to the parcel, by attribution scope; `marketCount` / `countyCount` / `stateCount` / `zipCount` / `lenderCount` (originators) — the market-breadth rollups you can already filter on; and the computed `governmentPct` (originators: FHA + VA percent of loans, 0–100), `branchCount` (companies: NMLS branch count) and `managerName` / `managerNmlsId` (branches: the first branch manager) and `licensedSince` (branches: first-licensed date, the earliest license `issueDate`, YYYY-MM-DD). Agents also offer `email2` / `phone2` (the best-ranked email / phone distinct from `email` / `phone`, admitted by the `email` / `phone` entitlement field), `bestEmail` / `bestEmail2` and `bestPhone` / `bestPhone2` (the best and runner-up contact over every email / phone on the record, `email` / `phone` included — the pair the ModelMatch web app's agent export shows; same entitlement fields), `officePhone` (admitted by `phone`), `activeListings` (current active listings; null when unknown), and the profile-link columns `facebook`, `instagram`, `linkedin`, `twitter`, `youtube`, `tiktok`, `zillow`, `otherLinks` (a `; `-joined list of profile URLs on no known platform) — all admitted by the `links` entitlement field. Loans offer the list row's transaction-export fields (`employerName`, `employerNmlsId`, `brokerName`, `titleCompanyName`, `soldAgentName`, `listAgentName`, `coListAgentName`, `buyer1FirstMiddle` … `seller2Last`). In `csv` and `parquet` the two block columns are JSON-encoded cells; in `json` and `ndjson` they are nested objects. Windowed production (originators, agents, companies, branches): name `<field>_<n>mo` for n in 3, 6, 12, 14, 18, 24 to get a production field for that trailing window regardless of `period` — e.g. `volume_3mo`, `units_6mo`, `purchaseVolume_24mo`. Available for originators `volume`, `units`, `avgLoanAmount`, `purchaseVolume`, `purchaseUnits`, `refinanceVolume`, `refinanceUnits`, `conventionalPct`, `fhaPct`, `vaPct`; agents `volume`, `units`, `avgSoldPrice`, `buyerVolume`, `buyerUnits`, `sellerVolume`, `sellerUnits`, `totalOriginatorsWorkedWith`, `totalCompaniesWorkedWith`, `totalLendersWorkedWith`; companies `volume`, `units`, `avgLoanAmount`, `loCount`; branches `volume`, `units`, `avgLoanAmount`, `purchasePct`, `refinancePct`, `loCount`. Numbers (null when the window has no data); an entitlement that allows a field allows every window of it.
12844
12844
  */
12845
12845
  fields?: Array<string>;
12846
12846
  format?: BulkDeliveryFormat;
@@ -15448,12 +15448,12 @@ type BranchAnalyticsTimeSeriesResponse = BranchAnalyticsTimeSeriesResponses[keyo
15448
15448
  type SubmitBranchesBulkDeliveryData = {
15449
15449
  body?: BranchListRequest & {
15450
15450
  /**
15451
- * A FORMATTED file: its columns, in order, with header labels and number formats — for `format` `csv` or `xlsx` only, and not combined with `fields` or a push-target `destination` (400 `columns_format_unsupported` / `columns_with_fields` / `columns_with_destination`). Every field a column reads is gated by the entitlement exactly as if it were listed in `fields`: a withheld field drops out of a column's fallback list, and a column with nothing left is omitted. An unknown field is a 400 `unknown_column_field`. No `id` column is added. A formatted `csv` starts with a UTF-8 byte-order mark and uses CRLF line endings, so Excel opens it with accented names intact. Columns may read any DTO field and any opt-in column `fields` documents, including the computed `governmentPct`, `branchCount` and `managerName` / `managerNmlsId`.
15451
+ * A FORMATTED file: its columns, in order, with header labels and number formats — for `format` `csv` or `xlsx` only, and not combined with `fields` or a push-target `destination` (400 `columns_format_unsupported` / `columns_with_fields` / `columns_with_destination`). Every field a column reads is gated by the entitlement exactly as if it were listed in `fields`: a withheld field drops out of a column's fallback list, and a column with nothing left is omitted. An unknown field is a 400 `unknown_column_field`. No `id` column is added. A formatted `csv` starts with a UTF-8 byte-order mark and uses CRLF line endings, so Excel opens it with accented names intact. Columns may read any DTO field and any opt-in column `fields` documents, including the computed `governmentPct`, `branchCount`, `managerName` / `managerNmlsId` and `licensedSince`.
15452
15452
  */
15453
15453
  columns?: Array<BulkDeliveryColumn>;
15454
15454
  destination?: BulkDeliveryDestination;
15455
15455
  /**
15456
- * Optional output column projection, named by the response DTO fields (the same camelCase fields the list endpoint returns, e.g. `city`, `interestRate`). Intersected with the entitlement scope's allowedFields and the entity's full column set. If empty after intersection, falls back to all columns. It also SELECTS the opt-in columns, which are not part of the list DTO and are never delivered unless named here: `communityLending` (properties, originators, companies, branches) — the Community Lending neighborhood profile, identical to the block on the entity's detail endpoint; `parties` (properties) — the mortgage parties attributed to the parcel, by attribution scope; `marketCount` / `countyCount` / `stateCount` / `zipCount` / `lenderCount` (originators) — the market-breadth rollups you can already filter on; and the computed `governmentPct` (originators: FHA + VA percent of loans, 0–100), `branchCount` (companies: NMLS branch count) and `managerName` / `managerNmlsId` (branches: the first branch manager). Agents also offer `email2` / `phone2` (the best-ranked email / phone distinct from `email` / `phone`, admitted by the `email` / `phone` entitlement field), `bestEmail` / `bestEmail2` and `bestPhone` / `bestPhone2` (the best and runner-up contact over every email / phone on the record, `email` / `phone` included — the pair the ModelMatch web app's agent export shows; same entitlement fields), `officePhone` (admitted by `phone`), `activeListings` (current active listings; null when unknown), and the profile-link columns `facebook`, `instagram`, `linkedin`, `twitter`, `youtube`, `tiktok`, `zillow`, `otherLinks` (a `; `-joined list of profile URLs on no known platform) — all admitted by the `links` entitlement field. Loans offer the list row's transaction-export fields (`employerName`, `employerNmlsId`, `brokerName`, `titleCompanyName`, `soldAgentName`, `listAgentName`, `coListAgentName`, `buyer1FirstMiddle` … `seller2Last`). In `csv` and `parquet` the two block columns are JSON-encoded cells; in `json` and `ndjson` they are nested objects. Windowed production (originators, agents, companies, branches): name `<field>_<n>mo` for n in 3, 6, 12, 14, 18, 24 to get a production field for that trailing window regardless of `period` — e.g. `volume_3mo`, `units_6mo`, `purchaseVolume_24mo`. Available for originators `volume`, `units`, `avgLoanAmount`, `purchaseVolume`, `purchaseUnits`, `refinanceVolume`, `refinanceUnits`, `conventionalPct`, `fhaPct`, `vaPct`; agents `volume`, `units`, `avgSoldPrice`, `buyerVolume`, `buyerUnits`, `sellerVolume`, `sellerUnits`, `totalOriginatorsWorkedWith`, `totalCompaniesWorkedWith`, `totalLendersWorkedWith`; companies `volume`, `units`, `avgLoanAmount`, `loCount`; branches `volume`, `units`, `avgLoanAmount`, `purchasePct`, `refinancePct`, `loCount`. Numbers (null when the window has no data); an entitlement that allows a field allows every window of it.
15456
+ * Optional output column projection, named by the response DTO fields (the same camelCase fields the list endpoint returns, e.g. `city`, `interestRate`). Intersected with the entitlement scope's allowedFields and the entity's full column set. If empty after intersection, falls back to all columns. It also SELECTS the opt-in columns, which are not part of the list DTO and are never delivered unless named here: `communityLending` (properties, originators, companies, branches) — the Community Lending neighborhood profile, identical to the block on the entity's detail endpoint; `parties` (properties) — the mortgage parties attributed to the parcel, by attribution scope; `marketCount` / `countyCount` / `stateCount` / `zipCount` / `lenderCount` (originators) — the market-breadth rollups you can already filter on; and the computed `governmentPct` (originators: FHA + VA percent of loans, 0–100), `branchCount` (companies: NMLS branch count) and `managerName` / `managerNmlsId` (branches: the first branch manager) and `licensedSince` (branches: first-licensed date, the earliest license `issueDate`, YYYY-MM-DD). Agents also offer `email2` / `phone2` (the best-ranked email / phone distinct from `email` / `phone`, admitted by the `email` / `phone` entitlement field), `bestEmail` / `bestEmail2` and `bestPhone` / `bestPhone2` (the best and runner-up contact over every email / phone on the record, `email` / `phone` included — the pair the ModelMatch web app's agent export shows; same entitlement fields), `officePhone` (admitted by `phone`), `activeListings` (current active listings; null when unknown), and the profile-link columns `facebook`, `instagram`, `linkedin`, `twitter`, `youtube`, `tiktok`, `zillow`, `otherLinks` (a `; `-joined list of profile URLs on no known platform) — all admitted by the `links` entitlement field. Loans offer the list row's transaction-export fields (`employerName`, `employerNmlsId`, `brokerName`, `titleCompanyName`, `soldAgentName`, `listAgentName`, `coListAgentName`, `buyer1FirstMiddle` … `seller2Last`). In `csv` and `parquet` the two block columns are JSON-encoded cells; in `json` and `ndjson` they are nested objects. Windowed production (originators, agents, companies, branches): name `<field>_<n>mo` for n in 3, 6, 12, 14, 18, 24 to get a production field for that trailing window regardless of `period` — e.g. `volume_3mo`, `units_6mo`, `purchaseVolume_24mo`. Available for originators `volume`, `units`, `avgLoanAmount`, `purchaseVolume`, `purchaseUnits`, `refinanceVolume`, `refinanceUnits`, `conventionalPct`, `fhaPct`, `vaPct`; agents `volume`, `units`, `avgSoldPrice`, `buyerVolume`, `buyerUnits`, `sellerVolume`, `sellerUnits`, `totalOriginatorsWorkedWith`, `totalCompaniesWorkedWith`, `totalLendersWorkedWith`; companies `volume`, `units`, `avgLoanAmount`, `loCount`; branches `volume`, `units`, `avgLoanAmount`, `purchasePct`, `refinancePct`, `loCount`. Numbers (null when the window has no data); an entitlement that allows a field allows every window of it.
15457
15457
  */
15458
15458
  fields?: Array<string>;
15459
15459
  format?: BulkDeliveryFormat;
@@ -16167,12 +16167,12 @@ type CompanyAnalyticsTimeSeriesResponse = CompanyAnalyticsTimeSeriesResponses[ke
16167
16167
  type SubmitCompaniesBulkDeliveryData = {
16168
16168
  body?: CompanyListRequest & {
16169
16169
  /**
16170
- * A FORMATTED file: its columns, in order, with header labels and number formats — for `format` `csv` or `xlsx` only, and not combined with `fields` or a push-target `destination` (400 `columns_format_unsupported` / `columns_with_fields` / `columns_with_destination`). Every field a column reads is gated by the entitlement exactly as if it were listed in `fields`: a withheld field drops out of a column's fallback list, and a column with nothing left is omitted. An unknown field is a 400 `unknown_column_field`. No `id` column is added. A formatted `csv` starts with a UTF-8 byte-order mark and uses CRLF line endings, so Excel opens it with accented names intact. Columns may read any DTO field and any opt-in column `fields` documents, including the computed `governmentPct`, `branchCount` and `managerName` / `managerNmlsId`.
16170
+ * A FORMATTED file: its columns, in order, with header labels and number formats — for `format` `csv` or `xlsx` only, and not combined with `fields` or a push-target `destination` (400 `columns_format_unsupported` / `columns_with_fields` / `columns_with_destination`). Every field a column reads is gated by the entitlement exactly as if it were listed in `fields`: a withheld field drops out of a column's fallback list, and a column with nothing left is omitted. An unknown field is a 400 `unknown_column_field`. No `id` column is added. A formatted `csv` starts with a UTF-8 byte-order mark and uses CRLF line endings, so Excel opens it with accented names intact. Columns may read any DTO field and any opt-in column `fields` documents, including the computed `governmentPct`, `branchCount`, `managerName` / `managerNmlsId` and `licensedSince`.
16171
16171
  */
16172
16172
  columns?: Array<BulkDeliveryColumn>;
16173
16173
  destination?: BulkDeliveryDestination;
16174
16174
  /**
16175
- * Optional output column projection, named by the response DTO fields (the same camelCase fields the list endpoint returns, e.g. `city`, `interestRate`). Intersected with the entitlement scope's allowedFields and the entity's full column set. If empty after intersection, falls back to all columns. It also SELECTS the opt-in columns, which are not part of the list DTO and are never delivered unless named here: `communityLending` (properties, originators, companies, branches) — the Community Lending neighborhood profile, identical to the block on the entity's detail endpoint; `parties` (properties) — the mortgage parties attributed to the parcel, by attribution scope; `marketCount` / `countyCount` / `stateCount` / `zipCount` / `lenderCount` (originators) — the market-breadth rollups you can already filter on; and the computed `governmentPct` (originators: FHA + VA percent of loans, 0–100), `branchCount` (companies: NMLS branch count) and `managerName` / `managerNmlsId` (branches: the first branch manager). Agents also offer `email2` / `phone2` (the best-ranked email / phone distinct from `email` / `phone`, admitted by the `email` / `phone` entitlement field), `bestEmail` / `bestEmail2` and `bestPhone` / `bestPhone2` (the best and runner-up contact over every email / phone on the record, `email` / `phone` included — the pair the ModelMatch web app's agent export shows; same entitlement fields), `officePhone` (admitted by `phone`), `activeListings` (current active listings; null when unknown), and the profile-link columns `facebook`, `instagram`, `linkedin`, `twitter`, `youtube`, `tiktok`, `zillow`, `otherLinks` (a `; `-joined list of profile URLs on no known platform) — all admitted by the `links` entitlement field. Loans offer the list row's transaction-export fields (`employerName`, `employerNmlsId`, `brokerName`, `titleCompanyName`, `soldAgentName`, `listAgentName`, `coListAgentName`, `buyer1FirstMiddle` … `seller2Last`). In `csv` and `parquet` the two block columns are JSON-encoded cells; in `json` and `ndjson` they are nested objects. Windowed production (originators, agents, companies, branches): name `<field>_<n>mo` for n in 3, 6, 12, 14, 18, 24 to get a production field for that trailing window regardless of `period` — e.g. `volume_3mo`, `units_6mo`, `purchaseVolume_24mo`. Available for originators `volume`, `units`, `avgLoanAmount`, `purchaseVolume`, `purchaseUnits`, `refinanceVolume`, `refinanceUnits`, `conventionalPct`, `fhaPct`, `vaPct`; agents `volume`, `units`, `avgSoldPrice`, `buyerVolume`, `buyerUnits`, `sellerVolume`, `sellerUnits`, `totalOriginatorsWorkedWith`, `totalCompaniesWorkedWith`, `totalLendersWorkedWith`; companies `volume`, `units`, `avgLoanAmount`, `loCount`; branches `volume`, `units`, `avgLoanAmount`, `purchasePct`, `refinancePct`, `loCount`. Numbers (null when the window has no data); an entitlement that allows a field allows every window of it.
16175
+ * Optional output column projection, named by the response DTO fields (the same camelCase fields the list endpoint returns, e.g. `city`, `interestRate`). Intersected with the entitlement scope's allowedFields and the entity's full column set. If empty after intersection, falls back to all columns. It also SELECTS the opt-in columns, which are not part of the list DTO and are never delivered unless named here: `communityLending` (properties, originators, companies, branches) — the Community Lending neighborhood profile, identical to the block on the entity's detail endpoint; `parties` (properties) — the mortgage parties attributed to the parcel, by attribution scope; `marketCount` / `countyCount` / `stateCount` / `zipCount` / `lenderCount` (originators) — the market-breadth rollups you can already filter on; and the computed `governmentPct` (originators: FHA + VA percent of loans, 0–100), `branchCount` (companies: NMLS branch count) and `managerName` / `managerNmlsId` (branches: the first branch manager) and `licensedSince` (branches: first-licensed date, the earliest license `issueDate`, YYYY-MM-DD). Agents also offer `email2` / `phone2` (the best-ranked email / phone distinct from `email` / `phone`, admitted by the `email` / `phone` entitlement field), `bestEmail` / `bestEmail2` and `bestPhone` / `bestPhone2` (the best and runner-up contact over every email / phone on the record, `email` / `phone` included — the pair the ModelMatch web app's agent export shows; same entitlement fields), `officePhone` (admitted by `phone`), `activeListings` (current active listings; null when unknown), and the profile-link columns `facebook`, `instagram`, `linkedin`, `twitter`, `youtube`, `tiktok`, `zillow`, `otherLinks` (a `; `-joined list of profile URLs on no known platform) — all admitted by the `links` entitlement field. Loans offer the list row's transaction-export fields (`employerName`, `employerNmlsId`, `brokerName`, `titleCompanyName`, `soldAgentName`, `listAgentName`, `coListAgentName`, `buyer1FirstMiddle` … `seller2Last`). In `csv` and `parquet` the two block columns are JSON-encoded cells; in `json` and `ndjson` they are nested objects. Windowed production (originators, agents, companies, branches): name `<field>_<n>mo` for n in 3, 6, 12, 14, 18, 24 to get a production field for that trailing window regardless of `period` — e.g. `volume_3mo`, `units_6mo`, `purchaseVolume_24mo`. Available for originators `volume`, `units`, `avgLoanAmount`, `purchaseVolume`, `purchaseUnits`, `refinanceVolume`, `refinanceUnits`, `conventionalPct`, `fhaPct`, `vaPct`; agents `volume`, `units`, `avgSoldPrice`, `buyerVolume`, `buyerUnits`, `sellerVolume`, `sellerUnits`, `totalOriginatorsWorkedWith`, `totalCompaniesWorkedWith`, `totalLendersWorkedWith`; companies `volume`, `units`, `avgLoanAmount`, `loCount`; branches `volume`, `units`, `avgLoanAmount`, `purchasePct`, `refinancePct`, `loCount`. Numbers (null when the window has no data); an entitlement that allows a field allows every window of it.
16176
16176
  */
16177
16177
  fields?: Array<string>;
16178
16178
  format?: BulkDeliveryFormat;
@@ -24197,12 +24197,12 @@ type LoansAnalyticsTimeSeriesResponse = LoansAnalyticsTimeSeriesResponses[keyof
24197
24197
  type SubmitLoansBulkDeliveryData = {
24198
24198
  body?: LoanListRequest & {
24199
24199
  /**
24200
- * A FORMATTED file: its columns, in order, with header labels and number formats — for `format` `csv` or `xlsx` only, and not combined with `fields` or a push-target `destination` (400 `columns_format_unsupported` / `columns_with_fields` / `columns_with_destination`). Every field a column reads is gated by the entitlement exactly as if it were listed in `fields`: a withheld field drops out of a column's fallback list, and a column with nothing left is omitted. An unknown field is a 400 `unknown_column_field`. No `id` column is added. A formatted `csv` starts with a UTF-8 byte-order mark and uses CRLF line endings, so Excel opens it with accented names intact. Columns may read any DTO field and any opt-in column `fields` documents, including the computed `governmentPct`, `branchCount` and `managerName` / `managerNmlsId`.
24200
+ * A FORMATTED file: its columns, in order, with header labels and number formats — for `format` `csv` or `xlsx` only, and not combined with `fields` or a push-target `destination` (400 `columns_format_unsupported` / `columns_with_fields` / `columns_with_destination`). Every field a column reads is gated by the entitlement exactly as if it were listed in `fields`: a withheld field drops out of a column's fallback list, and a column with nothing left is omitted. An unknown field is a 400 `unknown_column_field`. No `id` column is added. A formatted `csv` starts with a UTF-8 byte-order mark and uses CRLF line endings, so Excel opens it with accented names intact. Columns may read any DTO field and any opt-in column `fields` documents, including the computed `governmentPct`, `branchCount`, `managerName` / `managerNmlsId` and `licensedSince`.
24201
24201
  */
24202
24202
  columns?: Array<BulkDeliveryColumn>;
24203
24203
  destination?: BulkDeliveryDestination;
24204
24204
  /**
24205
- * Optional output column projection, named by the response DTO fields (the same camelCase fields the list endpoint returns, e.g. `city`, `interestRate`). Intersected with the entitlement scope's allowedFields and the entity's full column set. If empty after intersection, falls back to all columns. It also SELECTS the opt-in columns, which are not part of the list DTO and are never delivered unless named here: `communityLending` (properties, originators, companies, branches) — the Community Lending neighborhood profile, identical to the block on the entity's detail endpoint; `parties` (properties) — the mortgage parties attributed to the parcel, by attribution scope; `marketCount` / `countyCount` / `stateCount` / `zipCount` / `lenderCount` (originators) — the market-breadth rollups you can already filter on; and the computed `governmentPct` (originators: FHA + VA percent of loans, 0–100), `branchCount` (companies: NMLS branch count) and `managerName` / `managerNmlsId` (branches: the first branch manager). Agents also offer `email2` / `phone2` (the best-ranked email / phone distinct from `email` / `phone`, admitted by the `email` / `phone` entitlement field), `bestEmail` / `bestEmail2` and `bestPhone` / `bestPhone2` (the best and runner-up contact over every email / phone on the record, `email` / `phone` included — the pair the ModelMatch web app's agent export shows; same entitlement fields), `officePhone` (admitted by `phone`), `activeListings` (current active listings; null when unknown), and the profile-link columns `facebook`, `instagram`, `linkedin`, `twitter`, `youtube`, `tiktok`, `zillow`, `otherLinks` (a `; `-joined list of profile URLs on no known platform) — all admitted by the `links` entitlement field. Loans offer the list row's transaction-export fields (`employerName`, `employerNmlsId`, `brokerName`, `titleCompanyName`, `soldAgentName`, `listAgentName`, `coListAgentName`, `buyer1FirstMiddle` … `seller2Last`). In `csv` and `parquet` the two block columns are JSON-encoded cells; in `json` and `ndjson` they are nested objects. Windowed production (originators, agents, companies, branches): name `<field>_<n>mo` for n in 3, 6, 12, 14, 18, 24 to get a production field for that trailing window regardless of `period` — e.g. `volume_3mo`, `units_6mo`, `purchaseVolume_24mo`. Available for originators `volume`, `units`, `avgLoanAmount`, `purchaseVolume`, `purchaseUnits`, `refinanceVolume`, `refinanceUnits`, `conventionalPct`, `fhaPct`, `vaPct`; agents `volume`, `units`, `avgSoldPrice`, `buyerVolume`, `buyerUnits`, `sellerVolume`, `sellerUnits`, `totalOriginatorsWorkedWith`, `totalCompaniesWorkedWith`, `totalLendersWorkedWith`; companies `volume`, `units`, `avgLoanAmount`, `loCount`; branches `volume`, `units`, `avgLoanAmount`, `purchasePct`, `refinancePct`, `loCount`. Numbers (null when the window has no data); an entitlement that allows a field allows every window of it.
24205
+ * Optional output column projection, named by the response DTO fields (the same camelCase fields the list endpoint returns, e.g. `city`, `interestRate`). Intersected with the entitlement scope's allowedFields and the entity's full column set. If empty after intersection, falls back to all columns. It also SELECTS the opt-in columns, which are not part of the list DTO and are never delivered unless named here: `communityLending` (properties, originators, companies, branches) — the Community Lending neighborhood profile, identical to the block on the entity's detail endpoint; `parties` (properties) — the mortgage parties attributed to the parcel, by attribution scope; `marketCount` / `countyCount` / `stateCount` / `zipCount` / `lenderCount` (originators) — the market-breadth rollups you can already filter on; and the computed `governmentPct` (originators: FHA + VA percent of loans, 0–100), `branchCount` (companies: NMLS branch count) and `managerName` / `managerNmlsId` (branches: the first branch manager) and `licensedSince` (branches: first-licensed date, the earliest license `issueDate`, YYYY-MM-DD). Agents also offer `email2` / `phone2` (the best-ranked email / phone distinct from `email` / `phone`, admitted by the `email` / `phone` entitlement field), `bestEmail` / `bestEmail2` and `bestPhone` / `bestPhone2` (the best and runner-up contact over every email / phone on the record, `email` / `phone` included — the pair the ModelMatch web app's agent export shows; same entitlement fields), `officePhone` (admitted by `phone`), `activeListings` (current active listings; null when unknown), and the profile-link columns `facebook`, `instagram`, `linkedin`, `twitter`, `youtube`, `tiktok`, `zillow`, `otherLinks` (a `; `-joined list of profile URLs on no known platform) — all admitted by the `links` entitlement field. Loans offer the list row's transaction-export fields (`employerName`, `employerNmlsId`, `brokerName`, `titleCompanyName`, `soldAgentName`, `listAgentName`, `coListAgentName`, `buyer1FirstMiddle` … `seller2Last`). In `csv` and `parquet` the two block columns are JSON-encoded cells; in `json` and `ndjson` they are nested objects. Windowed production (originators, agents, companies, branches): name `<field>_<n>mo` for n in 3, 6, 12, 14, 18, 24 to get a production field for that trailing window regardless of `period` — e.g. `volume_3mo`, `units_6mo`, `purchaseVolume_24mo`. Available for originators `volume`, `units`, `avgLoanAmount`, `purchaseVolume`, `purchaseUnits`, `refinanceVolume`, `refinanceUnits`, `conventionalPct`, `fhaPct`, `vaPct`; agents `volume`, `units`, `avgSoldPrice`, `buyerVolume`, `buyerUnits`, `sellerVolume`, `sellerUnits`, `totalOriginatorsWorkedWith`, `totalCompaniesWorkedWith`, `totalLendersWorkedWith`; companies `volume`, `units`, `avgLoanAmount`, `loCount`; branches `volume`, `units`, `avgLoanAmount`, `purchasePct`, `refinancePct`, `loCount`. Numbers (null when the window has no data); an entitlement that allows a field allows every window of it.
24206
24206
  */
24207
24207
  fields?: Array<string>;
24208
24208
  format?: BulkDeliveryFormat;
@@ -26081,12 +26081,12 @@ type OriginatorAnalyticsTimeSeriesResponse = OriginatorAnalyticsTimeSeriesRespon
26081
26081
  type SubmitOriginatorsBulkDeliveryData = {
26082
26082
  body?: OriginatorListRequest & {
26083
26083
  /**
26084
- * A FORMATTED file: its columns, in order, with header labels and number formats — for `format` `csv` or `xlsx` only, and not combined with `fields` or a push-target `destination` (400 `columns_format_unsupported` / `columns_with_fields` / `columns_with_destination`). Every field a column reads is gated by the entitlement exactly as if it were listed in `fields`: a withheld field drops out of a column's fallback list, and a column with nothing left is omitted. An unknown field is a 400 `unknown_column_field`. No `id` column is added. A formatted `csv` starts with a UTF-8 byte-order mark and uses CRLF line endings, so Excel opens it with accented names intact. Columns may read any DTO field and any opt-in column `fields` documents, including the computed `governmentPct`, `branchCount` and `managerName` / `managerNmlsId`.
26084
+ * A FORMATTED file: its columns, in order, with header labels and number formats — for `format` `csv` or `xlsx` only, and not combined with `fields` or a push-target `destination` (400 `columns_format_unsupported` / `columns_with_fields` / `columns_with_destination`). Every field a column reads is gated by the entitlement exactly as if it were listed in `fields`: a withheld field drops out of a column's fallback list, and a column with nothing left is omitted. An unknown field is a 400 `unknown_column_field`. No `id` column is added. A formatted `csv` starts with a UTF-8 byte-order mark and uses CRLF line endings, so Excel opens it with accented names intact. Columns may read any DTO field and any opt-in column `fields` documents, including the computed `governmentPct`, `branchCount`, `managerName` / `managerNmlsId` and `licensedSince`.
26085
26085
  */
26086
26086
  columns?: Array<BulkDeliveryColumn>;
26087
26087
  destination?: BulkDeliveryDestination;
26088
26088
  /**
26089
- * Optional output column projection, named by the response DTO fields (the same camelCase fields the list endpoint returns, e.g. `city`, `interestRate`). Intersected with the entitlement scope's allowedFields and the entity's full column set. If empty after intersection, falls back to all columns. It also SELECTS the opt-in columns, which are not part of the list DTO and are never delivered unless named here: `communityLending` (properties, originators, companies, branches) — the Community Lending neighborhood profile, identical to the block on the entity's detail endpoint; `parties` (properties) — the mortgage parties attributed to the parcel, by attribution scope; `marketCount` / `countyCount` / `stateCount` / `zipCount` / `lenderCount` (originators) — the market-breadth rollups you can already filter on; and the computed `governmentPct` (originators: FHA + VA percent of loans, 0–100), `branchCount` (companies: NMLS branch count) and `managerName` / `managerNmlsId` (branches: the first branch manager). Agents also offer `email2` / `phone2` (the best-ranked email / phone distinct from `email` / `phone`, admitted by the `email` / `phone` entitlement field), `bestEmail` / `bestEmail2` and `bestPhone` / `bestPhone2` (the best and runner-up contact over every email / phone on the record, `email` / `phone` included — the pair the ModelMatch web app's agent export shows; same entitlement fields), `officePhone` (admitted by `phone`), `activeListings` (current active listings; null when unknown), and the profile-link columns `facebook`, `instagram`, `linkedin`, `twitter`, `youtube`, `tiktok`, `zillow`, `otherLinks` (a `; `-joined list of profile URLs on no known platform) — all admitted by the `links` entitlement field. Loans offer the list row's transaction-export fields (`employerName`, `employerNmlsId`, `brokerName`, `titleCompanyName`, `soldAgentName`, `listAgentName`, `coListAgentName`, `buyer1FirstMiddle` … `seller2Last`). In `csv` and `parquet` the two block columns are JSON-encoded cells; in `json` and `ndjson` they are nested objects. Windowed production (originators, agents, companies, branches): name `<field>_<n>mo` for n in 3, 6, 12, 14, 18, 24 to get a production field for that trailing window regardless of `period` — e.g. `volume_3mo`, `units_6mo`, `purchaseVolume_24mo`. Available for originators `volume`, `units`, `avgLoanAmount`, `purchaseVolume`, `purchaseUnits`, `refinanceVolume`, `refinanceUnits`, `conventionalPct`, `fhaPct`, `vaPct`; agents `volume`, `units`, `avgSoldPrice`, `buyerVolume`, `buyerUnits`, `sellerVolume`, `sellerUnits`, `totalOriginatorsWorkedWith`, `totalCompaniesWorkedWith`, `totalLendersWorkedWith`; companies `volume`, `units`, `avgLoanAmount`, `loCount`; branches `volume`, `units`, `avgLoanAmount`, `purchasePct`, `refinancePct`, `loCount`. Numbers (null when the window has no data); an entitlement that allows a field allows every window of it.
26089
+ * Optional output column projection, named by the response DTO fields (the same camelCase fields the list endpoint returns, e.g. `city`, `interestRate`). Intersected with the entitlement scope's allowedFields and the entity's full column set. If empty after intersection, falls back to all columns. It also SELECTS the opt-in columns, which are not part of the list DTO and are never delivered unless named here: `communityLending` (properties, originators, companies, branches) — the Community Lending neighborhood profile, identical to the block on the entity's detail endpoint; `parties` (properties) — the mortgage parties attributed to the parcel, by attribution scope; `marketCount` / `countyCount` / `stateCount` / `zipCount` / `lenderCount` (originators) — the market-breadth rollups you can already filter on; and the computed `governmentPct` (originators: FHA + VA percent of loans, 0–100), `branchCount` (companies: NMLS branch count) and `managerName` / `managerNmlsId` (branches: the first branch manager) and `licensedSince` (branches: first-licensed date, the earliest license `issueDate`, YYYY-MM-DD). Agents also offer `email2` / `phone2` (the best-ranked email / phone distinct from `email` / `phone`, admitted by the `email` / `phone` entitlement field), `bestEmail` / `bestEmail2` and `bestPhone` / `bestPhone2` (the best and runner-up contact over every email / phone on the record, `email` / `phone` included — the pair the ModelMatch web app's agent export shows; same entitlement fields), `officePhone` (admitted by `phone`), `activeListings` (current active listings; null when unknown), and the profile-link columns `facebook`, `instagram`, `linkedin`, `twitter`, `youtube`, `tiktok`, `zillow`, `otherLinks` (a `; `-joined list of profile URLs on no known platform) — all admitted by the `links` entitlement field. Loans offer the list row's transaction-export fields (`employerName`, `employerNmlsId`, `brokerName`, `titleCompanyName`, `soldAgentName`, `listAgentName`, `coListAgentName`, `buyer1FirstMiddle` … `seller2Last`). In `csv` and `parquet` the two block columns are JSON-encoded cells; in `json` and `ndjson` they are nested objects. Windowed production (originators, agents, companies, branches): name `<field>_<n>mo` for n in 3, 6, 12, 14, 18, 24 to get a production field for that trailing window regardless of `period` — e.g. `volume_3mo`, `units_6mo`, `purchaseVolume_24mo`. Available for originators `volume`, `units`, `avgLoanAmount`, `purchaseVolume`, `purchaseUnits`, `refinanceVolume`, `refinanceUnits`, `conventionalPct`, `fhaPct`, `vaPct`; agents `volume`, `units`, `avgSoldPrice`, `buyerVolume`, `buyerUnits`, `sellerVolume`, `sellerUnits`, `totalOriginatorsWorkedWith`, `totalCompaniesWorkedWith`, `totalLendersWorkedWith`; companies `volume`, `units`, `avgLoanAmount`, `loCount`; branches `volume`, `units`, `avgLoanAmount`, `purchasePct`, `refinancePct`, `loCount`. Numbers (null when the window has no data); an entitlement that allows a field allows every window of it.
26090
26090
  */
26091
26091
  fields?: Array<string>;
26092
26092
  format?: BulkDeliveryFormat;
@@ -27226,12 +27226,12 @@ type PropertiesAnalyticsSummaryResponse = PropertiesAnalyticsSummaryResponses[ke
27226
27226
  type SubmitPropertiesBulkDeliveryData = {
27227
27227
  body?: PropertyListRequest & {
27228
27228
  /**
27229
- * A FORMATTED file: its columns, in order, with header labels and number formats — for `format` `csv` or `xlsx` only, and not combined with `fields` or a push-target `destination` (400 `columns_format_unsupported` / `columns_with_fields` / `columns_with_destination`). Every field a column reads is gated by the entitlement exactly as if it were listed in `fields`: a withheld field drops out of a column's fallback list, and a column with nothing left is omitted. An unknown field is a 400 `unknown_column_field`. No `id` column is added. A formatted `csv` starts with a UTF-8 byte-order mark and uses CRLF line endings, so Excel opens it with accented names intact. Columns may read any DTO field and any opt-in column `fields` documents, including the computed `governmentPct`, `branchCount` and `managerName` / `managerNmlsId`.
27229
+ * A FORMATTED file: its columns, in order, with header labels and number formats — for `format` `csv` or `xlsx` only, and not combined with `fields` or a push-target `destination` (400 `columns_format_unsupported` / `columns_with_fields` / `columns_with_destination`). Every field a column reads is gated by the entitlement exactly as if it were listed in `fields`: a withheld field drops out of a column's fallback list, and a column with nothing left is omitted. An unknown field is a 400 `unknown_column_field`. No `id` column is added. A formatted `csv` starts with a UTF-8 byte-order mark and uses CRLF line endings, so Excel opens it with accented names intact. Columns may read any DTO field and any opt-in column `fields` documents, including the computed `governmentPct`, `branchCount`, `managerName` / `managerNmlsId` and `licensedSince`.
27230
27230
  */
27231
27231
  columns?: Array<BulkDeliveryColumn>;
27232
27232
  destination?: BulkDeliveryDestination;
27233
27233
  /**
27234
- * Optional output column projection, named by the response DTO fields (the same camelCase fields the list endpoint returns, e.g. `city`, `interestRate`). Intersected with the entitlement scope's allowedFields and the entity's full column set. If empty after intersection, falls back to all columns. It also SELECTS the opt-in columns, which are not part of the list DTO and are never delivered unless named here: `communityLending` (properties, originators, companies, branches) — the Community Lending neighborhood profile, identical to the block on the entity's detail endpoint; `parties` (properties) — the mortgage parties attributed to the parcel, by attribution scope; `marketCount` / `countyCount` / `stateCount` / `zipCount` / `lenderCount` (originators) — the market-breadth rollups you can already filter on; and the computed `governmentPct` (originators: FHA + VA percent of loans, 0–100), `branchCount` (companies: NMLS branch count) and `managerName` / `managerNmlsId` (branches: the first branch manager). Agents also offer `email2` / `phone2` (the best-ranked email / phone distinct from `email` / `phone`, admitted by the `email` / `phone` entitlement field), `bestEmail` / `bestEmail2` and `bestPhone` / `bestPhone2` (the best and runner-up contact over every email / phone on the record, `email` / `phone` included — the pair the ModelMatch web app's agent export shows; same entitlement fields), `officePhone` (admitted by `phone`), `activeListings` (current active listings; null when unknown), and the profile-link columns `facebook`, `instagram`, `linkedin`, `twitter`, `youtube`, `tiktok`, `zillow`, `otherLinks` (a `; `-joined list of profile URLs on no known platform) — all admitted by the `links` entitlement field. Loans offer the list row's transaction-export fields (`employerName`, `employerNmlsId`, `brokerName`, `titleCompanyName`, `soldAgentName`, `listAgentName`, `coListAgentName`, `buyer1FirstMiddle` … `seller2Last`). In `csv` and `parquet` the two block columns are JSON-encoded cells; in `json` and `ndjson` they are nested objects. Windowed production (originators, agents, companies, branches): name `<field>_<n>mo` for n in 3, 6, 12, 14, 18, 24 to get a production field for that trailing window regardless of `period` — e.g. `volume_3mo`, `units_6mo`, `purchaseVolume_24mo`. Available for originators `volume`, `units`, `avgLoanAmount`, `purchaseVolume`, `purchaseUnits`, `refinanceVolume`, `refinanceUnits`, `conventionalPct`, `fhaPct`, `vaPct`; agents `volume`, `units`, `avgSoldPrice`, `buyerVolume`, `buyerUnits`, `sellerVolume`, `sellerUnits`, `totalOriginatorsWorkedWith`, `totalCompaniesWorkedWith`, `totalLendersWorkedWith`; companies `volume`, `units`, `avgLoanAmount`, `loCount`; branches `volume`, `units`, `avgLoanAmount`, `purchasePct`, `refinancePct`, `loCount`. Numbers (null when the window has no data); an entitlement that allows a field allows every window of it.
27234
+ * Optional output column projection, named by the response DTO fields (the same camelCase fields the list endpoint returns, e.g. `city`, `interestRate`). Intersected with the entitlement scope's allowedFields and the entity's full column set. If empty after intersection, falls back to all columns. It also SELECTS the opt-in columns, which are not part of the list DTO and are never delivered unless named here: `communityLending` (properties, originators, companies, branches) — the Community Lending neighborhood profile, identical to the block on the entity's detail endpoint; `parties` (properties) — the mortgage parties attributed to the parcel, by attribution scope; `marketCount` / `countyCount` / `stateCount` / `zipCount` / `lenderCount` (originators) — the market-breadth rollups you can already filter on; and the computed `governmentPct` (originators: FHA + VA percent of loans, 0–100), `branchCount` (companies: NMLS branch count) and `managerName` / `managerNmlsId` (branches: the first branch manager) and `licensedSince` (branches: first-licensed date, the earliest license `issueDate`, YYYY-MM-DD). Agents also offer `email2` / `phone2` (the best-ranked email / phone distinct from `email` / `phone`, admitted by the `email` / `phone` entitlement field), `bestEmail` / `bestEmail2` and `bestPhone` / `bestPhone2` (the best and runner-up contact over every email / phone on the record, `email` / `phone` included — the pair the ModelMatch web app's agent export shows; same entitlement fields), `officePhone` (admitted by `phone`), `activeListings` (current active listings; null when unknown), and the profile-link columns `facebook`, `instagram`, `linkedin`, `twitter`, `youtube`, `tiktok`, `zillow`, `otherLinks` (a `; `-joined list of profile URLs on no known platform) — all admitted by the `links` entitlement field. Loans offer the list row's transaction-export fields (`employerName`, `employerNmlsId`, `brokerName`, `titleCompanyName`, `soldAgentName`, `listAgentName`, `coListAgentName`, `buyer1FirstMiddle` … `seller2Last`). In `csv` and `parquet` the two block columns are JSON-encoded cells; in `json` and `ndjson` they are nested objects. Windowed production (originators, agents, companies, branches): name `<field>_<n>mo` for n in 3, 6, 12, 14, 18, 24 to get a production field for that trailing window regardless of `period` — e.g. `volume_3mo`, `units_6mo`, `purchaseVolume_24mo`. Available for originators `volume`, `units`, `avgLoanAmount`, `purchaseVolume`, `purchaseUnits`, `refinanceVolume`, `refinanceUnits`, `conventionalPct`, `fhaPct`, `vaPct`; agents `volume`, `units`, `avgSoldPrice`, `buyerVolume`, `buyerUnits`, `sellerVolume`, `sellerUnits`, `totalOriginatorsWorkedWith`, `totalCompaniesWorkedWith`, `totalLendersWorkedWith`; companies `volume`, `units`, `avgLoanAmount`, `loCount`; branches `volume`, `units`, `avgLoanAmount`, `purchasePct`, `refinancePct`, `loCount`. Numbers (null when the window has no data); an entitlement that allows a field allows every window of it.
27235
27235
  */
27236
27236
  fields?: Array<string>;
27237
27237
  format?: BulkDeliveryFormat;
@@ -29276,7 +29276,7 @@ declare class Companies {
29276
29276
  /**
29277
29277
  * Company borrower retention (weekly snapshot)
29278
29278
  *
29279
- * How well a company keeps its borrowers when they refinance: kept (refinanced again by ANY LO at the company) vs lost to other companies, with the capturing companies and LOs, timing, the trend, a verdict, and the company's leakiest LOs. Precomputed weekly — `computedAt` says when. 404 means not computed (no loans since 2017, or not reached yet), never zero retention.
29279
+ * How well a company keeps its borrowers when they refinance: kept (refinanced again by ANY LO at the company) vs lost to other companies, with the capturing companies and LOs, timing, the trend, a verdict, and per-LO retention for the company's own loan officers. Precomputed weekly — `computedAt` says when. 404 means not computed (no loans since 2017, or not reached yet), never zero retention.
29280
29280
  */
29281
29281
  static retention<ThrowOnError extends boolean = false>(options: Options<CompanyRetentionData, ThrowOnError>): RequestResult<CompanyRetentionResponses, CompanyRetentionErrors, ThrowOnError>;
29282
29282
  /**