Companies that gained the most loan officers
Companies ranked by loan officers gained in the window (or by net = gained − lost with rankBy=net). Each row carries gained, lost and net, plus the trailing-14-month production of the loan officers on the ranked side. A move is dated by the loan officer's FIRST record at the new company; a loan officer licensed in several states counts once per company. Location filters use the loan officer's CURRENT NMLS location. Results refresh weekly. A response not ready within 25 s answers 202 (MovementComputing): repeat the same request after retryAfterMs.
In: header
Query Parameters
Reporting window. last_N_months = the N most recent COMPLETED calendar months (the current month is excluded); year_to_date = Jan 1 through the end of last month; YYYY (or fy_YYYY) = that calendar year; all_time. Default last_12_months.
^(?:last_\d{1,3}_months|year_to_date|all_time|(?:fy_|fiscal_)?\d{4})$Two-letter state. Matches the loan officer's CURRENT NMLS location, not where they were when they moved.
^[A-Za-z]{2}$Comma-separated two-letter states (e.g. a region). ORed; combined with state when both are sent.
^[A-Za-z]{2}(?:,[A-Za-z]{2})*$Exact city name of the loan officer's current NMLS location. Pair with state.
1 <= length <= 100Comma-separated company categories (BANK, CU, OTHER) applied to the company whose roster changed — the destination for arrivals, the company left for departures.
^(?:BANK|CU|OTHER)(?:,(?:BANK|CU|OTHER))*$count (default) ranks by LOs gained (most-gained) or lost (most-lost); net ranks by gained − lost (descending for most-gained, ascending for most-lost).
"count" | "net"Rows to return (default 10, max 100).
1 <= value <= 100Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/v1/market/movement/most-gained"{
"data": [
{
"avgLoanSize": 0,
"companyName": "string",
"companyNmlsId": "string",
"gained": 0,
"lost": 0,
"net": 0,
"units": 0,
"volume": 0,
"volumeTruncated": true
}
],
"truncated": true,
"window": {
"endDate": "string",
"months": 0,
"startDate": "string"
}
}{
"retryAfterMs": 5000,
"status": "computing"
}{
"error": "string"
}{
"error": "string"
}{
"error": "string"
}{
"error": "string"
}{
"error": "string",
"limit": 0,
"size": 0
}Did the move pay off? Production before vs after moving GET
For loan officers who moved in the window (default last 24 months), annualized production at the previous employer vs the new one, bucketed by pre-move tier (Low <25, Mid 25–99, High 100+ units/yr). Each side is annualized over the months actually spent there inside a trailing 24-month production window; movers with fewer than `windowMonths` months on either side are excluded. A move is dated by the loan officer's FIRST record at the new company; a loan officer licensed in several states counts once per company. Location filters use the loan officer's CURRENT NMLS location. Results refresh weekly. A response not ready within 25 s answers `202` (`MovementComputing`): repeat the same request after `retryAfterMs`.
Companies that lost the most loan officers GET
Companies ranked by loan officers lost in the window (or by net = gained − lost with `rankBy=net`). Each row carries gained, lost and net, plus the trailing-14-month production of the loan officers on the ranked side. A move is dated by the loan officer's FIRST record at the new company; a loan officer licensed in several states counts once per company. Location filters use the loan officer's CURRENT NMLS location. Results refresh weekly. A response not ready within 25 s answers `202` (`MovementComputing`): repeat the same request after `retryAfterMs`.