@yottagraph-app/data-model-skill 0.0.5 → 0.0.7
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
|
@@ -52,7 +52,32 @@ Each SEC form type is a separate flavor, namespaced under `sec`. All share the s
|
|
|
52
52
|
| `sec::13f_hr` | 13F-HR | Institutional investment manager holdings |
|
|
53
53
|
| `sec::def_14a` | DEF 14A | Definitive proxy statement |
|
|
54
54
|
|
|
55
|
-
Sub-
|
|
55
|
+
### Sub-Records (8-K Events, Form 4 Transactions, Form 3 Holdings)
|
|
56
|
+
|
|
57
|
+
Sub-records are **separate graph entities**, not nested properties on the parent filing. Each sub-record has its own NEID and can be queried independently. They use the same flavor as their parent filing (e.g., `sec::8_k` for 8-K events, `sec::form_4` for Form 4 transactions).
|
|
58
|
+
|
|
59
|
+
**Entity naming pattern:**
|
|
60
|
+
- 8-K events: `{accession_number}_evt_{n}` (e.g., `0000320193-24-000067_evt_1`)
|
|
61
|
+
- Form 4 transactions: `{accession_number}_trx_{n}` (e.g., `0000320193-24-000067_trx_1`)
|
|
62
|
+
- Form 3 holdings: `{accession_number}_holding_{n}`
|
|
63
|
+
|
|
64
|
+
**Relationships on sub-records:**
|
|
65
|
+
- `filed` — points to the parent filing's accession number
|
|
66
|
+
- `issued_by` — points to the company
|
|
67
|
+
|
|
68
|
+
**Critical querying note:** Properties like `form_8k_event`, `form_8k_item_code`, `transaction_type`, `shares_transacted`, and other sub-record-specific properties do NOT appear on the parent filing entity or the organization entity. You must traverse the graph to the sub-record entities to access them.
|
|
69
|
+
|
|
70
|
+
**Traversal path:**
|
|
71
|
+
```
|
|
72
|
+
organization --[filed]--> 8-K filing --[linked, distance 1]--> event sub-records
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
**Example: Finding 8-K event sub-records for a company:**
|
|
76
|
+
1. Get filing NEIDs from the organization's `filed` property
|
|
77
|
+
2. Filter to 8-K filings by checking `form_type == "8-K"`
|
|
78
|
+
3. For each 8-K filing, use a `linked` expression (distance 1, direction both) to find connected entities
|
|
79
|
+
4. Exclude the organization and the filing itself from results — the remaining entities are the event sub-records
|
|
80
|
+
5. Query those sub-record NEIDs for `form_8k_event` and `form_8k_item_code`
|
|
56
81
|
|
|
57
82
|
### `person`
|
|
58
83
|
|
|
@@ -161,12 +186,34 @@ The six core financial properties appear on both the **organization** and its **
|
|
|
161
186
|
|
|
162
187
|
#### 8-K Corporate Events (source: `edgar_8k`)
|
|
163
188
|
|
|
164
|
-
Data source: 8-K current report filings.
|
|
189
|
+
Data source: 8-K current report filings.
|
|
190
|
+
|
|
191
|
+
> **Important:** These properties are on **event sub-record entities**, not on the parent 8-K filing or the organization. See the [Sub-Records section](#sub-records-8-k-events-form-4-transactions-form-3-holdings) above for how to find them.
|
|
165
192
|
|
|
193
|
+
**Core event properties:**
|
|
166
194
|
* `form_8k_event` — Snake_case event identifier. Examples: `"material_agreement"`, `"officer_director_change"`
|
|
167
195
|
* `form_8k_item_code` — Raw SEC item number. Examples: `"1.01"`, `"5.02"`
|
|
196
|
+
* `event_severity` — Event importance classification. Values: `"critical"`, `"high"`, `"medium"`, `"low"`
|
|
168
197
|
* `category` — Sub-classification of Item 8.01 Other Events. Examples: `"cybersecurity_incident"`
|
|
169
198
|
|
|
199
|
+
**Sub-record identity and relationships:**
|
|
200
|
+
* `accession_number` — Synthetic sub-record identifier. Example: `"0000320193-24-000067_evt_1"`
|
|
201
|
+
* `filed` — Relationship: event sub-record → parent 8-K filing
|
|
202
|
+
* `issued_by` — Relationship: event sub-record → company
|
|
203
|
+
|
|
204
|
+
**Item 8.01 keyword flags** (set to `"true"` when matched):
|
|
205
|
+
* `8k_cybersecurity_keyword` — Cybersecurity-related disclosure detected
|
|
206
|
+
* `8k_litigation_keyword` — Litigation-related disclosure detected
|
|
207
|
+
* `8k_regulatory_keyword` — Regulatory-related disclosure detected
|
|
208
|
+
* `8k_operational_keyword` — Operational issue disclosure detected
|
|
209
|
+
|
|
210
|
+
**ABS event flags** (Items 6.01–6.05, set to `"true"` when applicable):
|
|
211
|
+
* `abs_servicing_event` — Item 6.01: ABS servicing event
|
|
212
|
+
* `abs_servicer_change` — Item 6.02: ABS servicer change
|
|
213
|
+
* `abs_credit_enhancement_change` — Item 6.03: ABS credit enhancement change
|
|
214
|
+
* `abs_failure_event` — Item 6.04: ABS failure to make distribution
|
|
215
|
+
* `abs_securities_act` — Item 6.05: ABS Securities Act updating disclosure
|
|
216
|
+
|
|
170
217
|
#### Beneficial Ownership (source: `edgar_sc_13d`, `edgar_sc_13g`)
|
|
171
218
|
|
|
172
219
|
Data source: SC 13D/G XML filings. Properties on the filer organization.
|
|
@@ -240,8 +287,14 @@ Data source: Form 3/4 XML.
|
|
|
240
287
|
|
|
241
288
|
#### Form 4 Transactions (source: `edgar_4`)
|
|
242
289
|
|
|
243
|
-
|
|
290
|
+
> **Important:** These properties are on **transaction sub-record entities**, not on the parent Form 4 filing. See the [Sub-Records section](#sub-records-8-k-events-form-4-transactions-form-3-holdings) above for how to find them.
|
|
291
|
+
|
|
292
|
+
**Sub-record identity and relationships:**
|
|
293
|
+
* `accession_number` — Synthetic sub-record identifier. Example: `"0000320193-24-000067_trx_1"`
|
|
294
|
+
* `filed` — Relationship: transaction sub-record → parent Form 4 filing
|
|
295
|
+
* `issued_by` — Relationship: transaction sub-record → issuer company
|
|
244
296
|
|
|
297
|
+
**Transaction properties:**
|
|
245
298
|
* `transaction_type` — Human-readable code description. Examples: `"Open market or private purchase"`, `"Grant, award, or other acquisition"`
|
|
246
299
|
* `transaction_date` — Transaction date (YYYY-MM-DD)
|
|
247
300
|
* `acquired_disposed_code` — `"A"` (acquired) or `"D"` (disposed)
|
|
@@ -284,6 +337,8 @@ Data source: 13F-HR XML information table.
|
|
|
284
337
|
|
|
285
338
|
## Entity Relationships
|
|
286
339
|
|
|
340
|
+
> **Sub-record traversal:** Sub-records (8-K events, Form 4 transactions, Form 3 holdings) are separate document entities. To find them, traverse from the parent filing using a `linked` expression (distance 1). The sub-record's `filed` property points back to the parent filing, and `issued_by` points to the company.
|
|
341
|
+
|
|
287
342
|
```
|
|
288
343
|
organization ──[filed]────────────────────→ document
|
|
289
344
|
organization ──[filing_reference]─────────→ document
|
|
@@ -296,7 +351,8 @@ document ──[refers_to]──────────────
|
|
|
296
351
|
document ──[filer]────────────────────→ organization (SC 13D/G)
|
|
297
352
|
document ──[group_member]─────────────→ organization (SC 13D)
|
|
298
353
|
document ──[compares_to]──────────────→ organization (DEF 14A)
|
|
299
|
-
document
|
|
354
|
+
document (sub-record)──[filed]────────────────────→ document (8-K event → parent 8-K filing)
|
|
355
|
+
document (sub-record)──[issued_by]────────────────→ organization (8-K event / Form 4 txn → company)
|
|
300
356
|
person ──[is_officer]───────────────→ organization
|
|
301
357
|
person ──[is_director]──────────────→ organization
|
|
302
358
|
person ──[is_ten_percent_owner]─────→ organization
|
package/skill/edgar/schema.yaml
CHANGED
|
@@ -126,6 +126,14 @@ flavors:
|
|
|
126
126
|
strong_id_properties: ["accession_number"]
|
|
127
127
|
passive: true
|
|
128
128
|
|
|
129
|
+
- name: "filing"
|
|
130
|
+
namespace: "sec"
|
|
131
|
+
description: "SEC filing (generic, for form types without a specific modeled flavor)"
|
|
132
|
+
display_name: "SEC Filing"
|
|
133
|
+
mergeability: not_mergeable
|
|
134
|
+
strong_id_properties: ["accession_number"]
|
|
135
|
+
passive: true
|
|
136
|
+
|
|
129
137
|
- name: "person"
|
|
130
138
|
description: "A real person as opposed to a fictional character, such as a CEO, politician, or public figure"
|
|
131
139
|
display_name: "Person"
|
|
@@ -574,7 +582,7 @@ properties:
|
|
|
574
582
|
description: "SEC accession number uniquely identifying a filing"
|
|
575
583
|
display_name: "Accession Number"
|
|
576
584
|
mergeability: not_mergeable
|
|
577
|
-
domain_flavors: ["sec::10_k", "sec::10_q", "sec::20_f", "sec::8_k", "sec::6_k", "sec::40_f", "sec::form_3", "sec::form_4", "sec::sc_13d", "sec::sc_13g", "sec::13f_hr", "sec::def_14a"]
|
|
585
|
+
domain_flavors: ["sec::10_k", "sec::10_q", "sec::20_f", "sec::8_k", "sec::6_k", "sec::40_f", "sec::form_3", "sec::form_4", "sec::sc_13d", "sec::sc_13g", "sec::13f_hr", "sec::def_14a", "sec::filing"]
|
|
578
586
|
passive: true
|
|
579
587
|
|
|
580
588
|
- name: "form_type"
|
|
@@ -582,7 +590,7 @@ properties:
|
|
|
582
590
|
description: "Normalized SEC form type (e.g. 10-K, SC 13D, 4)"
|
|
583
591
|
display_name: "Form Type"
|
|
584
592
|
mergeability: not_mergeable
|
|
585
|
-
domain_flavors: ["sec::10_k", "sec::10_q", "sec::20_f", "sec::8_k", "sec::6_k", "sec::40_f", "sec::form_3", "sec::form_4", "sec::sc_13d", "sec::sc_13g", "sec::13f_hr", "sec::def_14a"]
|
|
593
|
+
domain_flavors: ["sec::10_k", "sec::10_q", "sec::20_f", "sec::8_k", "sec::6_k", "sec::40_f", "sec::form_3", "sec::form_4", "sec::sc_13d", "sec::sc_13g", "sec::13f_hr", "sec::def_14a", "sec::filing"]
|
|
586
594
|
passive: true
|
|
587
595
|
|
|
588
596
|
- name: "filing_date"
|
|
@@ -590,7 +598,7 @@ properties:
|
|
|
590
598
|
description: "Date the filing was submitted to the SEC (YYYY-MM-DD)"
|
|
591
599
|
display_name: "Filing Date"
|
|
592
600
|
mergeability: not_mergeable
|
|
593
|
-
domain_flavors: ["sec::10_k", "sec::10_q", "sec::20_f", "sec::8_k", "sec::6_k", "sec::40_f", "sec::form_3", "sec::form_4", "sec::sc_13d", "sec::sc_13g", "sec::13f_hr", "sec::def_14a"]
|
|
601
|
+
domain_flavors: ["sec::10_k", "sec::10_q", "sec::20_f", "sec::8_k", "sec::6_k", "sec::40_f", "sec::form_3", "sec::form_4", "sec::sc_13d", "sec::sc_13g", "sec::13f_hr", "sec::def_14a", "sec::filing"]
|
|
594
602
|
passive: true
|
|
595
603
|
|
|
596
604
|
- name: "report_date"
|
|
@@ -598,7 +606,7 @@ properties:
|
|
|
598
606
|
description: "End date of the primary reporting period (YYYY-MM-DD)"
|
|
599
607
|
display_name: "Report Date"
|
|
600
608
|
mergeability: not_mergeable
|
|
601
|
-
domain_flavors: ["sec::10_k", "sec::10_q", "sec::20_f", "sec::8_k", "sec::6_k", "sec::40_f", "sec::form_3", "sec::form_4", "sec::sc_13d", "sec::sc_13g", "sec::13f_hr", "sec::def_14a"]
|
|
609
|
+
domain_flavors: ["sec::10_k", "sec::10_q", "sec::20_f", "sec::8_k", "sec::6_k", "sec::40_f", "sec::form_3", "sec::form_4", "sec::sc_13d", "sec::sc_13g", "sec::13f_hr", "sec::def_14a", "sec::filing"]
|
|
602
610
|
passive: true
|
|
603
611
|
|
|
604
612
|
# ── XBRL Financial Facts (key concepts) ──
|
|
@@ -1720,8 +1728,16 @@ relationships:
|
|
|
1720
1728
|
description: "Link from a company to an SEC filing document it filed, or from a sub-record (event, transaction, holding) to its parent filing"
|
|
1721
1729
|
display_name: "Filed"
|
|
1722
1730
|
mergeability: not_mergeable
|
|
1723
|
-
domain_flavors: ["organization", "sec::10_k", "sec::10_q", "sec::20_f", "sec::8_k", "sec::6_k", "sec::40_f", "sec::form_3", "sec::form_4", "sec::sc_13d", "sec::sc_13g", "sec::13f_hr", "sec::def_14a"]
|
|
1724
|
-
target_flavors: ["sec::10_k", "sec::10_q", "sec::20_f", "sec::8_k", "sec::6_k", "sec::40_f", "sec::form_3", "sec::form_4", "sec::sc_13d", "sec::sc_13g", "sec::13f_hr", "sec::def_14a"]
|
|
1731
|
+
domain_flavors: ["organization", "sec::10_k", "sec::10_q", "sec::20_f", "sec::8_k", "sec::6_k", "sec::40_f", "sec::form_3", "sec::form_4", "sec::sc_13d", "sec::sc_13g", "sec::13f_hr", "sec::def_14a", "sec::filing"]
|
|
1732
|
+
target_flavors: ["sec::10_k", "sec::10_q", "sec::20_f", "sec::8_k", "sec::6_k", "sec::40_f", "sec::form_3", "sec::form_4", "sec::sc_13d", "sec::sc_13g", "sec::13f_hr", "sec::def_14a", "sec::filing"]
|
|
1733
|
+
passive: true
|
|
1734
|
+
|
|
1735
|
+
- name: "is_issuer_of"
|
|
1736
|
+
description: "Link from an issuer organization to a Section 16 ownership filing (Forms 3/4) where the CIK is the issuer, not the filer. The actual filer (insider) is resolved from the raw document header."
|
|
1737
|
+
display_name: "Is Issuer Of"
|
|
1738
|
+
mergeability: not_mergeable
|
|
1739
|
+
domain_flavors: ["organization"]
|
|
1740
|
+
target_flavors: ["sec::form_3", "sec::form_4", "sec::filing"]
|
|
1725
1741
|
passive: true
|
|
1726
1742
|
|
|
1727
1743
|
- name: "filing_reference"
|
|
@@ -1738,7 +1754,7 @@ relationships:
|
|
|
1738
1754
|
description: "Link from a filing to the company it pertains to (the filer for most forms; the issuer for ownership forms)"
|
|
1739
1755
|
display_name: "Issued By"
|
|
1740
1756
|
mergeability: not_mergeable
|
|
1741
|
-
domain_flavors: ["sec::10_k", "sec::10_q", "sec::20_f", "sec::8_k", "sec::6_k", "sec::40_f", "sec::form_3", "sec::form_4", "sec::sc_13d", "sec::sc_13g", "sec::13f_hr", "sec::def_14a"]
|
|
1757
|
+
domain_flavors: ["sec::10_k", "sec::10_q", "sec::20_f", "sec::8_k", "sec::6_k", "sec::40_f", "sec::form_3", "sec::form_4", "sec::sc_13d", "sec::sc_13g", "sec::13f_hr", "sec::def_14a", "sec::filing"]
|
|
1742
1758
|
target_flavors: ["organization"]
|
|
1743
1759
|
passive: true
|
|
1744
1760
|
|