Market
Loan officer movement totals for a period
Period totals of loan-officer movement: company joins, company-to-company transitions, complete company departures, industry exits, newly licensed loan officers, the working head-count at both ends of the window and its net change, plus the trailing-14-month production of the loan officers who moved. 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.
Authorization
Query parameters
dateRangestringReporting 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.
statestringTwo-letter state. Matches the loan officer's CURRENT NMLS location, not where they were when they moved.
statesstringComma-separated two-letter states (e.g. a region). ORed; combined with state when both are sent.
citystringExact city name of the loan officer's current NMLS location. Pair with state.
companyCategorystringComma-separated company categories (BANK, CU, OTHER) applied to the company whose roster changed — the destination for arrivals, the company left for departures.
Responses
200objectOKShow attributesHide attributes
activeAtEndnumberrequiredLoan officers with an open employment record on the last day of the window.
activeAtStartnumberrequiredLoan officers with an open employment record on the day before the window starts.
companyDeparturesnumberrequiredLoan officers whose every record at a company ended in the window (a complete departure from that company). Approximate distinct count.
industryExitsnumberrequiredLoan officers with no open employment anywhere whose last employment ended in the window.
joinsnumberrequiredLoan officers who started at a company in the window (first record at that company), new entrants included. Approximate distinct count (±~1%).
moversScannednumberrequiredHow many moving loan officers the volume figures cover (each counted once, at their latest move in the window).
moversTruncatedbooleanrequiredAlways false: every mover in the window is covered. Kept for compatibility.
netnumberrequiredactiveAtEnd − activeAtStart — the change in working loan officers over the window.
newlyLicensednumberrequiredLoan officers first licensed or registered in the window (each counted once, ever).
transitionsnumberrequiredLoan officers who started at a company in the window after a previous employer — company-to-company moves. Approximate distinct count.
unitsTransferrednumberrequiredvolumeTransferrednumberrequiredTrailing 14-month origination volume of the loan officers counted in transitions (see moversScanned), as of the last weekly refresh.
windowobjectrequiredThe resolved reporting window (inclusive dates).
Show child attributesHide child attributes
endDatestringrequiredmonthsnumberrequiredstartDatestringrequired202objectStill computing — poll the same request after `retryAfterMs`. See `MovementComputing`.Show attributesHide attributes
retryAfterMsintegerrequiredSuggested wait before repeating the SAME request (also sent as Retry-After, in seconds).
statusenumrequiredcomputing400objectValidation error401objectUnauthorized403objectForbidden (authenticated, but missing required context — e.g. no active organization)404objectNot found413objectResponse payload too large — detail endpoint capped to fit Lambda response limits503objectSearch timed out or the cluster is overloaded — retry after `Retry-After` seconds.