@model-match/api 3.54.0 → 3.56.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/openapi.json CHANGED
@@ -29354,6 +29354,14 @@
29354
29354
  },
29355
29355
  "MarketCommunityBucket": {
29356
29356
  "properties": {
29357
+ "affordableLoanOriginations": {
29358
+ "type": "number"
29359
+ },
29360
+ "affordableLoanSharePct": {
29361
+ "description": "Share (0-100) of `originations` that are affordable loans.",
29362
+ "nullable": true,
29363
+ "type": "number"
29364
+ },
29357
29365
  "avgMinorityTractPct": {
29358
29366
  "description": "Average non-white share (0-100) of the neighborhood population across originations that carry it. Values describe the U.S. Census tract (neighborhood) as a whole — tract-level aggregate statistics, never an individual, household or applicant attribute. Percentages are 0-100.",
29359
29367
  "nullable": true,
@@ -29364,6 +29372,10 @@
29364
29372
  "nullable": true,
29365
29373
  "type": "number"
29366
29374
  },
29375
+ "craEligibleAndAffordableOriginations": {
29376
+ "description": "Originations both CRA-eligible and affordable.",
29377
+ "type": "number"
29378
+ },
29367
29379
  "craEligibleCoverage": {
29368
29380
  "description": "Originations carrying a CRA-eligibility determination — the denominator of `craEligibleSharePct`. Effectively the whole population: the determination is loan-level and is present on every record.",
29369
29381
  "type": "number"
@@ -29421,6 +29433,14 @@
29421
29433
  "originations": {
29422
29434
  "description": "Originations matched by the filters in this scope.",
29423
29435
  "type": "number"
29436
+ },
29437
+ "underservedMarketOriginations": {
29438
+ "type": "number"
29439
+ },
29440
+ "underservedMarketSharePct": {
29441
+ "description": "Share (0-100) of `originations` in an underserved market.",
29442
+ "nullable": true,
29443
+ "type": "number"
29424
29444
  }
29425
29445
  },
29426
29446
  "required": [
@@ -29439,7 +29459,12 @@
29439
29459
  "minorityTractCoverage",
29440
29460
  "majorityMinorityTractSharePct",
29441
29461
  "avgMinorityTractPct",
29442
- "avgTractIncomeVsMetroPct"
29462
+ "avgTractIncomeVsMetroPct",
29463
+ "underservedMarketOriginations",
29464
+ "underservedMarketSharePct",
29465
+ "affordableLoanOriginations",
29466
+ "affordableLoanSharePct",
29467
+ "craEligibleAndAffordableOriginations"
29443
29468
  ],
29444
29469
  "type": "object"
29445
29470
  },
@@ -29514,18 +29539,34 @@
29514
29539
  ],
29515
29540
  "description": "FFIEC income classification of the neighborhood the property sits in. A tract-level aggregate statistic describing the neighborhood, never an individual, household or applicant attribute. Carried on roughly a fifth of originations, so this filter narrows sharply."
29516
29541
  },
29542
+ "MarketCommunityInterval": {
29543
+ "description": "Also return `series`: the mix per bucket.",
29544
+ "enum": [
29545
+ "monthly",
29546
+ "quarterly",
29547
+ "yearly"
29548
+ ],
29549
+ "type": "string"
29550
+ },
29517
29551
  "MarketCommunityLendingRequest": {
29518
29552
  "additionalProperties": false,
29519
29553
  "properties": {
29520
29554
  "advancedFilters": {
29521
29555
  "$ref": "#/components/schemas/FilterNode"
29522
29556
  },
29557
+ "compare": {
29558
+ "description": "Also return `previous` (preceding equal-length window).",
29559
+ "type": "boolean"
29560
+ },
29523
29561
  "filters": {
29524
29562
  "$ref": "#/components/schemas/FilterNode"
29525
29563
  },
29526
29564
  "flatFilters": {
29527
29565
  "$ref": "#/components/schemas/MarketFlatFilters"
29528
29566
  },
29567
+ "interval": {
29568
+ "$ref": "#/components/schemas/MarketCommunityInterval"
29569
+ },
29529
29570
  "limit": {
29530
29571
  "description": "Maximum buckets when `slice` is supplied (default 25, max 200).",
29531
29572
  "maximum": 200,
@@ -29565,6 +29606,22 @@
29565
29606
  "overall": {
29566
29607
  "$ref": "#/components/schemas/MarketCommunityMix"
29567
29608
  },
29609
+ "previous": {
29610
+ "allOf": [
29611
+ {
29612
+ "$ref": "#/components/schemas/MarketCommunityMix"
29613
+ },
29614
+ {
29615
+ "description": "With `compare: true`: the mix over the preceding window of equal length."
29616
+ }
29617
+ ]
29618
+ },
29619
+ "series": {
29620
+ "items": {
29621
+ "$ref": "#/components/schemas/MarketCommunitySeriesBucket"
29622
+ },
29623
+ "type": "array"
29624
+ },
29568
29625
  "slice": {
29569
29626
  "properties": {
29570
29627
  "buckets": {
@@ -29591,6 +29648,14 @@
29591
29648
  },
29592
29649
  "MarketCommunityMix": {
29593
29650
  "properties": {
29651
+ "affordableLoanOriginations": {
29652
+ "type": "number"
29653
+ },
29654
+ "affordableLoanSharePct": {
29655
+ "description": "Share (0-100) of `originations` that are affordable loans.",
29656
+ "nullable": true,
29657
+ "type": "number"
29658
+ },
29594
29659
  "avgMinorityTractPct": {
29595
29660
  "description": "Average non-white share (0-100) of the neighborhood population across originations that carry it. Values describe the U.S. Census tract (neighborhood) as a whole — tract-level aggregate statistics, never an individual, household or applicant attribute. Percentages are 0-100.",
29596
29661
  "nullable": true,
@@ -29601,6 +29666,10 @@
29601
29666
  "nullable": true,
29602
29667
  "type": "number"
29603
29668
  },
29669
+ "craEligibleAndAffordableOriginations": {
29670
+ "description": "Originations both CRA-eligible and affordable.",
29671
+ "type": "number"
29672
+ },
29604
29673
  "craEligibleCoverage": {
29605
29674
  "description": "Originations carrying a CRA-eligibility determination — the denominator of `craEligibleSharePct`. Effectively the whole population: the determination is loan-level and is present on every record.",
29606
29675
  "type": "number"
@@ -29654,6 +29723,14 @@
29654
29723
  "originations": {
29655
29724
  "description": "Originations matched by the filters in this scope.",
29656
29725
  "type": "number"
29726
+ },
29727
+ "underservedMarketOriginations": {
29728
+ "type": "number"
29729
+ },
29730
+ "underservedMarketSharePct": {
29731
+ "description": "Share (0-100) of `originations` in an underserved market.",
29732
+ "nullable": true,
29733
+ "type": "number"
29657
29734
  }
29658
29735
  },
29659
29736
  "required": [
@@ -29671,7 +29748,133 @@
29671
29748
  "minorityTractCoverage",
29672
29749
  "majorityMinorityTractSharePct",
29673
29750
  "avgMinorityTractPct",
29674
- "avgTractIncomeVsMetroPct"
29751
+ "avgTractIncomeVsMetroPct",
29752
+ "underservedMarketOriginations",
29753
+ "underservedMarketSharePct",
29754
+ "affordableLoanOriginations",
29755
+ "affordableLoanSharePct",
29756
+ "craEligibleAndAffordableOriginations"
29757
+ ],
29758
+ "type": "object"
29759
+ },
29760
+ "MarketCommunitySeriesBucket": {
29761
+ "properties": {
29762
+ "affordableLoanOriginations": {
29763
+ "type": "number"
29764
+ },
29765
+ "affordableLoanSharePct": {
29766
+ "description": "Share (0-100) of `originations` that are affordable loans.",
29767
+ "nullable": true,
29768
+ "type": "number"
29769
+ },
29770
+ "avgMinorityTractPct": {
29771
+ "description": "Average non-white share (0-100) of the neighborhood population across originations that carry it. Values describe the U.S. Census tract (neighborhood) as a whole — tract-level aggregate statistics, never an individual, household or applicant attribute. Percentages are 0-100.",
29772
+ "nullable": true,
29773
+ "type": "number"
29774
+ },
29775
+ "avgTractIncomeVsMetroPct": {
29776
+ "description": "Average neighborhood median family income as a percent of its metro area's — 100 is parity, and it legitimately exceeds 100. Values describe the U.S. Census tract (neighborhood) as a whole — tract-level aggregate statistics, never an individual, household or applicant attribute. Percentages are 0-100.",
29777
+ "nullable": true,
29778
+ "type": "number"
29779
+ },
29780
+ "craEligibleAndAffordableOriginations": {
29781
+ "description": "Originations both CRA-eligible and affordable.",
29782
+ "type": "number"
29783
+ },
29784
+ "craEligibleCoverage": {
29785
+ "description": "Originations carrying a CRA-eligibility determination — the denominator of `craEligibleSharePct`. Effectively the whole population: the determination is loan-level and is present on every record.",
29786
+ "type": "number"
29787
+ },
29788
+ "craEligibleOriginations": {
29789
+ "type": "number"
29790
+ },
29791
+ "craEligibleSharePct": {
29792
+ "description": "Share (0-100) of `craEligibleCoverage` that is CRA-eligible — a low- or moderate-income neighborhood OR a low- or moderate-income borrower. Null when nothing in scope carries the determination.",
29793
+ "nullable": true,
29794
+ "type": "number"
29795
+ },
29796
+ "from": {
29797
+ "description": "Bucket start (inclusive), YYYY-MM-DD.",
29798
+ "type": "string"
29799
+ },
29800
+ "incomeBandCoverage": {
29801
+ "description": "Originations whose neighborhood carries an income band — the denominator of `lowModIncomeTractSharePct`, `middleIncomeTractSharePct` and every `incomeBands[].sharePct`. READ THIS FIRST: roughly a fifth of records carry a band, and a share taken over the full population instead is about 4.5x too low.",
29802
+ "type": "number"
29803
+ },
29804
+ "incomeBands": {
29805
+ "items": {
29806
+ "$ref": "#/components/schemas/MarketCommunityIncomeBand"
29807
+ },
29808
+ "type": "array"
29809
+ },
29810
+ "lowModIncomeTractOriginations": {
29811
+ "type": "number"
29812
+ },
29813
+ "lowModIncomeTractSharePct": {
29814
+ "description": "Share (0-100) of `incomeBandCoverage` originated in a low- or moderate-income neighborhood. Values describe the U.S. Census tract (neighborhood) as a whole — tract-level aggregate statistics, never an individual, household or applicant attribute. Percentages are 0-100.",
29815
+ "nullable": true,
29816
+ "type": "number"
29817
+ },
29818
+ "majorityMinorityTractOriginations": {
29819
+ "type": "number"
29820
+ },
29821
+ "majorityMinorityTractSharePct": {
29822
+ "description": "Share (0-100) of `minorityTractCoverage` originated in a majority-minority neighborhood. Values describe the U.S. Census tract (neighborhood) as a whole — tract-level aggregate statistics, never an individual, household or applicant attribute. Percentages are 0-100.",
29823
+ "nullable": true,
29824
+ "type": "number"
29825
+ },
29826
+ "middleIncomeTractOriginations": {
29827
+ "type": "number"
29828
+ },
29829
+ "middleIncomeTractSharePct": {
29830
+ "description": "Share (0-100) of `incomeBandCoverage` originated in a middle-income neighborhood. Values describe the U.S. Census tract (neighborhood) as a whole — tract-level aggregate statistics, never an individual, household or applicant attribute. Percentages are 0-100.",
29831
+ "nullable": true,
29832
+ "type": "number"
29833
+ },
29834
+ "minorityTractCoverage": {
29835
+ "description": "Originations whose neighborhood carries the majority-minority determination — the denominator of `majorityMinorityTractSharePct` and the population behind `avgMinorityTractPct`. About half of all records; it is a different denominator from `incomeBandCoverage`.",
29836
+ "type": "number"
29837
+ },
29838
+ "originations": {
29839
+ "description": "Originations matched by the filters in this scope.",
29840
+ "type": "number"
29841
+ },
29842
+ "to": {
29843
+ "description": "Bucket end (exclusive), YYYY-MM-DD.",
29844
+ "type": "string"
29845
+ },
29846
+ "underservedMarketOriginations": {
29847
+ "type": "number"
29848
+ },
29849
+ "underservedMarketSharePct": {
29850
+ "description": "Share (0-100) of `originations` in an underserved market.",
29851
+ "nullable": true,
29852
+ "type": "number"
29853
+ }
29854
+ },
29855
+ "required": [
29856
+ "from",
29857
+ "to",
29858
+ "originations",
29859
+ "craEligibleOriginations",
29860
+ "craEligibleCoverage",
29861
+ "craEligibleSharePct",
29862
+ "incomeBandCoverage",
29863
+ "lowModIncomeTractOriginations",
29864
+ "lowModIncomeTractSharePct",
29865
+ "middleIncomeTractOriginations",
29866
+ "middleIncomeTractSharePct",
29867
+ "incomeBands",
29868
+ "majorityMinorityTractOriginations",
29869
+ "minorityTractCoverage",
29870
+ "majorityMinorityTractSharePct",
29871
+ "avgMinorityTractPct",
29872
+ "avgTractIncomeVsMetroPct",
29873
+ "underservedMarketOriginations",
29874
+ "underservedMarketSharePct",
29875
+ "affordableLoanOriginations",
29876
+ "affordableLoanSharePct",
29877
+ "craEligibleAndAffordableOriginations"
29675
29878
  ],
29676
29879
  "type": "object"
29677
29880
  },
@@ -29787,6 +29990,9 @@
29787
29990
  "appraisedValue": {
29788
29991
  "$ref": "#/components/schemas/NumericFilterValue"
29789
29992
  },
29993
+ "borrowerGeneration": {
29994
+ "$ref": "#/components/schemas/TextFilterValue"
29995
+ },
29790
29996
  "channel": {
29791
29997
  "$ref": "#/components/schemas/TextFilterValue"
29792
29998
  },
@@ -29825,12 +30031,18 @@
29825
30031
  "creditScore": {
29826
30032
  "$ref": "#/components/schemas/NumericFilterValue"
29827
30033
  },
30034
+ "currentHomeOwner": {
30035
+ "$ref": "#/components/schemas/BooleanFilterValue"
30036
+ },
29828
30037
  "dti": {
29829
30038
  "$ref": "#/components/schemas/NumericFilterValue"
29830
30039
  },
29831
30040
  "dtifront": {
29832
30041
  "$ref": "#/components/schemas/NumericFilterValue"
29833
30042
  },
30043
+ "firstTimeHomebuyer": {
30044
+ "$ref": "#/components/schemas/BooleanFilterValue"
30045
+ },
29834
30046
  "hmdaActionTaken": {
29835
30047
  "$ref": "#/components/schemas/TextFilterValue"
29836
30048
  },
@@ -29846,6 +30058,9 @@
29846
30058
  "loanPurpose": {
29847
30059
  "$ref": "#/components/schemas/TextFilterValue"
29848
30060
  },
30061
+ "loanStatus": {
30062
+ "$ref": "#/components/schemas/MarketLoanStatus"
30063
+ },
29849
30064
  "loanTerm": {
29850
30065
  "$ref": "#/components/schemas/NumericFilterValue"
29851
30066
  },
@@ -29924,6 +30139,9 @@
29924
30139
  "purchasePrice": {
29925
30140
  "$ref": "#/components/schemas/NumericFilterValue"
29926
30141
  },
30142
+ "selfEmployed": {
30143
+ "$ref": "#/components/schemas/BooleanFilterValue"
30144
+ },
29927
30145
  "state": {
29928
30146
  "$ref": "#/components/schemas/TextFilterValue"
29929
30147
  },
@@ -29937,6 +30155,9 @@
29937
30155
  }
29938
30156
  ]
29939
30157
  },
30158
+ "veteranIndicator": {
30159
+ "$ref": "#/components/schemas/BooleanFilterValue"
30160
+ },
29940
30161
  "zip": {
29941
30162
  "$ref": "#/components/schemas/TextFilterValue"
29942
30163
  }
@@ -30009,6 +30230,50 @@
30009
30230
  ],
30010
30231
  "type": "object"
30011
30232
  },
30233
+ "MarketLoanStatus": {
30234
+ "anyOf": [
30235
+ {
30236
+ "description": "One of (case-insensitive): funded, purchased, not_funded, pending",
30237
+ "enum": [
30238
+ "funded",
30239
+ "purchased",
30240
+ "not_funded",
30241
+ "pending"
30242
+ ],
30243
+ "type": "string"
30244
+ },
30245
+ {
30246
+ "description": "Match any of these values",
30247
+ "items": {
30248
+ "description": "One of (case-insensitive): funded, purchased, not_funded, pending",
30249
+ "enum": [
30250
+ "funded",
30251
+ "purchased",
30252
+ "not_funded",
30253
+ "pending"
30254
+ ],
30255
+ "type": "string"
30256
+ },
30257
+ "type": "array"
30258
+ },
30259
+ {
30260
+ "description": "Fuzzy text match",
30261
+ "properties": {
30262
+ "match": {
30263
+ "type": "string"
30264
+ }
30265
+ },
30266
+ "required": [
30267
+ "match"
30268
+ ],
30269
+ "type": "object"
30270
+ },
30271
+ {
30272
+ "nullable": true
30273
+ }
30274
+ ],
30275
+ "description": "HMDA action, else funding/denial/lock date evidence."
30276
+ },
30012
30277
  "MarketMeasure": {
30013
30278
  "description": "Which metric to compute. Every field-backed measure is sentinel-guarded: the source encodes unknown values as an out-of-range fill, so values outside the measure's plausible range are dropped before it is aggregated. Ranges: `volume` 0–100,000,000; `avgRate` 0–25; `avgLoanAmount` 0–100,000,000; `avgCreditScore` 300–850; `avgLTV` 0–999; `avgDTI` 0–999; `avgIncome` 0–100,000,000; `avgAppraisedValue` 0–100,000,000; `avgPurchasePrice` 0–100,000,000; `avgDtiFront` 0–999; `avgCombinedLtv` 0–999; `avgLoanTerm` 0–1,200; `originatedVolume` 0–100,000,000; `originatedAvgDti` 0–100. `units` and `originatedUnits` are document counts and are not guarded. Each response reports how many documents its guard excluded, so a mean taken over 98% of the data can be told apart from one taken over 60%. NOTE on population: `units` and `volume` cover loan APPLICATIONS of every outcome — denials, withdrawals and secondary-market purchases included — and so does `avgDTI`, while `originatedUnits`, `originatedVolume` and `originatedAvgDti` cover originations only.",
30014
30279
  "enum": [
@@ -44471,7 +44736,7 @@
44471
44736
  "info": {
44472
44737
  "description": "ModelMatch API — mortgage and real-estate market data.\n\n## Bulk delivery limits\n\nThe `POST /{entity}/bulk-delivery` endpoints export a full result set to\nS3 as NDJSON, JSON, CSV, or Parquet.\n\n- **Up to 5,000 rows per delivery: no entitlement required.** Available to\n every authenticated caller.\n- **Above 5,000 rows: requires the entity's `bulk-delivery.{entity}`\n entitlement** (e.g. `bulk-delivery.loans`). The grant's scope sets your\n row ceiling and may also restrict which rows and fields you receive.\n\nA delivery that would exceed the limit available to you is rejected with\n`403 entitlement_missing`, reporting the matched row count and the ceiling\nthat applied. To stay under the limit, pass `limit` — the job then delivers\n(and bills for) only the first `limit` rows of a broader query.\n\n**Need a higher limit?** Email support@modelmatch.com to request the\nentitlement. Limits are raised per organization and per entity.\n\nBulk delivery is billed at 1 credit per delivered row whether or not\nan entitlement is held.\n\nInstead of a download, a delivery can be sent to a push target configured\non your workspace: pass `destination: { type: \"push-target\", targetId }`.\nThe same limits and billing apply.",
44473
44738
  "title": "ModelMatch API",
44474
- "version": "3.120.0"
44739
+ "version": "3.122.0"
44475
44740
  },
44476
44741
  "openapi": "3.1.0",
44477
44742
  "paths": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@model-match/api",
3
- "version": "3.54.0",
3
+ "version": "3.56.0",
4
4
  "description": "TypeScript client for the ModelMatch API",
5
5
  "license": "MIT",
6
6
  "files": [