Market

Did the move pay off? Production before vs after moving

GET
/v1/market/movement/cohort-payoff

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.

Authorization

x-api-key<token>

In: header

Query Parameters

dateRange?string

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.

Match^(?:last_\d{1,3}_months|year_to_date|all_time|(?:fy_|fiscal_)?\d{4})$
state?string

Two-letter state. Matches the loan officer's CURRENT NMLS location, not where they were when they moved.

Match^[A-Za-z]{2}$
states?string

Comma-separated two-letter states (e.g. a region). ORed; combined with state when both are sent.

Match^[A-Za-z]{2}(?:,[A-Za-z]{2})*$
city?string

Exact city name of the loan officer's current NMLS location. Pair with state.

Length1 <= length <= 100
companyCategory?string

Comma-separated company categories (BANK, CU, OTHER) applied to the company whose roster changed — the destination for arrivals, the company left for departures.

Match^(?:BANK|CU|OTHER)(?:,(?:BANK|CU|OTHER))*$
windowMonths?string

Minimum months a mover must have on EACH side of the move inside the 24-month production window (default 3).

Value in"3" | "6" | "12"

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/v1/market/movement/cohort-payoff"
{
  "caveats": {
    "floorMonths": 0,
    "totalMoversAnalyzed": 0,
    "totalMoversExcluded": 0,
    "totalMoversInRange": 0,
    "truncated": true
  },
  "tiers": [
    {
      "delta": {
        "unitsChangePct": 0,
        "volumeChangePct": 0
      },
      "moverCount": 0,
      "postMove": {
        "meanUnits": 0,
        "meanVolume": 0,
        "medianUnits": 0,
        "medianVolume": 0
      },
      "preMove": {
        "meanUnits": 0,
        "meanVolume": 0,
        "medianUnits": 0,
        "medianVolume": 0
      },
      "tierKey": "low",
      "tierLabel": "string"
    }
  ],
  "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
}