@yottagraph-app/data-model-skill 0.0.39 → 0.0.41
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/package.json
CHANGED
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
# Data Dictionary: Finnhub Bonds (ISIN-LEI + Bond Prices)
|
|
2
|
+
|
|
3
|
+
Last updated: 2026-05-28
|
|
4
|
+
|
|
5
|
+
## Source Overview
|
|
6
|
+
|
|
7
|
+
This source combines two upstream datasets:
|
|
8
|
+
|
|
9
|
+
1. **GLEIF-ANNA ISIN-to-LEI mapping** — daily open-source file linking financial instruments (ISIN) to issuers (LEI). The published ZIP is a **full snapshot** of mappings from participating national numbering agencies (~8.7M pairs as of May 2026), refreshed daily. It is not a delta of only newly issued ISINs from the prior day.
|
|
10
|
+
2. **Finnhub bond prices** — end-of-day close prices from `GET /bond/price` for each ISIN in the mapping file, fetched for **yesterday UTC** each poll cycle.
|
|
11
|
+
|
|
12
|
+
The streamer uses the **diffing** pipeline (`DiffingStreamer`): each mapping pair and each ISIN price observation is stored as JSON under the raw download store, SHA-256 compared against the previous run, and only changed rows are atomized and published.
|
|
13
|
+
|
|
14
|
+
| Item | Value |
|
|
15
|
+
|------|--------|
|
|
16
|
+
| Stream source constant | `finnhubbond-source` |
|
|
17
|
+
| `Record.Source` | `finnhubbond` |
|
|
18
|
+
| GLEIF mapping API | `https://mapping.gleif.org/api/v2/isin-lei` |
|
|
19
|
+
| Finnhub price API | `https://finnhub.io/api/v1/bond/price` |
|
|
20
|
+
| Default poll cadence | 1440 min (`pollTimeMin`) |
|
|
21
|
+
|
|
22
|
+
**Data quality notes**
|
|
23
|
+
|
|
24
|
+
- GLEIF mapping coverage depends on participating NNAs; legacy ISINs outside the program may be absent.
|
|
25
|
+
- Finnhub `/bond/price` returns BondCandles (`c[]` close, `t[]` unix timestamps, `s` status). Status `no_data` produces no price record.
|
|
26
|
+
- Yield on `/bond/price` is only emitted when Finnhub returns a `y[]` array; TRACE trade-level yield is on `/bond/tick` (not ingested in v1).
|
|
27
|
+
- Many mapped ISINs may have no Finnhub price (non-US, non-TRACE, delisted). Failures are logged and skipped.
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Entity Types
|
|
32
|
+
|
|
33
|
+
### `organization`
|
|
34
|
+
|
|
35
|
+
A legal entity that **issued** a mapped security, identified by LEI from the GLEIF-ANNA CSV.
|
|
36
|
+
|
|
37
|
+
- **Subject name:** LEI string (no legal name in mapping file).
|
|
38
|
+
- **Strong id:** `lei` on the organization subject.
|
|
39
|
+
- **Resolver:** Organization flavor `NOT_MERGEABLE`; named entity `MERGEABLE` on LEI for cross-source merge with `gleif-source` entities.
|
|
40
|
+
- **Emitted when:** A `(LEI, ISIN)` mapping row is new or changed in the diffing pass.
|
|
41
|
+
|
|
42
|
+
### `financial_instrument`
|
|
43
|
+
|
|
44
|
+
A bond or fixed-income instrument identified by ISIN.
|
|
45
|
+
|
|
46
|
+
- **Subject name:** ISIN.
|
|
47
|
+
- **Strong id:** `isin`.
|
|
48
|
+
- **Resolver:** `MERGEABLE` on ISIN — aligns with `gleif`, `sanctions`, and EDGAR `holding_isin` resolution.
|
|
49
|
+
- **Emitted when:** (1) mapping rows add `issued_security` target entities, or (2) price rows publish close/yield observations.
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## Properties
|
|
54
|
+
|
|
55
|
+
### Organization
|
|
56
|
+
|
|
57
|
+
* `lei`
|
|
58
|
+
* Definition: Legal Entity Identifier (ISO 17442) of the issuer.
|
|
59
|
+
* Examples: `"5493001KJTIIGC8Y1R12"`
|
|
60
|
+
* Derivation: First CSV column in GLEIF ISIN-LEI mapping.
|
|
61
|
+
|
|
62
|
+
### Financial instrument
|
|
63
|
+
|
|
64
|
+
* `isin`
|
|
65
|
+
* Definition: International Securities Identification Number (ISO 6166).
|
|
66
|
+
* Examples: `"US0378331005"`, `"US46625HQW33"`
|
|
67
|
+
* Derivation: Second CSV column in mapping; or Finnhub price query key.
|
|
68
|
+
|
|
69
|
+
* `close_price`
|
|
70
|
+
* Definition: Bond close price in USD from Finnhub `/bond/price` field `c[]`.
|
|
71
|
+
* Derivation: One atom per candle point in the response; timestamp from matching `t[]` entry.
|
|
72
|
+
* Attribute: `price_date` (YYYY-MM-DD UTC) on each observation atom.
|
|
73
|
+
|
|
74
|
+
* `yield`
|
|
75
|
+
* Definition: Bond yield when Finnhub returns field `y[]` alongside price candles.
|
|
76
|
+
* Derivation: Optional; same indexing as `c[]` / `t[]`. Often absent on `/bond/price`.
|
|
77
|
+
* Attribute: `price_date` on each observation atom.
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## Relationships
|
|
82
|
+
|
|
83
|
+
* `issued_security`
|
|
84
|
+
* Definition: The organization (issuer LEI) has issued the target financial instrument (ISIN).
|
|
85
|
+
* Direction: `organization` → `financial_instrument`.
|
|
86
|
+
* Derivation: Each GLEIF-ANNA mapping row where both LEI and ISIN are non-empty.
|
|
87
|
+
* Note: Same relationship name and semantics as `gleif-source` ISIN enrichment (`buildISINAtoms`).
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## Attributes
|
|
92
|
+
|
|
93
|
+
* `price_date`
|
|
94
|
+
* Definition: UTC calendar date of the bond price observation.
|
|
95
|
+
* Examples: `"2026-05-27"`
|
|
96
|
+
* Derivation: From Finnhub candle timestamp `t[]`, or the configured yesterday date when timestamp missing.
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## Pipeline Behavior
|
|
101
|
+
|
|
102
|
+
### FetchRows (single cycle)
|
|
103
|
+
|
|
104
|
+
1. Download latest GLEIF ISIN-LEI ZIP.
|
|
105
|
+
2. Parse CSV; emit one diffing row per `(LEI, ISIN)` pair (subject to `maxRows`).
|
|
106
|
+
3. Deduplicate ISINs; optionally cap with `maxIsins`.
|
|
107
|
+
4. Parallel Finnhub `/bond/price` for yesterday UTC (`priceWorkers`, `finnhubQPS`).
|
|
108
|
+
5. Emit one diffing price row per ISIN (`price-{ISIN}-{date}.json`).
|
|
109
|
+
|
|
110
|
+
### Atomization
|
|
111
|
+
|
|
112
|
+
- **Changed mapping rows:** One record per pair — organization subject + `lei` property + `issued_security` target.
|
|
113
|
+
- **Changed price rows:** One record per ISIN — financial_instrument subject + `isin` + `close_price` / optional `yield` atoms.
|
|
114
|
+
|
|
115
|
+
### Configuration args
|
|
116
|
+
|
|
117
|
+
| Arg | Default | Purpose |
|
|
118
|
+
|-----|---------|---------|
|
|
119
|
+
| `finnhubToken` | `$FINNHUB_TOKEN` | Required API token |
|
|
120
|
+
| `priceWorkers` | 16 | Parallel Finnhub workers |
|
|
121
|
+
| `finnhubQPS` | 10 | Client-side rate limit |
|
|
122
|
+
| `maxIsins` | 0 (all) | Cap price fetches for dev |
|
|
123
|
+
| `maxRows` | 0 (all) | Cap mapping rows emitted |
|
|
124
|
+
| `writeWorkers` | 8 | Diffing raw-store parallelism |
|
|
125
|
+
| `batchSize` | 100 | Publish batch size |
|
|
126
|
+
| `pollTimeMin` | 1440 | Poll interval (minutes) |
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## Cross-Source Resolution
|
|
131
|
+
|
|
132
|
+
- **`lei`** property matches `gleif.organization.lei` — issuer orgs from this source should merge with GLEIF LEI records when both exist.
|
|
133
|
+
- **`isin`** property matches `financial_instrument.isin` across gleif, sanctions, EDGAR holdings.
|
|
134
|
+
- **`issued_security`** inverse query: find issuer org whose `issued_security` points at an ISIN instrument node.
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
# Dataset schema for GLEIF ISIN-LEI mapping + Finnhub bond end-of-day prices.
|
|
2
|
+
#
|
|
3
|
+
# The streamer diffs LEI→ISIN mapping rows from the daily GLEIF-ANNA file and
|
|
4
|
+
# fetches Finnhub /bond/price candles for every ISIN in the mapping each cycle.
|
|
5
|
+
name: "finnhubbond"
|
|
6
|
+
description: "GLEIF-ANNA ISIN-to-LEI issuer mappings and Finnhub bond end-of-day close prices for mapped ISINs"
|
|
7
|
+
|
|
8
|
+
extraction:
|
|
9
|
+
flavors: closed
|
|
10
|
+
properties: closed
|
|
11
|
+
relationships: closed
|
|
12
|
+
attributes: closed
|
|
13
|
+
events: closed
|
|
14
|
+
|
|
15
|
+
flavors:
|
|
16
|
+
- name: "organization"
|
|
17
|
+
description: "A particular business, institution, or organization such as a corporation, university, government agency, or non-profit"
|
|
18
|
+
display_name: "Organization"
|
|
19
|
+
mergeability: not_mergeable
|
|
20
|
+
strong_id_properties: ["lei"]
|
|
21
|
+
passive: true
|
|
22
|
+
|
|
23
|
+
- name: "financial_instrument"
|
|
24
|
+
description: "A specific asset that can be traded, such as a stock, ETF, bond, CD, or fund. Companies are organizations, NOT financial instruments. Specific currency amounts are NOT financial instruments."
|
|
25
|
+
display_name: "Financial Instrument"
|
|
26
|
+
mergeability: not_mergeable
|
|
27
|
+
strong_id_properties: ["isin", "figi"]
|
|
28
|
+
passive: true
|
|
29
|
+
|
|
30
|
+
properties:
|
|
31
|
+
- name: "lei"
|
|
32
|
+
type: string
|
|
33
|
+
description: "Legal Entity Identifier — a 20-character alphanumeric code uniquely identifying a legal entity in the global financial system (ISO 17442)"
|
|
34
|
+
display_name: "LEI"
|
|
35
|
+
mergeability: not_mergeable
|
|
36
|
+
domain_flavors: ["organization"]
|
|
37
|
+
passive: true
|
|
38
|
+
|
|
39
|
+
- name: "isin"
|
|
40
|
+
type: string
|
|
41
|
+
description: "International Securities Identification Number (ISO 6166) uniquely identifying this financial instrument"
|
|
42
|
+
display_name: "ISIN"
|
|
43
|
+
mergeability: not_mergeable
|
|
44
|
+
domain_flavors: ["financial_instrument"]
|
|
45
|
+
passive: true
|
|
46
|
+
|
|
47
|
+
- name: "close_price"
|
|
48
|
+
type: float
|
|
49
|
+
description: "Closing price of the trading interval in USD"
|
|
50
|
+
display_name: "Close Price"
|
|
51
|
+
mergeability: not_mergeable
|
|
52
|
+
domain_flavors: ["financial_instrument"]
|
|
53
|
+
passive: true
|
|
54
|
+
|
|
55
|
+
- name: "yield"
|
|
56
|
+
type: float
|
|
57
|
+
description: "Yield on the security."
|
|
58
|
+
display_name: "Yield"
|
|
59
|
+
mergeability: not_mergeable
|
|
60
|
+
domain_flavors: ["financial_instrument"]
|
|
61
|
+
passive: true
|
|
62
|
+
|
|
63
|
+
- name: "figi"
|
|
64
|
+
type: string
|
|
65
|
+
description: "Financial Instrument Global Identifier (Bloomberg OpenFIGI)"
|
|
66
|
+
display_name: "FIGI"
|
|
67
|
+
mergeability: not_mergeable
|
|
68
|
+
domain_flavors: ["financial_instrument"]
|
|
69
|
+
passive: true
|
|
70
|
+
|
|
71
|
+
- name: "bond_type"
|
|
72
|
+
type: string
|
|
73
|
+
description: "Bond type from Finnhub /bond/profile (e.g. Corporate, Government)"
|
|
74
|
+
display_name: "Bond Type"
|
|
75
|
+
mergeability: not_mergeable
|
|
76
|
+
domain_flavors: ["financial_instrument"]
|
|
77
|
+
passive: true
|
|
78
|
+
|
|
79
|
+
- name: "debt_type"
|
|
80
|
+
type: string
|
|
81
|
+
description: "Debt type from Finnhub /bond/profile"
|
|
82
|
+
display_name: "Debt Type"
|
|
83
|
+
mergeability: not_mergeable
|
|
84
|
+
domain_flavors: ["financial_instrument"]
|
|
85
|
+
passive: true
|
|
86
|
+
|
|
87
|
+
- name: "coupon"
|
|
88
|
+
type: float
|
|
89
|
+
description: "Coupon rate of the security (e.g. 7.000% or Variable)."
|
|
90
|
+
display_name: "Coupon"
|
|
91
|
+
mergeability: not_mergeable
|
|
92
|
+
domain_flavors: ["financial_instrument"]
|
|
93
|
+
passive: true
|
|
94
|
+
|
|
95
|
+
- name: "coupon_type"
|
|
96
|
+
type: string
|
|
97
|
+
description: "Coupon type from Finnhub /bond/profile (e.g. Fixed)"
|
|
98
|
+
display_name: "Coupon Type"
|
|
99
|
+
mergeability: not_mergeable
|
|
100
|
+
domain_flavors: ["financial_instrument"]
|
|
101
|
+
passive: true
|
|
102
|
+
|
|
103
|
+
- name: "maturity_date"
|
|
104
|
+
type: string
|
|
105
|
+
description: "Maturity date of the security."
|
|
106
|
+
display_name: "Maturity Date"
|
|
107
|
+
mergeability: not_mergeable
|
|
108
|
+
domain_flavors: ["financial_instrument"]
|
|
109
|
+
passive: true
|
|
110
|
+
|
|
111
|
+
- name: "issue_date"
|
|
112
|
+
type: string
|
|
113
|
+
description: "Issue date of the bonds."
|
|
114
|
+
display_name: "Issue Date"
|
|
115
|
+
mergeability: not_mergeable
|
|
116
|
+
domain_flavors: ["financial_instrument"]
|
|
117
|
+
passive: true
|
|
118
|
+
|
|
119
|
+
- name: "first_coupon_date"
|
|
120
|
+
type: string
|
|
121
|
+
description: "First coupon date from Finnhub /bond/profile"
|
|
122
|
+
display_name: "First Coupon Date"
|
|
123
|
+
mergeability: not_mergeable
|
|
124
|
+
domain_flavors: ["financial_instrument"]
|
|
125
|
+
passive: true
|
|
126
|
+
|
|
127
|
+
- name: "dated_date"
|
|
128
|
+
type: string
|
|
129
|
+
description: "Dated date of the bonds."
|
|
130
|
+
display_name: "Dated Date"
|
|
131
|
+
mergeability: not_mergeable
|
|
132
|
+
domain_flavors: ["financial_instrument"]
|
|
133
|
+
passive: true
|
|
134
|
+
|
|
135
|
+
- name: "payment_frequency"
|
|
136
|
+
type: string
|
|
137
|
+
description: "Payment frequency from Finnhub /bond/profile"
|
|
138
|
+
display_name: "Payment Frequency"
|
|
139
|
+
mergeability: not_mergeable
|
|
140
|
+
domain_flavors: ["financial_instrument"]
|
|
141
|
+
passive: true
|
|
142
|
+
|
|
143
|
+
- name: "security_level"
|
|
144
|
+
type: string
|
|
145
|
+
description: "Security level from Finnhub /bond/profile (e.g. Senior)"
|
|
146
|
+
display_name: "Security Level"
|
|
147
|
+
mergeability: not_mergeable
|
|
148
|
+
domain_flavors: ["financial_instrument"]
|
|
149
|
+
passive: true
|
|
150
|
+
|
|
151
|
+
- name: "amount_outstanding"
|
|
152
|
+
type: float
|
|
153
|
+
description: "Amount outstanding from Finnhub /bond/profile"
|
|
154
|
+
display_name: "Amount Outstanding"
|
|
155
|
+
mergeability: not_mergeable
|
|
156
|
+
domain_flavors: ["financial_instrument"]
|
|
157
|
+
passive: true
|
|
158
|
+
|
|
159
|
+
- name: "original_offering"
|
|
160
|
+
type: float
|
|
161
|
+
description: "Original offering amount from Finnhub /bond/profile"
|
|
162
|
+
display_name: "Original Offering"
|
|
163
|
+
mergeability: not_mergeable
|
|
164
|
+
domain_flavors: ["financial_instrument"]
|
|
165
|
+
passive: true
|
|
166
|
+
|
|
167
|
+
- name: "offering_price"
|
|
168
|
+
type: float
|
|
169
|
+
description: "Offering price from Finnhub /bond/profile"
|
|
170
|
+
display_name: "Offering Price"
|
|
171
|
+
mergeability: not_mergeable
|
|
172
|
+
domain_flavors: ["financial_instrument"]
|
|
173
|
+
passive: true
|
|
174
|
+
|
|
175
|
+
- name: "industry_group"
|
|
176
|
+
type: string
|
|
177
|
+
description: "Industry group from Finnhub /bond/profile"
|
|
178
|
+
display_name: "Industry Group"
|
|
179
|
+
mergeability: not_mergeable
|
|
180
|
+
domain_flavors: ["financial_instrument"]
|
|
181
|
+
passive: true
|
|
182
|
+
|
|
183
|
+
- name: "industry_subgroup"
|
|
184
|
+
type: string
|
|
185
|
+
description: "Industry subgroup from Finnhub /bond/profile"
|
|
186
|
+
display_name: "Industry Subgroup"
|
|
187
|
+
mergeability: not_mergeable
|
|
188
|
+
domain_flavors: ["financial_instrument"]
|
|
189
|
+
passive: true
|
|
190
|
+
|
|
191
|
+
- name: "asset"
|
|
192
|
+
type: string
|
|
193
|
+
description: "Asset from Finnhub /bond/profile"
|
|
194
|
+
display_name: "Asset"
|
|
195
|
+
mergeability: not_mergeable
|
|
196
|
+
domain_flavors: ["financial_instrument"]
|
|
197
|
+
passive: true
|
|
198
|
+
|
|
199
|
+
- name: "asset_type"
|
|
200
|
+
type: string
|
|
201
|
+
description: "Asset type from Finnhub /bond/profile"
|
|
202
|
+
display_name: "Asset Type"
|
|
203
|
+
mergeability: not_mergeable
|
|
204
|
+
domain_flavors: ["financial_instrument"]
|
|
205
|
+
passive: true
|
|
206
|
+
|
|
207
|
+
- name: "day_count"
|
|
208
|
+
type: string
|
|
209
|
+
description: "Day count convention from Finnhub /bond/profile"
|
|
210
|
+
display_name: "Day Count"
|
|
211
|
+
mergeability: not_mergeable
|
|
212
|
+
domain_flavors: ["financial_instrument"]
|
|
213
|
+
passive: true
|
|
214
|
+
|
|
215
|
+
- name: "security_term"
|
|
216
|
+
type: string
|
|
217
|
+
description: "Security term from Finnhub /bond/profile"
|
|
218
|
+
display_name: "Security Term"
|
|
219
|
+
mergeability: not_mergeable
|
|
220
|
+
domain_flavors: ["financial_instrument"]
|
|
221
|
+
passive: true
|
|
222
|
+
|
|
223
|
+
relationships:
|
|
224
|
+
- name: "issued_security"
|
|
225
|
+
description: "The organization has issued this financial instrument, linked via GLEIF-ANNA ISIN-LEI daily mapping. To find the issuer of a security, query inversely: find the entity whose issued_security points to the instrument."
|
|
226
|
+
display_name: "Issued Security"
|
|
227
|
+
mergeability: not_mergeable
|
|
228
|
+
domain_flavors: ["organization"]
|
|
229
|
+
target_flavors: ["financial_instrument"]
|
|
230
|
+
passive: true
|
|
231
|
+
|
|
232
|
+
attributes:
|
|
233
|
+
- properties:
|
|
234
|
+
- "close_price"
|
|
235
|
+
- "yield"
|
|
236
|
+
name: "price_date"
|
|
237
|
+
type: string
|
|
238
|
+
description: "UTC calendar date (YYYY-MM-DD) of the bond price observation from Finnhub timestamp t[]"
|
|
239
|
+
display_name: "Price Date"
|
|
240
|
+
mergeability: not_mergeable
|
|
241
|
+
passive: true
|
package/skill/iapd/schema.yaml
CHANGED
|
@@ -50,6 +50,20 @@ flavors:
|
|
|
50
50
|
examples: ["New York City", "San Francisco", "North America", "Bakery Square"]
|
|
51
51
|
passive: true
|
|
52
52
|
|
|
53
|
+
- name: "private_fund"
|
|
54
|
+
description: "A private investment fund (hedge fund, private equity, venture capital, real estate, or other pooled investment vehicle) reported by an SEC-registered investment adviser on Form ADV Schedule D Section 7.B(1). Identified by its SEC-assigned fund ID (e.g. 805-XXXXXXXX); strong-ID-resolvable across monthly filings"
|
|
55
|
+
display_name: "Private Fund"
|
|
56
|
+
mergeability: not_mergeable
|
|
57
|
+
strong_id_properties: ["sec_fund_id"]
|
|
58
|
+
passive: true
|
|
59
|
+
|
|
60
|
+
- name: "person"
|
|
61
|
+
description: "An individual person reported on Form ADV — typically a direct or indirect owner (Schedule A/B), an executive officer, a control person, or a DRP-affiliated individual. Identified by person_crd (FINRA-issued individual identifier) when available; otherwise resolved by name within an adviser context"
|
|
62
|
+
display_name: "Person"
|
|
63
|
+
mergeability: not_mergeable
|
|
64
|
+
strong_id_properties: ["person_crd"]
|
|
65
|
+
passive: true
|
|
66
|
+
|
|
53
67
|
properties:
|
|
54
68
|
# --- Identity and Registration ---
|
|
55
69
|
|
|
@@ -504,6 +518,526 @@ properties:
|
|
|
504
518
|
examples: ["true", "false"]
|
|
505
519
|
passive: true
|
|
506
520
|
|
|
521
|
+
- name: "active_through_date"
|
|
522
|
+
type: string
|
|
523
|
+
description: "Earliest date by which this firm is no longer guaranteed to still be in the IAPD daily feed. Set to the snapshot date plus one day on every AtomizeFirm record; bumps daily as long as the firm continues to appear in the feed and freezes when the firm drops off (presumed withdrawn or transitioned to a different regulator). Downstream consumers can detect withdrawal by checking whether today exceeds this date by more than the feed's expected lag (≈7-14 days)"
|
|
524
|
+
display_name: "Active Through Date"
|
|
525
|
+
mergeability: not_mergeable
|
|
526
|
+
domain_flavors: ["organization"]
|
|
527
|
+
examples: ["2026-05-29", "2026-05-30"]
|
|
528
|
+
passive: true
|
|
529
|
+
|
|
530
|
+
# --- Private Fund Identity (Schedule D 7.B(1)) ---
|
|
531
|
+
|
|
532
|
+
- name: "sec_fund_id"
|
|
533
|
+
type: string
|
|
534
|
+
description: "SEC-assigned identifier for a private fund reported on Form ADV Schedule D Section 7.B(1) (e.g. 805-XXXXXXXX). Canonical strong ID for the private_fund flavor, stable across monthly filings and across changes to the fund's adviser-of-record. Derived from the \"Fund ID\" column of the IA_Schedule_D_7B1 CSV table"
|
|
535
|
+
display_name: "SEC Fund ID"
|
|
536
|
+
mergeability: not_mergeable
|
|
537
|
+
domain_flavors: ["private_fund"]
|
|
538
|
+
examples: ["805-12345678", "805-87654321"]
|
|
539
|
+
passive: true
|
|
540
|
+
|
|
541
|
+
- name: "fund_name"
|
|
542
|
+
type: string
|
|
543
|
+
description: "Legal name of the private fund as reported on Form ADV Schedule D Section 7.B(1). Derived from the \"Fund Name\" column"
|
|
544
|
+
display_name: "Fund Name"
|
|
545
|
+
mergeability: not_mergeable
|
|
546
|
+
domain_flavors: ["private_fund"]
|
|
547
|
+
examples: ["HANSABEL INCOME, L.P.", "Acme Capital Master Fund"]
|
|
548
|
+
passive: true
|
|
549
|
+
|
|
550
|
+
- name: "fund_type"
|
|
551
|
+
type: string
|
|
552
|
+
description: "Fund classification per Form ADV Schedule D Section 7.B(1) Item 10 (Hedge Fund, Private Equity Fund, Venture Capital Fund, Real Estate Fund, Securitized Asset Fund, Liquidity Fund, Other Private Fund). Derived from \"Fund Type\" with fallback to \"Fund Type Other\""
|
|
553
|
+
display_name: "Fund Type"
|
|
554
|
+
mergeability: not_mergeable
|
|
555
|
+
domain_flavors: ["private_fund"]
|
|
556
|
+
examples: ["Hedge Fund", "Private Equity Fund", "Venture Capital Fund", "Real Estate Fund"]
|
|
557
|
+
passive: true
|
|
558
|
+
|
|
559
|
+
- name: "gross_asset_value"
|
|
560
|
+
type: float
|
|
561
|
+
description: "Gross asset value of the private fund in USD as reported on Form ADV Schedule D Section 7.B(1) Item 11. Derived from the \"Gross Asset Value\" column"
|
|
562
|
+
display_name: "Gross Asset Value (USD)"
|
|
563
|
+
mergeability: not_mergeable
|
|
564
|
+
domain_flavors: ["private_fund"]
|
|
565
|
+
examples: ["1000000000", "250000000"]
|
|
566
|
+
passive: true
|
|
567
|
+
|
|
568
|
+
- name: "minimum_investment"
|
|
569
|
+
type: float
|
|
570
|
+
description: "Minimum investment commitment required of investors in the private fund in USD, per Form ADV Schedule D Section 7.B(1) Item 13. Derived from the \"Minimum Investment\" column"
|
|
571
|
+
display_name: "Minimum Investment (USD)"
|
|
572
|
+
mergeability: not_mergeable
|
|
573
|
+
domain_flavors: ["private_fund"]
|
|
574
|
+
examples: ["1000000", "250000", "100000"]
|
|
575
|
+
passive: true
|
|
576
|
+
|
|
577
|
+
- name: "beneficial_owners"
|
|
578
|
+
type: float
|
|
579
|
+
description: "Approximate number of beneficial owners of the private fund per Form ADV Schedule D Section 7.B(1) Item 14. Derived from the \"Owners\" column"
|
|
580
|
+
display_name: "Beneficial Owners"
|
|
581
|
+
mergeability: not_mergeable
|
|
582
|
+
domain_flavors: ["private_fund"]
|
|
583
|
+
examples: ["25", "100", "500"]
|
|
584
|
+
passive: true
|
|
585
|
+
|
|
586
|
+
- name: "pct_owned_non_us"
|
|
587
|
+
type: float
|
|
588
|
+
description: "Approximate percentage of the private fund's beneficial owners that are non-United States persons per Form ADV Schedule D Section 7.B(1) Item 15. Derived from the \"%Owned Non-US\" column"
|
|
589
|
+
display_name: "% Owned Non-US"
|
|
590
|
+
mergeability: not_mergeable
|
|
591
|
+
domain_flavors: ["private_fund"]
|
|
592
|
+
examples: ["0", "25", "75"]
|
|
593
|
+
passive: true
|
|
594
|
+
|
|
595
|
+
- name: "jurisdiction_state"
|
|
596
|
+
type: string
|
|
597
|
+
description: "US state of organization for the private fund as reported on Form ADV Schedule D Section 7.B(1). Derived from the \"State\" column; empty for funds organized outside the US"
|
|
598
|
+
display_name: "Jurisdiction (State)"
|
|
599
|
+
mergeability: not_mergeable
|
|
600
|
+
domain_flavors: ["private_fund"]
|
|
601
|
+
examples: ["DE", "NY", "CA"]
|
|
602
|
+
passive: true
|
|
603
|
+
|
|
604
|
+
- name: "jurisdiction_country"
|
|
605
|
+
type: string
|
|
606
|
+
description: "Country of organization for the private fund as reported on Form ADV Schedule D Section 7.B(1). Derived from the \"Country\" column"
|
|
607
|
+
display_name: "Jurisdiction (Country)"
|
|
608
|
+
mergeability: not_mergeable
|
|
609
|
+
domain_flavors: ["private_fund"]
|
|
610
|
+
examples: ["United States", "Cayman Islands", "Luxembourg", "Ireland"]
|
|
611
|
+
passive: true
|
|
612
|
+
|
|
613
|
+
- name: "is_master_fund"
|
|
614
|
+
type: float
|
|
615
|
+
description: "0.0/1.0 flag indicating whether the private fund is a master fund in a master-feeder structure, per Form ADV Schedule D Section 7.B(1). Derived from the \"Master Fund\" Y/N column"
|
|
616
|
+
display_name: "Is Master Fund"
|
|
617
|
+
mergeability: not_mergeable
|
|
618
|
+
domain_flavors: ["private_fund"]
|
|
619
|
+
examples: ["0", "1"]
|
|
620
|
+
passive: true
|
|
621
|
+
|
|
622
|
+
- name: "is_feeder_fund"
|
|
623
|
+
type: float
|
|
624
|
+
description: "0.0/1.0 flag indicating whether the private fund is a feeder fund into a master fund, per Form ADV Schedule D Section 7.B(1). Derived from the \"Feeder Fund\" Y/N column"
|
|
625
|
+
display_name: "Is Feeder Fund"
|
|
626
|
+
mergeability: not_mergeable
|
|
627
|
+
domain_flavors: ["private_fund"]
|
|
628
|
+
examples: ["0", "1"]
|
|
629
|
+
passive: true
|
|
630
|
+
|
|
631
|
+
- name: "is_fund_of_funds"
|
|
632
|
+
type: float
|
|
633
|
+
description: "0.0/1.0 flag indicating whether the private fund is a fund-of-funds per Form ADV Schedule D Section 7.B(1). Derived from the \"Fund of Funds\" Y/N column"
|
|
634
|
+
display_name: "Is Fund of Funds"
|
|
635
|
+
mergeability: not_mergeable
|
|
636
|
+
domain_flavors: ["private_fund"]
|
|
637
|
+
examples: ["0", "1"]
|
|
638
|
+
passive: true
|
|
639
|
+
|
|
640
|
+
- name: "form_d_file_number"
|
|
641
|
+
type: string
|
|
642
|
+
description: "SEC Form D file number for a private fund that has filed a Form D notice, per Form ADV Schedule D Section 7.B(1) Item 22. Derived from the \"Form D File Number\" column of the IA_Schedule_D_7B1A22 CSV table"
|
|
643
|
+
display_name: "Form D File Number"
|
|
644
|
+
mergeability: not_mergeable
|
|
645
|
+
domain_flavors: ["private_fund"]
|
|
646
|
+
examples: ["021-123456"]
|
|
647
|
+
passive: true
|
|
648
|
+
|
|
649
|
+
# --- Asset Allocation (Item 5K(1)) ---
|
|
650
|
+
|
|
651
|
+
- name: "pct_assets_equity_listed"
|
|
652
|
+
type: float
|
|
653
|
+
description: "Percentage of an adviser's regulatory assets under management held in exchange-listed equity securities, per Form ADV Item 5K(1)(b)(i). Derived from the 5K(1)(b)(i) column of the IA_Schedule_D_5K1 CSV table; emitted only when the cell is non-zero"
|
|
654
|
+
display_name: "% Assets: Listed Equity"
|
|
655
|
+
mergeability: not_mergeable
|
|
656
|
+
domain_flavors: ["organization"]
|
|
657
|
+
examples: ["0.5", "25", "75"]
|
|
658
|
+
passive: true
|
|
659
|
+
|
|
660
|
+
- name: "pct_assets_equity_unlisted"
|
|
661
|
+
type: float
|
|
662
|
+
description: "Percentage of an adviser's regulatory assets under management held in unlisted (private) equity securities, per Form ADV Item 5K(1)(b)(ii). Derived from the 5K(1)(b)(ii) column of the IA_Schedule_D_5K1 CSV table"
|
|
663
|
+
display_name: "% Assets: Unlisted Equity"
|
|
664
|
+
mergeability: not_mergeable
|
|
665
|
+
domain_flavors: ["organization"]
|
|
666
|
+
examples: ["0", "10", "50"]
|
|
667
|
+
passive: true
|
|
668
|
+
|
|
669
|
+
- name: "pct_assets_govt_bonds"
|
|
670
|
+
type: float
|
|
671
|
+
description: "Percentage of an adviser's regulatory assets under management held in US government and agency bonds, per Form ADV Item 5K(1)(b)(iii). Derived from the 5K(1)(b)(iii) column"
|
|
672
|
+
display_name: "% Assets: Government Bonds"
|
|
673
|
+
mergeability: not_mergeable
|
|
674
|
+
domain_flavors: ["organization"]
|
|
675
|
+
examples: ["0", "20", "60"]
|
|
676
|
+
passive: true
|
|
677
|
+
|
|
678
|
+
- name: "pct_assets_muni_bonds"
|
|
679
|
+
type: float
|
|
680
|
+
description: "Percentage of an adviser's regulatory assets under management held in US state and local bonds, per Form ADV Item 5K(1)(b)(iv). Derived from the 5K(1)(b)(iv) column"
|
|
681
|
+
display_name: "% Assets: Municipal Bonds"
|
|
682
|
+
mergeability: not_mergeable
|
|
683
|
+
domain_flavors: ["organization"]
|
|
684
|
+
examples: ["0", "5", "30"]
|
|
685
|
+
passive: true
|
|
686
|
+
|
|
687
|
+
- name: "pct_assets_sovereign_bonds"
|
|
688
|
+
type: float
|
|
689
|
+
description: "Percentage of an adviser's regulatory assets under management held in non-US sovereign bonds, per Form ADV Item 5K(1)(b)(v). Derived from the 5K(1)(b)(v) column"
|
|
690
|
+
display_name: "% Assets: Sovereign Bonds"
|
|
691
|
+
mergeability: not_mergeable
|
|
692
|
+
domain_flavors: ["organization"]
|
|
693
|
+
examples: ["0", "5", "15"]
|
|
694
|
+
passive: true
|
|
695
|
+
|
|
696
|
+
- name: "pct_assets_corp_bonds_ig"
|
|
697
|
+
type: float
|
|
698
|
+
description: "Percentage of an adviser's regulatory assets under management held in investment-grade corporate bonds, per Form ADV Item 5K(1)(b)(vi). Derived from the 5K(1)(b)(vi) column"
|
|
699
|
+
display_name: "% Assets: Corporate Bonds (IG)"
|
|
700
|
+
mergeability: not_mergeable
|
|
701
|
+
domain_flavors: ["organization"]
|
|
702
|
+
examples: ["0", "10", "40"]
|
|
703
|
+
passive: true
|
|
704
|
+
|
|
705
|
+
- name: "pct_assets_corp_bonds_hy"
|
|
706
|
+
type: float
|
|
707
|
+
description: "Percentage of an adviser's regulatory assets under management held in non-investment-grade (high-yield) corporate bonds, per Form ADV Item 5K(1)(b)(vii). Derived from the 5K(1)(b)(vii) column"
|
|
708
|
+
display_name: "% Assets: Corporate Bonds (HY)"
|
|
709
|
+
mergeability: not_mergeable
|
|
710
|
+
domain_flavors: ["organization"]
|
|
711
|
+
examples: ["0", "5", "20"]
|
|
712
|
+
passive: true
|
|
713
|
+
|
|
714
|
+
- name: "pct_assets_derivatives"
|
|
715
|
+
type: float
|
|
716
|
+
description: "Percentage of an adviser's regulatory assets under management held in derivatives, per Form ADV Item 5K(1)(b)(viii). Derived from the 5K(1)(b)(viii) column"
|
|
717
|
+
display_name: "% Assets: Derivatives"
|
|
718
|
+
mergeability: not_mergeable
|
|
719
|
+
domain_flavors: ["organization"]
|
|
720
|
+
examples: ["0", "2", "15"]
|
|
721
|
+
passive: true
|
|
722
|
+
|
|
723
|
+
- name: "pct_assets_pooled_vehicles"
|
|
724
|
+
type: float
|
|
725
|
+
description: "Percentage of an adviser's regulatory assets under management held in pooled investment vehicles (mutual funds, ETFs, private funds), per Form ADV Item 5K(1)(b)(ix). Derived from the 5K(1)(b)(ix) column"
|
|
726
|
+
display_name: "% Assets: Pooled Vehicles"
|
|
727
|
+
mergeability: not_mergeable
|
|
728
|
+
domain_flavors: ["organization"]
|
|
729
|
+
examples: ["0", "10", "50"]
|
|
730
|
+
passive: true
|
|
731
|
+
|
|
732
|
+
- name: "pct_assets_cash"
|
|
733
|
+
type: float
|
|
734
|
+
description: "Percentage of an adviser's regulatory assets under management held in cash and cash equivalents, per Form ADV Item 5K(1)(b)(x). Derived from the 5K(1)(b)(x) column"
|
|
735
|
+
display_name: "% Assets: Cash"
|
|
736
|
+
mergeability: not_mergeable
|
|
737
|
+
domain_flavors: ["organization"]
|
|
738
|
+
examples: ["0", "5", "30"]
|
|
739
|
+
passive: true
|
|
740
|
+
|
|
741
|
+
- name: "pct_assets_real_estate"
|
|
742
|
+
type: float
|
|
743
|
+
description: "Percentage of an adviser's regulatory assets under management held in real estate, per Form ADV Item 5K(1)(b)(xi). Derived from the 5K(1)(b)(xi) column"
|
|
744
|
+
display_name: "% Assets: Real Estate"
|
|
745
|
+
mergeability: not_mergeable
|
|
746
|
+
domain_flavors: ["organization"]
|
|
747
|
+
examples: ["0", "10", "50"]
|
|
748
|
+
passive: true
|
|
749
|
+
|
|
750
|
+
- name: "pct_assets_other"
|
|
751
|
+
type: float
|
|
752
|
+
description: "Percentage of an adviser's regulatory assets under management held in other asset categories not covered by the prior 11 buckets, per Form ADV Item 5K(1)(b)(xii). Derived from the 5K(1)(b)(xii) column"
|
|
753
|
+
display_name: "% Assets: Other"
|
|
754
|
+
mergeability: not_mergeable
|
|
755
|
+
domain_flavors: ["organization"]
|
|
756
|
+
examples: ["0", "5", "20"]
|
|
757
|
+
passive: true
|
|
758
|
+
|
|
759
|
+
- name: "pct_assets_other_desc"
|
|
760
|
+
type: string
|
|
761
|
+
description: "Free-text description of the \"other\" asset category reported in pct_assets_other, per Form ADV Item 5K(1)(b)(xii) Description. Derived from the 5K(1)(b)(xii) Description column"
|
|
762
|
+
display_name: "% Assets: Other (Description)"
|
|
763
|
+
mergeability: not_mergeable
|
|
764
|
+
domain_flavors: ["organization"]
|
|
765
|
+
examples: ["Cryptocurrencies", "Commodities", "Insurance products"]
|
|
766
|
+
passive: true
|
|
767
|
+
|
|
768
|
+
# --- Adviser-level Form ADV Part 1A (IA_ADV_Base_A) ---
|
|
769
|
+
# These atoms come from the monthly filing-data ZIP's IA_ADV_Base_A
|
|
770
|
+
# table, which uses raw Form ADV item codes as column names. Daily
|
|
771
|
+
# XML covers similar data for currently-active SEC-registered firms;
|
|
772
|
+
# this table is the only source for ERAs and historical advisers.
|
|
773
|
+
|
|
774
|
+
- name: "clients_individuals"
|
|
775
|
+
type: float
|
|
776
|
+
description: "0.0/1.0 flag indicating the adviser has retail individual clients (Form ADV Item 5D(1)(a))"
|
|
777
|
+
display_name: "Has Individual Clients"
|
|
778
|
+
mergeability: not_mergeable
|
|
779
|
+
domain_flavors: ["organization"]
|
|
780
|
+
examples: ["0", "1"]
|
|
781
|
+
passive: true
|
|
782
|
+
|
|
783
|
+
- name: "clients_high_net_worth"
|
|
784
|
+
type: float
|
|
785
|
+
description: "0.0/1.0 flag indicating the adviser has high-net-worth individual clients (Form ADV Item 5D(1)(b))"
|
|
786
|
+
display_name: "Has HNW Clients"
|
|
787
|
+
mergeability: not_mergeable
|
|
788
|
+
domain_flavors: ["organization"]
|
|
789
|
+
examples: ["0", "1"]
|
|
790
|
+
passive: true
|
|
791
|
+
|
|
792
|
+
- name: "clients_pooled_vehicles"
|
|
793
|
+
type: float
|
|
794
|
+
description: "0.0/1.0 flag indicating the adviser has pooled-investment-vehicle clients (hedge funds, private funds, etc.; Form ADV Item 5D(1)(d))"
|
|
795
|
+
display_name: "Has Pooled Vehicle Clients"
|
|
796
|
+
mergeability: not_mergeable
|
|
797
|
+
domain_flavors: ["organization"]
|
|
798
|
+
examples: ["0", "1"]
|
|
799
|
+
passive: true
|
|
800
|
+
|
|
801
|
+
- name: "clients_pension_plans"
|
|
802
|
+
type: float
|
|
803
|
+
description: "0.0/1.0 flag indicating the adviser has pension/profit-sharing-plan clients (Form ADV Item 5D(1)(g))"
|
|
804
|
+
display_name: "Has Pension Plan Clients"
|
|
805
|
+
mergeability: not_mergeable
|
|
806
|
+
domain_flavors: ["organization"]
|
|
807
|
+
examples: ["0", "1"]
|
|
808
|
+
passive: true
|
|
809
|
+
|
|
810
|
+
- name: "clients_corporations"
|
|
811
|
+
type: float
|
|
812
|
+
description: "0.0/1.0 flag indicating the adviser has corporation / other business clients (Form ADV Item 5D(1)(k))"
|
|
813
|
+
display_name: "Has Corporate Clients"
|
|
814
|
+
mergeability: not_mergeable
|
|
815
|
+
domain_flavors: ["organization"]
|
|
816
|
+
examples: ["0", "1"]
|
|
817
|
+
passive: true
|
|
818
|
+
|
|
819
|
+
- name: "compensation_pct_aum"
|
|
820
|
+
type: float
|
|
821
|
+
description: "0.0/1.0 flag indicating the adviser charges asset-based fees as a percentage of AUM (Form ADV Item 5E(1))"
|
|
822
|
+
display_name: "Charges % of AUM"
|
|
823
|
+
mergeability: not_mergeable
|
|
824
|
+
domain_flavors: ["organization"]
|
|
825
|
+
examples: ["0", "1"]
|
|
826
|
+
passive: true
|
|
827
|
+
|
|
828
|
+
- name: "compensation_hourly"
|
|
829
|
+
type: float
|
|
830
|
+
description: "0.0/1.0 flag indicating the adviser charges hourly fees (Form ADV Item 5E(2))"
|
|
831
|
+
display_name: "Charges Hourly Fees"
|
|
832
|
+
mergeability: not_mergeable
|
|
833
|
+
domain_flavors: ["organization"]
|
|
834
|
+
examples: ["0", "1"]
|
|
835
|
+
passive: true
|
|
836
|
+
|
|
837
|
+
- name: "compensation_fixed_fees"
|
|
838
|
+
type: float
|
|
839
|
+
description: "0.0/1.0 flag indicating the adviser charges fixed fees (Form ADV Item 5E(4))"
|
|
840
|
+
display_name: "Charges Fixed Fees"
|
|
841
|
+
mergeability: not_mergeable
|
|
842
|
+
domain_flavors: ["organization"]
|
|
843
|
+
examples: ["0", "1"]
|
|
844
|
+
passive: true
|
|
845
|
+
|
|
846
|
+
- name: "compensation_commissions"
|
|
847
|
+
type: float
|
|
848
|
+
description: "0.0/1.0 flag indicating the adviser charges commissions (Form ADV Item 5E(5))"
|
|
849
|
+
display_name: "Charges Commissions"
|
|
850
|
+
mergeability: not_mergeable
|
|
851
|
+
domain_flavors: ["organization"]
|
|
852
|
+
examples: ["0", "1"]
|
|
853
|
+
passive: true
|
|
854
|
+
|
|
855
|
+
- name: "compensation_performance"
|
|
856
|
+
type: float
|
|
857
|
+
description: "0.0/1.0 flag indicating the adviser charges performance-based fees (Form ADV Item 5E(6)). Common for hedge funds and PE managers"
|
|
858
|
+
display_name: "Charges Performance Fees"
|
|
859
|
+
mergeability: not_mergeable
|
|
860
|
+
domain_flavors: ["organization"]
|
|
861
|
+
examples: ["0", "1"]
|
|
862
|
+
passive: true
|
|
863
|
+
|
|
864
|
+
- name: "custody_client_securities"
|
|
865
|
+
type: float
|
|
866
|
+
description: "0.0/1.0 flag indicating the adviser has custody of client securities (Form ADV Item 9A(1)(a))"
|
|
867
|
+
display_name: "Has Custody of Securities"
|
|
868
|
+
mergeability: not_mergeable
|
|
869
|
+
domain_flavors: ["organization"]
|
|
870
|
+
examples: ["0", "1"]
|
|
871
|
+
passive: true
|
|
872
|
+
|
|
873
|
+
- name: "acts_as_qualified_custodian"
|
|
874
|
+
type: float
|
|
875
|
+
description: "0.0/1.0 flag indicating the adviser is itself a qualified custodian for client assets (Form ADV Item 9B(1)(a))"
|
|
876
|
+
display_name: "Acts as Qualified Custodian"
|
|
877
|
+
mergeability: not_mergeable
|
|
878
|
+
domain_flavors: ["organization"]
|
|
879
|
+
examples: ["0", "1"]
|
|
880
|
+
passive: true
|
|
881
|
+
|
|
882
|
+
- name: "regulatory_aum_discretionary"
|
|
883
|
+
type: float
|
|
884
|
+
description: "Regulatory assets under management held with discretionary authority, in USD (Form ADV Item 5F(2)(a)). Sub-component of total regulatory AUM"
|
|
885
|
+
display_name: "Regulatory AUM (Discretionary)"
|
|
886
|
+
mergeability: not_mergeable
|
|
887
|
+
domain_flavors: ["organization"]
|
|
888
|
+
examples: ["100000000", "1500000000"]
|
|
889
|
+
passive: true
|
|
890
|
+
|
|
891
|
+
- name: "regulatory_aum_nondiscretionary"
|
|
892
|
+
type: float
|
|
893
|
+
description: "Regulatory assets under management held without discretionary authority, in USD (Form ADV Item 5F(2)(b))"
|
|
894
|
+
display_name: "Regulatory AUM (Non-Discretionary)"
|
|
895
|
+
mergeability: not_mergeable
|
|
896
|
+
domain_flavors: ["organization"]
|
|
897
|
+
examples: ["0", "50000000"]
|
|
898
|
+
passive: true
|
|
899
|
+
|
|
900
|
+
- name: "total_accounts"
|
|
901
|
+
type: float
|
|
902
|
+
description: "Total number of regulatory accounts under management (Form ADV Item 5F(2)(f))"
|
|
903
|
+
display_name: "Total Accounts"
|
|
904
|
+
mergeability: not_mergeable
|
|
905
|
+
domain_flavors: ["organization"]
|
|
906
|
+
examples: ["10", "500", "50000"]
|
|
907
|
+
passive: true
|
|
908
|
+
|
|
909
|
+
# --- Disciplinary Disclosures (DRP tables) ---
|
|
910
|
+
|
|
911
|
+
- name: "drp_type"
|
|
912
|
+
type: string
|
|
913
|
+
description: "Disclosure Reporting Page category — \"criminal\" (IA_DRP_Criminal), \"regulatory\" (IA_DRP_Regulatory), or \"civil_judicial\" (IA_DRP_Civil_Judicial). Adviser-level disciplinary event"
|
|
914
|
+
display_name: "DRP Type"
|
|
915
|
+
mergeability: not_mergeable
|
|
916
|
+
domain_flavors: ["organization"]
|
|
917
|
+
examples: ["criminal", "regulatory", "civil_judicial"]
|
|
918
|
+
passive: true
|
|
919
|
+
|
|
920
|
+
- name: "drp_allegations"
|
|
921
|
+
type: string
|
|
922
|
+
description: "Free-text allegations as filed in a DRP disclosure. For regulatory and civil-judicial events this is the \"Allegations\" column; for criminal events the analogous \"Event Detail\" column populates this property"
|
|
923
|
+
display_name: "DRP Allegations"
|
|
924
|
+
mergeability: not_mergeable
|
|
925
|
+
domain_flavors: ["organization"]
|
|
926
|
+
examples: ["Failed to disclose conflict of interest", "Securities fraud"]
|
|
927
|
+
passive: true
|
|
928
|
+
|
|
929
|
+
- name: "drp_status"
|
|
930
|
+
type: string
|
|
931
|
+
description: "Current status of the DRP disciplinary event (e.g. pending, final, on appeal). Derived from the \"Status\" column"
|
|
932
|
+
display_name: "DRP Status"
|
|
933
|
+
mergeability: not_mergeable
|
|
934
|
+
domain_flavors: ["organization"]
|
|
935
|
+
examples: ["Final", "Pending", "On Appeal"]
|
|
936
|
+
passive: true
|
|
937
|
+
|
|
938
|
+
- name: "drp_resolution"
|
|
939
|
+
type: string
|
|
940
|
+
description: "Resolution / disposition of the DRP event when concluded — e.g. consented, settled, dismissed. Derived from \"Resolution\" / \"Resolution Type\" columns"
|
|
941
|
+
display_name: "DRP Resolution"
|
|
942
|
+
mergeability: not_mergeable
|
|
943
|
+
domain_flavors: ["organization"]
|
|
944
|
+
examples: ["Consented", "Settled", "Dismissed"]
|
|
945
|
+
passive: true
|
|
946
|
+
|
|
947
|
+
- name: "drp_sanctions"
|
|
948
|
+
type: string
|
|
949
|
+
description: "Principal sanction imposed for a regulatory DRP event. Derived from the \"Principal Sanction\" column; empty for criminal/civil-judicial DRPs"
|
|
950
|
+
display_name: "DRP Sanctions"
|
|
951
|
+
mergeability: not_mergeable
|
|
952
|
+
domain_flavors: ["organization"]
|
|
953
|
+
examples: ["Fine", "Censure", "Suspension"]
|
|
954
|
+
passive: true
|
|
955
|
+
|
|
956
|
+
- name: "drp_date"
|
|
957
|
+
type: string
|
|
958
|
+
description: "Date the DRP event was initiated, charged, or filed (YYYY-MM-DD). Derived from the type-specific date column (Date Initiated for regulatory, Date First Charged for criminal, Filing Date for civil-judicial), normalized to YYYY-MM-DD"
|
|
959
|
+
display_name: "DRP Date"
|
|
960
|
+
mergeability: not_mergeable
|
|
961
|
+
domain_flavors: ["organization"]
|
|
962
|
+
examples: ["2018-04-15", "2022-09-30"]
|
|
963
|
+
passive: true
|
|
964
|
+
|
|
965
|
+
- name: "drp_summary"
|
|
966
|
+
type: string
|
|
967
|
+
description: "Free-text summary of the DRP event. Derived from the \"Summary\" column"
|
|
968
|
+
display_name: "DRP Summary"
|
|
969
|
+
mergeability: not_mergeable
|
|
970
|
+
domain_flavors: ["organization"]
|
|
971
|
+
examples: ["Adviser settled SEC enforcement action regarding misallocation of fund expenses"]
|
|
972
|
+
passive: true
|
|
973
|
+
|
|
974
|
+
# --- ADV-W Withdrawal Filings ---
|
|
975
|
+
|
|
976
|
+
- name: "sec_registration_status"
|
|
977
|
+
type: string
|
|
978
|
+
description: "SEC-side registration status of an investment adviser firm. Set to \"Withdrawn\" on Form ADV-W records so the resolver's latest-atom-wins behavior reflects the firm's terminal state. Distinct from firm_registration_status (which is the primary regulator's status from the daily XML feed and can be a state regulator's value for state-registered firms)"
|
|
979
|
+
display_name: "SEC Registration Status"
|
|
980
|
+
mergeability: not_mergeable
|
|
981
|
+
domain_flavors: ["organization"]
|
|
982
|
+
examples: ["Withdrawn"]
|
|
983
|
+
passive: true
|
|
984
|
+
|
|
985
|
+
- name: "withdrawal_date"
|
|
986
|
+
type: string
|
|
987
|
+
description: "Date Form ADV-W was filed, normalized to YYYY-MM-DD. Derived from the \"Filing Date\" column of the ADVW_W2 CSV"
|
|
988
|
+
display_name: "Withdrawal Date"
|
|
989
|
+
mergeability: not_mergeable
|
|
990
|
+
domain_flavors: ["organization"]
|
|
991
|
+
examples: ["2023-06-30", "2024-12-15"]
|
|
992
|
+
passive: true
|
|
993
|
+
|
|
994
|
+
- name: "withdrawal_type"
|
|
995
|
+
type: string
|
|
996
|
+
description: "Form ADV-W filing type — \"FULL\" (complete withdrawal from SEC registration) or \"PARTIAL\". Derived from the \"Filing Type\" column"
|
|
997
|
+
display_name: "Withdrawal Type"
|
|
998
|
+
mergeability: not_mergeable
|
|
999
|
+
domain_flavors: ["organization"]
|
|
1000
|
+
examples: ["FULL", "PARTIAL"]
|
|
1001
|
+
passive: true
|
|
1002
|
+
|
|
1003
|
+
- name: "total_assets_at_withdrawal"
|
|
1004
|
+
type: float
|
|
1005
|
+
description: "Total assets reported on Form ADV-W at the time of withdrawal, in USD. Derived from the \"Assets Total Assets\" column of the ADVW_W2 CSV. Distinct from FDIC's bank-level total_assets (call-report balance sheet) and SEC's filing-level total_assets — those are point-in-time balance-sheet figures for active entities, while this is the closing balance at the moment an adviser terminated SEC registration"
|
|
1006
|
+
display_name: "Total Assets at Withdrawal (USD)"
|
|
1007
|
+
mergeability: not_mergeable
|
|
1008
|
+
domain_flavors: ["organization"]
|
|
1009
|
+
examples: ["50000000", "1500000000"]
|
|
1010
|
+
passive: true
|
|
1011
|
+
|
|
1012
|
+
- name: "total_shareholder_equity"
|
|
1013
|
+
type: float
|
|
1014
|
+
description: "Total shareholder equity reported on Form ADV-W at the time of withdrawal, in USD. Derived from the \"Total Shareholder Equity\" column"
|
|
1015
|
+
display_name: "Total Shareholder Equity at Withdrawal (USD)"
|
|
1016
|
+
mergeability: not_mergeable
|
|
1017
|
+
domain_flavors: ["organization"]
|
|
1018
|
+
examples: ["10000000", "250000000"]
|
|
1019
|
+
passive: true
|
|
1020
|
+
|
|
1021
|
+
# --- Person Identity (Schedule A/B + DRP affiliates) ---
|
|
1022
|
+
|
|
1023
|
+
- name: "person_crd"
|
|
1024
|
+
type: string
|
|
1025
|
+
description: "FINRA-assigned CRD number for an individual person (officer, principal, control person, DRP-affiliated individual). Distinct from organization CRD; persists across firm changes for the same individual. Property name aligns with the convention used by FINRA BrokerCheck and downstream cross-source person resolution"
|
|
1026
|
+
display_name: "Person CRD"
|
|
1027
|
+
mergeability: not_mergeable
|
|
1028
|
+
domain_flavors: ["person"]
|
|
1029
|
+
examples: ["1234567", "9876543"]
|
|
1030
|
+
passive: true
|
|
1031
|
+
|
|
1032
|
+
- name: "person_title"
|
|
1033
|
+
type: string
|
|
1034
|
+
description: "Title or status of an individual person at an investment adviser firm, per Form ADV Schedule A/B \"Title or Status\" column. Emitted only on person-flavored owner records; common values include officer titles and ownership/control role labels"
|
|
1035
|
+
display_name: "Person Title"
|
|
1036
|
+
mergeability: not_mergeable
|
|
1037
|
+
domain_flavors: ["person"]
|
|
1038
|
+
examples: ["CHIEF EXECUTIVE OFFICER", "PRESIDENT", "MEMBER", "DIRECTOR", "PRINCIPAL"]
|
|
1039
|
+
passive: true
|
|
1040
|
+
|
|
507
1041
|
relationships:
|
|
508
1042
|
- name: "is_located_at"
|
|
509
1043
|
description: "An entity is located at, operates in, resides in, is headquartered in, was born in, visits, or died in a location"
|
|
@@ -513,3 +1047,189 @@ relationships:
|
|
|
513
1047
|
target_flavors: ["location"]
|
|
514
1048
|
examples: ["Rabenold Advisors, Inc. is located at Williamsville, NY"]
|
|
515
1049
|
passive: true
|
|
1050
|
+
|
|
1051
|
+
# --- Private Fund Relationships (Schedule D 7.B(1)) ---
|
|
1052
|
+
|
|
1053
|
+
- name: "advised_by"
|
|
1054
|
+
description: "A private fund is managed by an investment adviser (the primary adviser-of-record on Form ADV Schedule D Section 7.B(1))"
|
|
1055
|
+
display_name: "Advised By"
|
|
1056
|
+
mergeability: not_mergeable
|
|
1057
|
+
domain_flavors: ["private_fund"]
|
|
1058
|
+
target_flavors: ["organization"]
|
|
1059
|
+
examples: ["HANSABEL INCOME, L.P. is advised by Acme Capital Management"]
|
|
1060
|
+
passive: true
|
|
1061
|
+
|
|
1062
|
+
- name: "co_advised_by"
|
|
1063
|
+
description: "A private fund is co-advised by an additional investment adviser (Schedule D 7.B(1) Item 17b)"
|
|
1064
|
+
display_name: "Co-Advised By"
|
|
1065
|
+
mergeability: not_mergeable
|
|
1066
|
+
domain_flavors: ["private_fund"]
|
|
1067
|
+
target_flavors: ["organization"]
|
|
1068
|
+
examples: ["A fund is co-advised by a related adviser"]
|
|
1069
|
+
passive: true
|
|
1070
|
+
|
|
1071
|
+
- name: "sub_advised_by"
|
|
1072
|
+
description: "A private fund is sub-advised by another investment adviser delegated specific portfolio management responsibilities (Schedule D 7.B(1) Item 18b)"
|
|
1073
|
+
display_name: "Sub-Advised By"
|
|
1074
|
+
mergeability: not_mergeable
|
|
1075
|
+
domain_flavors: ["private_fund"]
|
|
1076
|
+
target_flavors: ["organization"]
|
|
1077
|
+
examples: ["A fund delegates strategy to a sub-adviser"]
|
|
1078
|
+
passive: true
|
|
1079
|
+
|
|
1080
|
+
- name: "master_fund_of"
|
|
1081
|
+
description: "A private fund is the master fund into which one or more feeder funds are pooled (Schedule D 7.B(1) Master Fund ID/Name fields)"
|
|
1082
|
+
display_name: "Master Fund Of"
|
|
1083
|
+
mergeability: not_mergeable
|
|
1084
|
+
domain_flavors: ["private_fund"]
|
|
1085
|
+
target_flavors: ["private_fund"]
|
|
1086
|
+
examples: ["A feeder fund references its master fund"]
|
|
1087
|
+
passive: true
|
|
1088
|
+
|
|
1089
|
+
- name: "has_sub_fund"
|
|
1090
|
+
description: "A private fund has beneficial ownership of a sub-fund disclosed on Schedule D 7.B(1) Item 7"
|
|
1091
|
+
display_name: "Has Sub-Fund"
|
|
1092
|
+
mergeability: not_mergeable
|
|
1093
|
+
domain_flavors: ["private_fund"]
|
|
1094
|
+
target_flavors: ["private_fund"]
|
|
1095
|
+
examples: ["A fund-of-funds holds a sub-fund"]
|
|
1096
|
+
passive: true
|
|
1097
|
+
|
|
1098
|
+
- name: "feeds_into"
|
|
1099
|
+
description: "A feeder private fund channels investor capital into the linked fund per Schedule D 7.B(1) Item 6b"
|
|
1100
|
+
display_name: "Feeds Into"
|
|
1101
|
+
mergeability: not_mergeable
|
|
1102
|
+
domain_flavors: ["private_fund"]
|
|
1103
|
+
target_flavors: ["private_fund"]
|
|
1104
|
+
examples: ["A feeder fund feeds into the linked master fund"]
|
|
1105
|
+
passive: true
|
|
1106
|
+
|
|
1107
|
+
- name: "general_partner_of"
|
|
1108
|
+
description: "An organization (typically a general partner LLC or managing member) acts as the general partner of a private fund per Schedule D 7.B(1) Item 7d1"
|
|
1109
|
+
display_name: "General Partner Of"
|
|
1110
|
+
mergeability: not_mergeable
|
|
1111
|
+
domain_flavors: ["private_fund"]
|
|
1112
|
+
target_flavors: ["organization"]
|
|
1113
|
+
examples: ["A GP LLC is the general partner of the fund"]
|
|
1114
|
+
passive: true
|
|
1115
|
+
|
|
1116
|
+
- name: "named_partner_of"
|
|
1117
|
+
description: "A named partner or principal of the private fund as reported on Schedule D 7.B(1) Item 3a"
|
|
1118
|
+
display_name: "Named Partner Of"
|
|
1119
|
+
mergeability: not_mergeable
|
|
1120
|
+
domain_flavors: ["private_fund"]
|
|
1121
|
+
target_flavors: ["organization"]
|
|
1122
|
+
examples: ["A founding partner of the fund"]
|
|
1123
|
+
passive: true
|
|
1124
|
+
|
|
1125
|
+
- name: "marketer_of"
|
|
1126
|
+
description: "A marketer or solicitor that markets the private fund to investors, per Schedule D 7.B(1) Item 28"
|
|
1127
|
+
display_name: "Marketer Of"
|
|
1128
|
+
mergeability: not_mergeable
|
|
1129
|
+
domain_flavors: ["private_fund"]
|
|
1130
|
+
target_flavors: ["organization"]
|
|
1131
|
+
examples: ["A placement agent markets the fund"]
|
|
1132
|
+
passive: true
|
|
1133
|
+
|
|
1134
|
+
- name: "prime_broker_of"
|
|
1135
|
+
description: "The prime broker providing financing and execution services to the private fund, per Schedule D 7.B(1) Item 24"
|
|
1136
|
+
display_name: "Prime Broker Of"
|
|
1137
|
+
mergeability: not_mergeable
|
|
1138
|
+
domain_flavors: ["private_fund"]
|
|
1139
|
+
target_flavors: ["organization"]
|
|
1140
|
+
examples: ["Goldman Sachs is the prime broker of the fund"]
|
|
1141
|
+
passive: true
|
|
1142
|
+
|
|
1143
|
+
- name: "custodian_of"
|
|
1144
|
+
description: "The custodian holding the private fund's assets, per Schedule D 7.B(1) Item 25"
|
|
1145
|
+
display_name: "Custodian Of"
|
|
1146
|
+
mergeability: not_mergeable
|
|
1147
|
+
domain_flavors: ["private_fund"]
|
|
1148
|
+
target_flavors: ["organization"]
|
|
1149
|
+
examples: ["State Street is the custodian of the fund"]
|
|
1150
|
+
passive: true
|
|
1151
|
+
|
|
1152
|
+
- name: "auditor_of"
|
|
1153
|
+
description: "The auditing firm performing the private fund's annual audit, per Schedule D 7.B(1) Item 23"
|
|
1154
|
+
display_name: "Auditor Of"
|
|
1155
|
+
mergeability: not_mergeable
|
|
1156
|
+
domain_flavors: ["private_fund"]
|
|
1157
|
+
target_flavors: ["organization"]
|
|
1158
|
+
examples: ["Ernst & Young audits the fund"]
|
|
1159
|
+
passive: true
|
|
1160
|
+
|
|
1161
|
+
- name: "administrator_of"
|
|
1162
|
+
description: "The fund administrator handling investor accounting and reporting for the private fund, per Schedule D 7.B(1) Item 26"
|
|
1163
|
+
display_name: "Administrator Of"
|
|
1164
|
+
mergeability: not_mergeable
|
|
1165
|
+
domain_flavors: ["private_fund"]
|
|
1166
|
+
target_flavors: ["organization"]
|
|
1167
|
+
examples: ["SS&C GlobeOp is the administrator of the fund"]
|
|
1168
|
+
passive: true
|
|
1169
|
+
|
|
1170
|
+
# --- Adviser-Level Custody (Item 5K(3)) ---
|
|
1171
|
+
|
|
1172
|
+
- name: "primary_custodian"
|
|
1173
|
+
description: "An investment adviser's primary custodian holding client assets, per Form ADV Item 5K(3). The custodian is an organization (custody bank or qualified broker-dealer); strong-IDs preserve CRD and SEC file number for cross-source resolution"
|
|
1174
|
+
display_name: "Primary Custodian"
|
|
1175
|
+
mergeability: not_mergeable
|
|
1176
|
+
domain_flavors: ["organization"]
|
|
1177
|
+
target_flavors: ["organization"]
|
|
1178
|
+
examples: ["Acme Capital Management uses State Street as its primary custodian"]
|
|
1179
|
+
passive: true
|
|
1180
|
+
|
|
1181
|
+
# --- Ownership, Control, and Affiliation Graph ---
|
|
1182
|
+
|
|
1183
|
+
- name: "owner_of"
|
|
1184
|
+
description: "A person or organization is a direct (Schedule A) or indirect (Schedule B) owner of an investment adviser firm. Direction is owner → adviser; the schedule and ownership code are preserved in the source row's citation"
|
|
1185
|
+
display_name: "Owner Of"
|
|
1186
|
+
mergeability: not_mergeable
|
|
1187
|
+
domain_flavors: ["person", "organization"]
|
|
1188
|
+
target_flavors: ["organization"]
|
|
1189
|
+
examples: ["John Doe is an owner of Acme Capital Management", "Acme Holdings LLC is an owner of Acme Capital Management"]
|
|
1190
|
+
passive: true
|
|
1191
|
+
|
|
1192
|
+
- name: "controlled_by"
|
|
1193
|
+
description: "An investment adviser firm is controlled by a Schedule D 10B control entity (a parent organization, holding company, or other person/entity with control). Direction is adviser → control entity, matching the passive-voice convention shared with owner_of / advised_by / affiliated_with (subject is the entity being acted upon). CIK is carried on the control entity target when the SEC's enrichment table provides it, enabling cross-source resolution to EDGAR"
|
|
1194
|
+
display_name: "Controlled By"
|
|
1195
|
+
mergeability: not_mergeable
|
|
1196
|
+
domain_flavors: ["organization"]
|
|
1197
|
+
target_flavors: ["organization"]
|
|
1198
|
+
examples: ["Acme Capital Management is controlled by Acme Holdings LLC (CIK 0001234567)"]
|
|
1199
|
+
passive: true
|
|
1200
|
+
|
|
1201
|
+
- name: "affiliated_with"
|
|
1202
|
+
description: "An investment adviser has a Schedule D 7A financial industry affiliation with another organization (e.g. broker-dealer, bank, insurance company, futures commission merchant). CIK is carried on the affiliate when available via the 7A_CIK enrichment table"
|
|
1203
|
+
display_name: "Affiliated With"
|
|
1204
|
+
mergeability: not_mergeable
|
|
1205
|
+
domain_flavors: ["organization"]
|
|
1206
|
+
target_flavors: ["organization"]
|
|
1207
|
+
examples: ["Acme Capital Management is affiliated with Acme Securities LLC"]
|
|
1208
|
+
passive: true
|
|
1209
|
+
|
|
1210
|
+
- name: "successor_to"
|
|
1211
|
+
description: "An investment adviser acquired or succeeded another firm, per Form ADV Schedule D Item 4. Direction: successor (subject) → acquired firm (target). Captures M&A continuity so the acquired firm's historical records can be linked to the acquirer's go-forward records. Property name aligned with bny.successor_to for cross-source consistency"
|
|
1212
|
+
display_name: "Successor To"
|
|
1213
|
+
mergeability: not_mergeable
|
|
1214
|
+
domain_flavors: ["organization"]
|
|
1215
|
+
target_flavors: ["organization"]
|
|
1216
|
+
examples: ["Acme Capital is successor to Beta Advisors after 2023 acquisition"]
|
|
1217
|
+
passive: true
|
|
1218
|
+
|
|
1219
|
+
- name: "related_to"
|
|
1220
|
+
description: "An investment adviser is related to another SEC-registered investment adviser, per Form ADV Schedule D 2A_Related. Typical for sibling firms under a common holding company or family of advisers. Distinct from affiliated_with (Schedule D 7A) which captures broader financial-industry affiliations across regulatory categories"
|
|
1221
|
+
display_name: "Related To"
|
|
1222
|
+
mergeability: not_mergeable
|
|
1223
|
+
domain_flavors: ["organization"]
|
|
1224
|
+
target_flavors: ["organization"]
|
|
1225
|
+
examples: ["Acme Capital is related to Acme Wealth Management"]
|
|
1226
|
+
passive: true
|
|
1227
|
+
|
|
1228
|
+
- name: "drp_affiliate"
|
|
1229
|
+
description: "A specific named affiliate — either an individual (officer, principal, control person) or an affiliated firm — is named on a DRP disciplinary disclosure filed by an investment adviser, per IA_DRP_Advisory_Affiliates. Provides the per-affiliate grain that the DRP records themselves lack. Direction: adviser → affiliate. Target flavor follows the row's Affiliate Type: Individual rows resolve as persons (carrying person_crd when known); Firm rows resolve as organizations (carrying crd_number when known)."
|
|
1230
|
+
display_name: "DRP Affiliate"
|
|
1231
|
+
mergeability: not_mergeable
|
|
1232
|
+
domain_flavors: ["organization"]
|
|
1233
|
+
target_flavors: ["person", "organization"]
|
|
1234
|
+
examples: ["The 2018 regulatory DRP filed by Acme Capital names Jane Doe as the affiliated individual", "The 2021 regulatory DRP filed by Acme Capital names its affiliated broker-dealer Acme Securities LLC"]
|
|
1235
|
+
passive: true
|
package/skill/stocks/schema.yaml
CHANGED
|
@@ -106,7 +106,7 @@ properties:
|
|
|
106
106
|
|
|
107
107
|
- name: "close_price"
|
|
108
108
|
type: float
|
|
109
|
-
description: "Closing price of the trading interval in USD
|
|
109
|
+
description: "Closing price of the trading interval in USD"
|
|
110
110
|
display_name: "Close Price"
|
|
111
111
|
mergeability: not_mergeable
|
|
112
112
|
domain_flavors: ["financial_instrument"]
|