@model-match/api 3.55.0 → 3.57.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
@@ -216,6 +216,27 @@
216
216
  ],
217
217
  "type": "object"
218
218
  },
219
+ "AgentAka": {
220
+ "properties": {
221
+ "lastTransactionDate": {
222
+ "nullable": true,
223
+ "type": "string"
224
+ },
225
+ "name": {
226
+ "type": "string"
227
+ },
228
+ "transactions": {
229
+ "nullable": true,
230
+ "type": "number"
231
+ }
232
+ },
233
+ "required": [
234
+ "name",
235
+ "transactions",
236
+ "lastTransactionDate"
237
+ ],
238
+ "type": "object"
239
+ },
219
240
  "AgentChartMeasure": {
220
241
  "default": "units",
221
242
  "description": "Which metric each bar reports, AND what the bars are ranked by — the list is ordered by the measure you ask for, descending. Defaults to `units`, so an unqualified \"top originators\" means the busiest; pass `volume` for the biggest by dollars, or an average to rank by that average. Two things to know about the averages specifically. Buckets built from fewer than 5 documents are dropped from an average chart entirely, because a mean says nothing about how many transactions produced it and a single-transaction bucket would otherwise outrank real ones; no floor is applied to `units` or `volume`, where a lone large transaction is a legitimate top bar. And ranking a bucket list by a sub-aggregated average is approximate in the search engine — each shard contributes its own local top-N before they are merged — so treat the ordering of an average chart as indicative near the boundary rather than exact. Every bucket publishes its own `count`, so the sample size behind a value is never implicit.",
@@ -262,6 +283,37 @@
262
283
  ],
263
284
  "type": "string"
264
285
  },
286
+ "AgentContactEntry": {
287
+ "properties": {
288
+ "lastTransactionDate": {
289
+ "nullable": true,
290
+ "type": "string"
291
+ },
292
+ "transactions": {
293
+ "nullable": true,
294
+ "type": "number"
295
+ },
296
+ "type": {
297
+ "enum": [
298
+ "email",
299
+ "mobile",
300
+ "direct",
301
+ "office"
302
+ ],
303
+ "type": "string"
304
+ },
305
+ "value": {
306
+ "type": "string"
307
+ }
308
+ },
309
+ "required": [
310
+ "value",
311
+ "type",
312
+ "transactions",
313
+ "lastTransactionDate"
314
+ ],
315
+ "type": "object"
316
+ },
265
317
  "AgentContacts": {
266
318
  "properties": {
267
319
  "emails": {
@@ -420,6 +472,20 @@
420
472
  },
421
473
  {
422
474
  "properties": {
475
+ "akas": {
476
+ "description": "Name variations recorded on past transactions.",
477
+ "items": {
478
+ "$ref": "#/components/schemas/AgentAka"
479
+ },
480
+ "type": "array"
481
+ },
482
+ "contactHistory": {
483
+ "description": "Every email and phone on the record with how often and how recently it was seen (`contacts` without the counters).",
484
+ "items": {
485
+ "$ref": "#/components/schemas/AgentContactEntry"
486
+ },
487
+ "type": "array"
488
+ },
423
489
  "contacts": {
424
490
  "$ref": "#/components/schemas/AgentContacts"
425
491
  },
@@ -29354,6 +29420,14 @@
29354
29420
  },
29355
29421
  "MarketCommunityBucket": {
29356
29422
  "properties": {
29423
+ "affordableLoanOriginations": {
29424
+ "type": "number"
29425
+ },
29426
+ "affordableLoanSharePct": {
29427
+ "description": "Share (0-100) of `originations` that are affordable loans.",
29428
+ "nullable": true,
29429
+ "type": "number"
29430
+ },
29357
29431
  "avgMinorityTractPct": {
29358
29432
  "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
29433
  "nullable": true,
@@ -29364,6 +29438,10 @@
29364
29438
  "nullable": true,
29365
29439
  "type": "number"
29366
29440
  },
29441
+ "craEligibleAndAffordableOriginations": {
29442
+ "description": "Originations both CRA-eligible and affordable.",
29443
+ "type": "number"
29444
+ },
29367
29445
  "craEligibleCoverage": {
29368
29446
  "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
29447
  "type": "number"
@@ -29421,6 +29499,14 @@
29421
29499
  "originations": {
29422
29500
  "description": "Originations matched by the filters in this scope.",
29423
29501
  "type": "number"
29502
+ },
29503
+ "underservedMarketOriginations": {
29504
+ "type": "number"
29505
+ },
29506
+ "underservedMarketSharePct": {
29507
+ "description": "Share (0-100) of `originations` in an underserved market.",
29508
+ "nullable": true,
29509
+ "type": "number"
29424
29510
  }
29425
29511
  },
29426
29512
  "required": [
@@ -29439,7 +29525,12 @@
29439
29525
  "minorityTractCoverage",
29440
29526
  "majorityMinorityTractSharePct",
29441
29527
  "avgMinorityTractPct",
29442
- "avgTractIncomeVsMetroPct"
29528
+ "avgTractIncomeVsMetroPct",
29529
+ "underservedMarketOriginations",
29530
+ "underservedMarketSharePct",
29531
+ "affordableLoanOriginations",
29532
+ "affordableLoanSharePct",
29533
+ "craEligibleAndAffordableOriginations"
29443
29534
  ],
29444
29535
  "type": "object"
29445
29536
  },
@@ -29514,18 +29605,34 @@
29514
29605
  ],
29515
29606
  "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
29607
  },
29608
+ "MarketCommunityInterval": {
29609
+ "description": "Also return `series`: the mix per bucket.",
29610
+ "enum": [
29611
+ "monthly",
29612
+ "quarterly",
29613
+ "yearly"
29614
+ ],
29615
+ "type": "string"
29616
+ },
29517
29617
  "MarketCommunityLendingRequest": {
29518
29618
  "additionalProperties": false,
29519
29619
  "properties": {
29520
29620
  "advancedFilters": {
29521
29621
  "$ref": "#/components/schemas/FilterNode"
29522
29622
  },
29623
+ "compare": {
29624
+ "description": "Also return `previous` (preceding equal-length window).",
29625
+ "type": "boolean"
29626
+ },
29523
29627
  "filters": {
29524
29628
  "$ref": "#/components/schemas/FilterNode"
29525
29629
  },
29526
29630
  "flatFilters": {
29527
29631
  "$ref": "#/components/schemas/MarketFlatFilters"
29528
29632
  },
29633
+ "interval": {
29634
+ "$ref": "#/components/schemas/MarketCommunityInterval"
29635
+ },
29529
29636
  "limit": {
29530
29637
  "description": "Maximum buckets when `slice` is supplied (default 25, max 200).",
29531
29638
  "maximum": 200,
@@ -29565,6 +29672,22 @@
29565
29672
  "overall": {
29566
29673
  "$ref": "#/components/schemas/MarketCommunityMix"
29567
29674
  },
29675
+ "previous": {
29676
+ "allOf": [
29677
+ {
29678
+ "$ref": "#/components/schemas/MarketCommunityMix"
29679
+ },
29680
+ {
29681
+ "description": "With `compare: true`: the mix over the preceding window of equal length."
29682
+ }
29683
+ ]
29684
+ },
29685
+ "series": {
29686
+ "items": {
29687
+ "$ref": "#/components/schemas/MarketCommunitySeriesBucket"
29688
+ },
29689
+ "type": "array"
29690
+ },
29568
29691
  "slice": {
29569
29692
  "properties": {
29570
29693
  "buckets": {
@@ -29591,6 +29714,125 @@
29591
29714
  },
29592
29715
  "MarketCommunityMix": {
29593
29716
  "properties": {
29717
+ "affordableLoanOriginations": {
29718
+ "type": "number"
29719
+ },
29720
+ "affordableLoanSharePct": {
29721
+ "description": "Share (0-100) of `originations` that are affordable loans.",
29722
+ "nullable": true,
29723
+ "type": "number"
29724
+ },
29725
+ "avgMinorityTractPct": {
29726
+ "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.",
29727
+ "nullable": true,
29728
+ "type": "number"
29729
+ },
29730
+ "avgTractIncomeVsMetroPct": {
29731
+ "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.",
29732
+ "nullable": true,
29733
+ "type": "number"
29734
+ },
29735
+ "craEligibleAndAffordableOriginations": {
29736
+ "description": "Originations both CRA-eligible and affordable.",
29737
+ "type": "number"
29738
+ },
29739
+ "craEligibleCoverage": {
29740
+ "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.",
29741
+ "type": "number"
29742
+ },
29743
+ "craEligibleOriginations": {
29744
+ "type": "number"
29745
+ },
29746
+ "craEligibleSharePct": {
29747
+ "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.",
29748
+ "nullable": true,
29749
+ "type": "number"
29750
+ },
29751
+ "incomeBandCoverage": {
29752
+ "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.",
29753
+ "type": "number"
29754
+ },
29755
+ "incomeBands": {
29756
+ "items": {
29757
+ "$ref": "#/components/schemas/MarketCommunityIncomeBand"
29758
+ },
29759
+ "type": "array"
29760
+ },
29761
+ "lowModIncomeTractOriginations": {
29762
+ "type": "number"
29763
+ },
29764
+ "lowModIncomeTractSharePct": {
29765
+ "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.",
29766
+ "nullable": true,
29767
+ "type": "number"
29768
+ },
29769
+ "majorityMinorityTractOriginations": {
29770
+ "type": "number"
29771
+ },
29772
+ "majorityMinorityTractSharePct": {
29773
+ "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.",
29774
+ "nullable": true,
29775
+ "type": "number"
29776
+ },
29777
+ "middleIncomeTractOriginations": {
29778
+ "type": "number"
29779
+ },
29780
+ "middleIncomeTractSharePct": {
29781
+ "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.",
29782
+ "nullable": true,
29783
+ "type": "number"
29784
+ },
29785
+ "minorityTractCoverage": {
29786
+ "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`.",
29787
+ "type": "number"
29788
+ },
29789
+ "originations": {
29790
+ "description": "Originations matched by the filters in this scope.",
29791
+ "type": "number"
29792
+ },
29793
+ "underservedMarketOriginations": {
29794
+ "type": "number"
29795
+ },
29796
+ "underservedMarketSharePct": {
29797
+ "description": "Share (0-100) of `originations` in an underserved market.",
29798
+ "nullable": true,
29799
+ "type": "number"
29800
+ }
29801
+ },
29802
+ "required": [
29803
+ "originations",
29804
+ "craEligibleOriginations",
29805
+ "craEligibleCoverage",
29806
+ "craEligibleSharePct",
29807
+ "incomeBandCoverage",
29808
+ "lowModIncomeTractOriginations",
29809
+ "lowModIncomeTractSharePct",
29810
+ "middleIncomeTractOriginations",
29811
+ "middleIncomeTractSharePct",
29812
+ "incomeBands",
29813
+ "majorityMinorityTractOriginations",
29814
+ "minorityTractCoverage",
29815
+ "majorityMinorityTractSharePct",
29816
+ "avgMinorityTractPct",
29817
+ "avgTractIncomeVsMetroPct",
29818
+ "underservedMarketOriginations",
29819
+ "underservedMarketSharePct",
29820
+ "affordableLoanOriginations",
29821
+ "affordableLoanSharePct",
29822
+ "craEligibleAndAffordableOriginations"
29823
+ ],
29824
+ "type": "object"
29825
+ },
29826
+ "MarketCommunitySeriesBucket": {
29827
+ "properties": {
29828
+ "affordableLoanOriginations": {
29829
+ "type": "number"
29830
+ },
29831
+ "affordableLoanSharePct": {
29832
+ "description": "Share (0-100) of `originations` that are affordable loans.",
29833
+ "nullable": true,
29834
+ "type": "number"
29835
+ },
29594
29836
  "avgMinorityTractPct": {
29595
29837
  "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
29838
  "nullable": true,
@@ -29601,6 +29843,10 @@
29601
29843
  "nullable": true,
29602
29844
  "type": "number"
29603
29845
  },
29846
+ "craEligibleAndAffordableOriginations": {
29847
+ "description": "Originations both CRA-eligible and affordable.",
29848
+ "type": "number"
29849
+ },
29604
29850
  "craEligibleCoverage": {
29605
29851
  "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
29852
  "type": "number"
@@ -29613,6 +29859,10 @@
29613
29859
  "nullable": true,
29614
29860
  "type": "number"
29615
29861
  },
29862
+ "from": {
29863
+ "description": "Bucket start (inclusive), YYYY-MM-DD.",
29864
+ "type": "string"
29865
+ },
29616
29866
  "incomeBandCoverage": {
29617
29867
  "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.",
29618
29868
  "type": "number"
@@ -29654,9 +29904,23 @@
29654
29904
  "originations": {
29655
29905
  "description": "Originations matched by the filters in this scope.",
29656
29906
  "type": "number"
29907
+ },
29908
+ "to": {
29909
+ "description": "Bucket end (exclusive), YYYY-MM-DD.",
29910
+ "type": "string"
29911
+ },
29912
+ "underservedMarketOriginations": {
29913
+ "type": "number"
29914
+ },
29915
+ "underservedMarketSharePct": {
29916
+ "description": "Share (0-100) of `originations` in an underserved market.",
29917
+ "nullable": true,
29918
+ "type": "number"
29657
29919
  }
29658
29920
  },
29659
29921
  "required": [
29922
+ "from",
29923
+ "to",
29660
29924
  "originations",
29661
29925
  "craEligibleOriginations",
29662
29926
  "craEligibleCoverage",
@@ -29671,7 +29935,12 @@
29671
29935
  "minorityTractCoverage",
29672
29936
  "majorityMinorityTractSharePct",
29673
29937
  "avgMinorityTractPct",
29674
- "avgTractIncomeVsMetroPct"
29938
+ "avgTractIncomeVsMetroPct",
29939
+ "underservedMarketOriginations",
29940
+ "underservedMarketSharePct",
29941
+ "affordableLoanOriginations",
29942
+ "affordableLoanSharePct",
29943
+ "craEligibleAndAffordableOriginations"
29675
29944
  ],
29676
29945
  "type": "object"
29677
29946
  },
@@ -44533,7 +44802,7 @@
44533
44802
  "info": {
44534
44803
  "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.",
44535
44804
  "title": "ModelMatch API",
44536
- "version": "3.121.0"
44805
+ "version": "3.123.0"
44537
44806
  },
44538
44807
  "openapi": "3.1.0",
44539
44808
  "paths": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@model-match/api",
3
- "version": "3.55.0",
3
+ "version": "3.57.0",
4
4
  "description": "TypeScript client for the ModelMatch API",
5
5
  "license": "MIT",
6
6
  "files": [