@yottagraph-app/aether-instructions 1.1.7 → 1.1.9
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/commands/build_my_app.md +2 -2
- package/commands/update_instructions.md +30 -23
- package/package.json +1 -1
- package/rules/aether.mdc +1 -1
- package/rules/api.mdc +10 -15
- package/skills/data-model/SKILL.md +58 -0
- package/skills/data-model/edgar/DATA_DICTIONARY.md +306 -0
- package/skills/data-model/edgar/schema.yaml +1893 -0
- package/skills/data-model/fdic/DATA_DICTIONARY.md +243 -0
- package/skills/data-model/fdic/schema.yaml +356 -0
- package/skills/data-model/fred/DATA_DICTIONARY.md +313 -0
- package/skills/data-model/fred/schema.yaml +155 -0
- package/skills/data-model/gleif/DATA_DICTIONARY.md +211 -0
- package/skills/data-model/gleif/schema.yaml +254 -0
- package/skills/data-model/newsdata/schema.yaml +650 -0
- package/skills/data-model/overview.md +77 -0
- package/skills/data-model/polymarket/DATA_DICTIONARY.md +384 -0
- package/skills/data-model/polymarket/schema.yaml +601 -0
- package/skills/data-model/sanctions/DATA_DICTIONARY.md +140 -0
- package/skills/data-model/sanctions/schema.yaml +153 -0
- package/skills/data-model/stocks/DATA_DICTIONARY.md +122 -0
- package/skills/data-model/stocks/schema.yaml +131 -0
- package/skills/data-model/system_schema.yaml +71 -0
- package/skills/data-model/wikipedia/DATA_DICTIONARY.md +185 -0
- package/skills/data-model/wikipedia/schema.yaml +255 -0
- package/skills/elemental-api/SKILL.md +37 -0
- package/skills/elemental-api/articles.md +386 -0
- package/skills/elemental-api/entities.md +393 -0
- package/skills/elemental-api/events.md +145 -0
- package/skills/elemental-api/find.md +279 -0
- package/skills/elemental-api/graph.md +239 -0
- package/skills/elemental-api/llm.md +18 -0
- package/skills/elemental-api/overview.md +51 -0
- package/skills/elemental-api/relationships.md +310 -0
- package/skills/elemental-api/schema.md +379 -0
- package/skills/elemental-api/sentiment.md +93 -0
- package/skills/elemental-api/server.md +186 -0
package/commands/build_my_app.md
CHANGED
|
@@ -73,10 +73,10 @@ Then read these files to understand what's available:
|
|
|
73
73
|
1. `DESIGN.md` -- project vision and current status
|
|
74
74
|
2. `broadchurch.yaml` -- project config (name, gateway URL, etc.)
|
|
75
75
|
3. **The `api` cursor rule** -- this is critical. It describes the Query Server, the platform's primary data source. Build against platform APIs, not external sources.
|
|
76
|
-
4.
|
|
76
|
+
4. **`.cursor/skills/`** — Each subdirectory is one skill. List them, open each skill’s entry (usually `SKILL.md`) and follow its structure to learn what is documented (APIs, schemas, helpers, etc.).
|
|
77
77
|
5. `.cursor/rules/` -- scan rule names to know what other patterns are available
|
|
78
78
|
|
|
79
|
-
**Important: Use the platform's data.** This app runs on the Lovelace platform, which provides a Query Server with entities, news, filings, sentiment, relationships, events, and more. Read the `api` rule and the
|
|
79
|
+
**Important: Use the platform's data.** This app runs on the Lovelace platform, which provides a Query Server with entities, news, filings, sentiment, relationships, events, and more. Read the `api` rule and the skills under `.cursor/skills/` to understand what data is available. Use `getSchema()` to discover entity types and properties at runtime.
|
|
80
80
|
|
|
81
81
|
Key capabilities:
|
|
82
82
|
|
|
@@ -10,12 +10,13 @@ This command downloads the latest instructions package and extracts it to your `
|
|
|
10
10
|
|
|
11
11
|
1. Downloads the latest `@yottagraph-app/aether-instructions` package
|
|
12
12
|
2. Deletes files listed in the existing manifest
|
|
13
|
-
3.
|
|
14
|
-
4.
|
|
15
|
-
5.
|
|
16
|
-
6. Commits the changes
|
|
13
|
+
3. Extracts fresh files from the package
|
|
14
|
+
4. Writes a new manifest
|
|
15
|
+
5. Commits the changes
|
|
17
16
|
|
|
18
|
-
**Your files are safe:** Only
|
|
17
|
+
**Your files are safe:** Only paths listed in the manifest are removed before reinstall. Other files under `.cursor/` are left alone.
|
|
18
|
+
|
|
19
|
+
**Shell compatibility:** Run the bash snippets below with **`bash`**, not bare `zsh`. An **empty line** in the manifest can make `rm -rf ".cursor/$rel"` delete **all of `.cursor/`** — Step 4 skips blank lines to avoid that.
|
|
19
20
|
|
|
20
21
|
---
|
|
21
22
|
|
|
@@ -70,24 +71,17 @@ The extracted content is in `$TEMP_DIR/package/`.
|
|
|
70
71
|
|
|
71
72
|
## Step 4: Delete Previously Installed Files
|
|
72
73
|
|
|
73
|
-
Read the manifest and delete listed
|
|
74
|
+
Read the manifest and delete listed paths. **Skip blank lines** — an empty `rel` would run `rm -rf ".cursor/"` and wipe the whole directory.
|
|
74
75
|
|
|
75
76
|
```bash
|
|
76
77
|
if [ -f .cursor/.aether-instructions-manifest ]; then
|
|
77
|
-
while IFS= read -r rel; do
|
|
78
|
+
while IFS= read -r rel || [ -n "$rel" ]; do
|
|
79
|
+
[ -z "$rel" ] && continue
|
|
78
80
|
rm -rf ".cursor/$rel"
|
|
79
81
|
done < .cursor/.aether-instructions-manifest
|
|
80
82
|
fi
|
|
81
83
|
```
|
|
82
84
|
|
|
83
|
-
Also clean up legacy `aether_*` files from older package versions:
|
|
84
|
-
|
|
85
|
-
```bash
|
|
86
|
-
rm -f .cursor/rules/aether_*.mdc
|
|
87
|
-
rm -f .cursor/commands/aether_*.md
|
|
88
|
-
rm -rf .cursor/skills/aether_*/
|
|
89
|
-
```
|
|
90
|
-
|
|
91
85
|
---
|
|
92
86
|
|
|
93
87
|
## Step 5: Copy New Files
|
|
@@ -110,16 +104,18 @@ cp -r "$TEMP_DIR/package/skills/"* .cursor/skills/ 2>/dev/null || true
|
|
|
110
104
|
|
|
111
105
|
## Step 6: Write Manifest and Version Marker
|
|
112
106
|
|
|
113
|
-
Build a manifest of all installed files (one relative path per line):
|
|
107
|
+
Build a manifest of all installed files (one relative path per line). **Do not** build a string with a leading `\n` — that writes a blank first line and breaks Step 4. Prefer one `echo` per line:
|
|
114
108
|
|
|
115
109
|
```bash
|
|
116
|
-
|
|
117
|
-
for f in .cursor/rules/*.mdc; do [ -f "$f" ] &&
|
|
118
|
-
for f in .cursor/commands/*.md; do [ -f "$f" ] &&
|
|
119
|
-
for d in .cursor/skills/*/; do [ -d "$d" ] &&
|
|
120
|
-
|
|
110
|
+
{
|
|
111
|
+
for f in .cursor/rules/*.mdc; do [ -f "$f" ] && echo "rules/$(basename "$f")"; done
|
|
112
|
+
for f in .cursor/commands/*.md; do [ -f "$f" ] && echo "commands/$(basename "$f")"; done
|
|
113
|
+
for d in .cursor/skills/*/; do [ -d "$d" ] && echo "skills/$(basename "$d")"; done
|
|
114
|
+
} > .cursor/.aether-instructions-manifest
|
|
121
115
|
```
|
|
122
116
|
|
|
117
|
+
If the repo uses **bash** for this loop and a glob might match nothing, run `shopt -s nullglob` first so the loops don’t treat `*.mdc` as a literal filename.
|
|
118
|
+
|
|
123
119
|
Write the version marker:
|
|
124
120
|
|
|
125
121
|
```bash
|
|
@@ -161,13 +157,16 @@ Report to user:
|
|
|
161
157
|
|
|
162
158
|
## Step 9: Commit Changes
|
|
163
159
|
|
|
164
|
-
Commit the updated instruction files:
|
|
160
|
+
Commit the updated instruction files. A root `.gitignore` rule like `skills/` can **ignore** `.cursor/skills/`; if `git add .cursor/skills/` reports ignored paths, force-add:
|
|
165
161
|
|
|
166
162
|
```bash
|
|
167
|
-
git add .cursor/rules/ .cursor/commands/ .cursor
|
|
163
|
+
git add .cursor/rules/ .cursor/commands/ .cursor/.aether-instructions-version .cursor/.aether-instructions-manifest
|
|
164
|
+
git add -f .cursor/skills/
|
|
168
165
|
git commit -m "Update instructions to vX.Y.Z"
|
|
169
166
|
```
|
|
170
167
|
|
|
168
|
+
Use the repo’s commit convention if applicable (e.g. `[Agent commit] Update instructions to vX.Y.Z`).
|
|
169
|
+
|
|
171
170
|
> Changes committed. Your instructions are now up to date.
|
|
172
171
|
|
|
173
172
|
---
|
|
@@ -193,3 +192,11 @@ If you need to modify a package-provided file:
|
|
|
193
192
|
1. Edit it directly — your changes will persist until the next update
|
|
194
193
|
2. To preserve changes across updates, copy it to a new name first
|
|
195
194
|
3. Remove the original's entry from `.cursor/.aether-instructions-manifest` so it won't be deleted on update
|
|
195
|
+
|
|
196
|
+
### Blank line in manifest deleted `.cursor/`
|
|
197
|
+
|
|
198
|
+
Regenerate the manifest with Step 6 (echo-per-line form). Ensure Step 4 skips empty lines.
|
|
199
|
+
|
|
200
|
+
### `git add` says `.cursor/skills` is ignored
|
|
201
|
+
|
|
202
|
+
Use `git add -f .cursor/skills/` as in Step 9, or narrow `.gitignore` so `skills/` only ignores the project `skills/` folder (e.g. `/skills/` at repo root) instead of every `skills` path.
|
package/package.json
CHANGED
package/rules/aether.mdc
CHANGED
|
@@ -8,7 +8,7 @@ alwaysApply: true
|
|
|
8
8
|
|
|
9
9
|
**Structure:** `pages/` (file-based routing), `components/`, `composables/`, `server/api/`, `agents/` (Python ADK), `mcp-servers/` (Python FastMCP).
|
|
10
10
|
|
|
11
|
-
**Data:** The Query Server (Elemental API) is the primary data source -- entities, news, filings, sentiment, relationships, events. Use `useElementalClient()` from `@yottagraph-app/elemental-api/client`. Do NOT call external APIs for data the platform provides. Discovery-first: use `getSchema()` to discover entity types and properties at runtime. Skill docs
|
|
11
|
+
**Data:** The Query Server (Elemental API) is the primary data source -- entities, news, filings, sentiment, relationships, events. Use `useElementalClient()` from `@yottagraph-app/elemental-api/client`. Do NOT call external APIs for data the platform provides. Discovery-first: use `getSchema()` to discover entity types and properties at runtime. Skill docs: `skills/elemental-api/` (API endpoints) and `skills/data-model/` (Lovelace entity types, properties, relationships, YAML schemas per fetch source; `SKILL.md` first). Run `npm install` if those directories are empty. Lovelace MCP servers may also be configured (see `api` rule) but are optional — check your tool list before assuming they're available.
|
|
12
12
|
|
|
13
13
|
**Storage:** KV (Upstash Redis) for preferences and lightweight state via `Pref<T>` from `usePrefsStore()`. Supabase for relational data if connected (check `.env`).
|
|
14
14
|
|
package/rules/api.mdc
CHANGED
|
@@ -16,21 +16,16 @@ regularly — use the discovery-first pattern to find what's available.
|
|
|
16
16
|
|
|
17
17
|
## Skill Documentation
|
|
18
18
|
|
|
19
|
-
For
|
|
20
|
-
`skills/elemental-api
|
|
21
|
-
|
|
22
|
-
`npm install` (
|
|
23
|
-
`
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
- `
|
|
29
|
-
- `find.md` — expression language for searching by type, property, and relationships
|
|
30
|
-
- `schema.md` — entity types (flavors), properties (PIDs), and schema endpoints
|
|
31
|
-
- `relationships.md` — entity connections
|
|
32
|
-
- `events.md` — events involving entities
|
|
33
|
-
- `articles.md` — news mentions and article content
|
|
19
|
+
For endpoint reference, response shapes, and edge cases, **read the
|
|
20
|
+
elemental-api skill** in `skills/elemental-api/` (start with `SKILL.md` and
|
|
21
|
+
follow the skill’s own structure). Files are copied from
|
|
22
|
+
`@yottagraph-app/elemental-api-skill` during `npm install` (see
|
|
23
|
+
`skill-packages.json`); if the directory is empty, run `npm install` first —
|
|
24
|
+
**run it early** during initial exploration so the skill is available.
|
|
25
|
+
|
|
26
|
+
## Data model skill
|
|
27
|
+
|
|
28
|
+
For Lovelace **entity types, properties, relationships, and per-source schemas** (EDGAR, FRED, FDIC, etc.), read the **data-model skill** in `skills/data-model/`. Start with `SKILL.md`, then `overview.md` and the source-specific folders. These files are copied from `@yottagraph-app/data-model-skill` during `npm install` (same postinstall; both skills are listed in `skill-packages.json`).
|
|
34
29
|
|
|
35
30
|
## Client Usage
|
|
36
31
|
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: data-model
|
|
3
|
+
description: Understand the Lovelace data model - entity types, properties, relationships, and schemas from fetch sources like EDGAR, FRED, FDIC, and more.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Data Model Skill
|
|
7
|
+
|
|
8
|
+
This skill provides documentation for the Lovelace data model, describing the entity types, properties, and relationships that each fetch source contributes to the knowledge graph.
|
|
9
|
+
|
|
10
|
+
## When to Use This Skill
|
|
11
|
+
|
|
12
|
+
Use this skill when you need to:
|
|
13
|
+
- Understand what entity types exist (organizations, people, filings, etc.)
|
|
14
|
+
- Know what properties are available on entities
|
|
15
|
+
- Understand relationships between entity types
|
|
16
|
+
- Look up the schema definition for a data source
|
|
17
|
+
|
|
18
|
+
## Quick Start
|
|
19
|
+
|
|
20
|
+
1. **Identify the source**: Determine which data source is relevant (EDGAR for SEC filings, FRED for economic data, etc.)
|
|
21
|
+
2. **Read the DATA_DICTIONARY.md**: Get human-readable documentation of entities, properties, and relationships
|
|
22
|
+
3. **Check schema.yaml**: For machine-readable schema definitions including flavors, properties, and extraction rules
|
|
23
|
+
|
|
24
|
+
## Available Sources
|
|
25
|
+
|
|
26
|
+
| Source | Description | Files |
|
|
27
|
+
|--------|-------------|-------|
|
|
28
|
+
| [edgar](edgar/) | SEC EDGAR filings - 10-K, 10-Q, 8-K, ownership forms, institutional holdings | DATA_DICTIONARY.md, schema.yaml |
|
|
29
|
+
| [fdic](fdic/) | FDIC BankFind Suite - insured institutions, branch data, failures | DATA_DICTIONARY.md, schema.yaml |
|
|
30
|
+
| [fred](fred/) | Federal Reserve Economic Data - GDP, employment, inflation, rates | DATA_DICTIONARY.md, schema.yaml |
|
|
31
|
+
| [gleif](gleif/) | Global Legal Entity Identifier Foundation - LEI records, corporate ownership | DATA_DICTIONARY.md, schema.yaml |
|
|
32
|
+
| [newsdata](newsdata/) | News articles and press releases with LLM extraction | schema.yaml |
|
|
33
|
+
| [polymarket](polymarket/) | Polymarket prediction markets via Gamma API | DATA_DICTIONARY.md, schema.yaml |
|
|
34
|
+
| [sanctions](sanctions/) | OpenSanctions - OFAC, EU, UN, HM Treasury sanctions lists | DATA_DICTIONARY.md, schema.yaml |
|
|
35
|
+
| [stocks](stocks/) | US equity OHLCV price data from Alpha Vantage (NYSE, NASDAQ, AMEX) | DATA_DICTIONARY.md, schema.yaml |
|
|
36
|
+
| [wikipedia](wikipedia/) | People, locations, and organizations from English Wikipedia | DATA_DICTIONARY.md, schema.yaml |
|
|
37
|
+
|
|
38
|
+
## File Types
|
|
39
|
+
|
|
40
|
+
### DATA_DICTIONARY.md
|
|
41
|
+
|
|
42
|
+
Human-readable documentation containing:
|
|
43
|
+
- **Source Overview**: What the source is and how data flows through the pipeline
|
|
44
|
+
- **Entity Types**: What flavors (entity types) this source creates, with primary keys and resolver behavior
|
|
45
|
+
- **Properties**: Field definitions with examples and derivation notes
|
|
46
|
+
- **Relationships**: How entities connect to each other
|
|
47
|
+
|
|
48
|
+
### schema.yaml
|
|
49
|
+
|
|
50
|
+
Machine-readable schema definition containing:
|
|
51
|
+
- **flavors**: Entity type definitions with mergeability and strong ID properties
|
|
52
|
+
- **properties**: Field definitions with types, descriptions, and domain flavors
|
|
53
|
+
- **relationships**: Link definitions with domain and target flavors
|
|
54
|
+
- **extraction**: Whether the schema is open or closed for each category
|
|
55
|
+
|
|
56
|
+
## See Also
|
|
57
|
+
|
|
58
|
+
- [overview.md](overview.md) - Core concepts and how to navigate the documentation
|
|
@@ -0,0 +1,306 @@
|
|
|
1
|
+
# Data Dictionary: EDGAR
|
|
2
|
+
|
|
3
|
+
## Source Overview
|
|
4
|
+
|
|
5
|
+
SEC EDGAR (Electronic Data Gathering, Analysis, and Retrieval) filings via two pipelines:
|
|
6
|
+
- **Company facts / XBRL**: structured financial data from `companyfacts.zip` and `submissions.zip` bulk APIs
|
|
7
|
+
- **Form parsing**: regulatory forms (10-K, 10-Q, 20-F, 8-K, Form 3/4, SC 13D/G, 13F-HR, DEF 14A) parsed from HTML, XML, and SGML documents
|
|
8
|
+
|
|
9
|
+
Financial figures from XBRL may be computed fallbacks when a company does not file the authoritative tag. Not all companies report all fields.
|
|
10
|
+
|
|
11
|
+
| Pipeline | `Record.Source` |
|
|
12
|
+
|----------|----------------|
|
|
13
|
+
| Company facts / XBRL / submissions | `edgar` |
|
|
14
|
+
| 10-K annual report | `edgar_10k` |
|
|
15
|
+
| 10-Q quarterly report | `edgar_10q` |
|
|
16
|
+
| 20-F foreign issuer annual report | `edgar_20f` |
|
|
17
|
+
| 8-K current report | `edgar_8k` |
|
|
18
|
+
| Form 3 initial ownership | `edgar_3` |
|
|
19
|
+
| Form 4 ownership changes | `edgar_4` |
|
|
20
|
+
| SC 13D beneficial ownership (active) | `edgar_sc_13d` |
|
|
21
|
+
| SC 13G beneficial ownership (passive) | `edgar_sc_13g` |
|
|
22
|
+
| Co-registrant / subsidiary | `edgar_coregistrant` |
|
|
23
|
+
| 13F-HR institutional holdings | `edgar_13fhr` |
|
|
24
|
+
| DEF 14A proxy statement | `edgar_def_14a` |
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Entity Types
|
|
29
|
+
|
|
30
|
+
### `organization`
|
|
31
|
+
|
|
32
|
+
A public company, institutional investor, or corporate filer registered with the SEC.
|
|
33
|
+
|
|
34
|
+
- Primary key: `company_cik` (10-digit zero-padded CIK)
|
|
35
|
+
- Entity resolver: named entity. Strong ID = `company_cik`. Disambiguation via company name, city, state, SIC description, EIN. Ticker and former names as aliases.
|
|
36
|
+
- Financial metrics from XBRL are dual-homed on both the filing document and the organization, with a `filing_period` attribute (`FY`, `Q1`, `Q2`, `Q3`) to distinguish annual from quarterly values.
|
|
37
|
+
|
|
38
|
+
### SEC Filing Types (namespace: `sec`)
|
|
39
|
+
|
|
40
|
+
Each SEC form type is a separate flavor, namespaced under `sec`. All share the same strong ID (`accession_number`) and are not mergeable.
|
|
41
|
+
|
|
42
|
+
| Flavor | Display Name | Description |
|
|
43
|
+
|--------|-------------|-------------|
|
|
44
|
+
| `sec::10_k` | 10-K | Annual report |
|
|
45
|
+
| `sec::10_q` | 10-Q | Quarterly report |
|
|
46
|
+
| `sec::20_f` | 20-F | Foreign private issuer annual report |
|
|
47
|
+
| `sec::8_k` | 8-K | Current report (material events) |
|
|
48
|
+
| `sec::form_3` | Form 3 | Initial statement of beneficial ownership |
|
|
49
|
+
| `sec::form_4` | Form 4 | Statement of changes in beneficial ownership |
|
|
50
|
+
| `sec::sc_13d` | SC 13D | Beneficial ownership report (activist) |
|
|
51
|
+
| `sec::sc_13g` | SC 13G | Beneficial ownership report (passive) |
|
|
52
|
+
| `sec::13f_hr` | 13F-HR | Institutional investment manager holdings |
|
|
53
|
+
| `sec::def_14a` | DEF 14A | Definitive proxy statement |
|
|
54
|
+
|
|
55
|
+
Sub-records (8-K events, Form 4 transactions, Form 3 holdings) use their parent filing's flavor.
|
|
56
|
+
|
|
57
|
+
### `person`
|
|
58
|
+
|
|
59
|
+
A corporate insider (officer, director, or significant owner) from Form 3 or Form 4.
|
|
60
|
+
|
|
61
|
+
- Primary key: `person_cik` when available; otherwise named entity resolution.
|
|
62
|
+
- Entity resolver: named entity, mergeable. Strong ID = `person_cik` when present.
|
|
63
|
+
|
|
64
|
+
### `financial_instrument`
|
|
65
|
+
|
|
66
|
+
A tradeable security identified by CUSIP, from 13F-HR filings.
|
|
67
|
+
|
|
68
|
+
- Primary key: `cusip_number`
|
|
69
|
+
- Entity resolver: named entity. Strong ID = `cusip_number`.
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## Properties
|
|
74
|
+
|
|
75
|
+
### Organization Properties
|
|
76
|
+
|
|
77
|
+
#### Identity and Registration (source: `edgar`)
|
|
78
|
+
|
|
79
|
+
Data source: `https://data.sec.gov/submissions/CIK{cik}.json`
|
|
80
|
+
|
|
81
|
+
* `company_cik`
|
|
82
|
+
* Definition: SEC Central Index Key, 10-digit zero-padded.
|
|
83
|
+
* Examples: `"0000320193"` (Apple), `"0000789019"` (Microsoft)
|
|
84
|
+
* Derivation: `cik` field from submissions API, zero-padded.
|
|
85
|
+
|
|
86
|
+
* `ticker`
|
|
87
|
+
* Definition: Primary stock ticker symbol. Only set for listed companies.
|
|
88
|
+
* Examples: `"AAPL"`, `"MSFT"`, `"BRK-A"`
|
|
89
|
+
* Derivation: first entry from `tickers` array.
|
|
90
|
+
|
|
91
|
+
* `exchange`
|
|
92
|
+
* Definition: Securities exchange listing.
|
|
93
|
+
* Examples: `"Nasdaq"`, `"NYSE"`, `"OTC"`
|
|
94
|
+
* Derivation: first entry from `exchanges` array.
|
|
95
|
+
|
|
96
|
+
* `sic_code`
|
|
97
|
+
* Definition: Four-digit Standard Industrial Classification code.
|
|
98
|
+
* Examples: `"3571"`, `"6022"`
|
|
99
|
+
* Derivation: `sic` field.
|
|
100
|
+
|
|
101
|
+
* `sic_description`
|
|
102
|
+
* Definition: Human-readable SIC code description.
|
|
103
|
+
* Examples: `"Electronic Computers"`, `"State Commercial Banks"`
|
|
104
|
+
* Derivation: `sicDescription` field.
|
|
105
|
+
|
|
106
|
+
* `state_of_incorporation`
|
|
107
|
+
* Definition: Two-letter US state or country code of incorporation.
|
|
108
|
+
* Examples: `"CA"`, `"DE"`, `"NY"`
|
|
109
|
+
* Derivation: `stateOfIncorporation` field.
|
|
110
|
+
|
|
111
|
+
* `fiscal_year_end`
|
|
112
|
+
* Definition: Fiscal year end as MMDD string.
|
|
113
|
+
* Examples: `"0930"`, `"1231"`
|
|
114
|
+
* Derivation: `fiscalYearEnd` field.
|
|
115
|
+
|
|
116
|
+
* `ein`
|
|
117
|
+
* Definition: IRS Employer Identification Number (9 digits). Known bogus EINs filtered.
|
|
118
|
+
* Example: `"942404110"`
|
|
119
|
+
* Derivation: `ein` field, validated against bogus list.
|
|
120
|
+
|
|
121
|
+
* `business_phone`
|
|
122
|
+
* Definition: Primary business phone number.
|
|
123
|
+
* Example: `"4089961010"`
|
|
124
|
+
* Derivation: `addresses.business.phone` field.
|
|
125
|
+
|
|
126
|
+
* `filer_category`
|
|
127
|
+
* Definition: SEC filer size category.
|
|
128
|
+
* Examples: `"Large accelerated filer"`, `"Non-accelerated filer"`
|
|
129
|
+
* Derivation: `category` field.
|
|
130
|
+
|
|
131
|
+
* `physical_address`
|
|
132
|
+
* Definition: Business address as formatted string.
|
|
133
|
+
* Example: `"One Apple Park Way, Cupertino, CA 95014"`
|
|
134
|
+
* Derivation: `addresses.business` fields concatenated.
|
|
135
|
+
|
|
136
|
+
* `mailing_address`
|
|
137
|
+
* Definition: Mailing address as formatted string. May differ from physical address.
|
|
138
|
+
* Derivation: `addresses.mailing` fields concatenated.
|
|
139
|
+
|
|
140
|
+
* `former_name`
|
|
141
|
+
* Definition: Previous legal name. One value per entry in former names list.
|
|
142
|
+
* Example: `"Apple Computer, Inc."`
|
|
143
|
+
* Derivation: `formerNames` array. Also used as aliases for entity resolution.
|
|
144
|
+
|
|
145
|
+
#### Financial Data (source: `edgar_10k`, `edgar_10q`, `edgar_20f`)
|
|
146
|
+
|
|
147
|
+
Data source: iXBRL inline financial statements. All values USD unless noted.
|
|
148
|
+
The six core financial properties appear on both the **organization** and its **document** (filing) entity so that revenue/income/balance-sheet values are queryable on the company directly.
|
|
149
|
+
|
|
150
|
+
* `total_revenue` — Total revenues. Unit: USD. On: organization + document
|
|
151
|
+
* `net_income` — Net income or loss. Unit: USD. On: organization + document
|
|
152
|
+
* `total_assets` — Sum of all balance sheet assets. Unit: USD. On: organization + document
|
|
153
|
+
* `total_liabilities` — Sum of all liabilities. May be computed fallback. Unit: USD. On: organization + document
|
|
154
|
+
* `shareholders_equity` — Total stockholders' equity. Unit: USD. On: organization + document
|
|
155
|
+
* `shares_outstanding` — Common shares outstanding. Unit: shares. On: organization + document
|
|
156
|
+
* `eps_basic` — Basic earnings per share (10-K only). Unit: USD. On: document only
|
|
157
|
+
* `eps_diluted` — Diluted earnings per share (10-K only). Unit: USD. On: document only
|
|
158
|
+
* `entity_shell_company` — Whether the entity is a shell company. Values: `"true"`, `"false"`. On: organization only
|
|
159
|
+
* `reporting_currency` — ISO 4217 currency code (20-F only). Examples: `"JPY"`, `"EUR"`. On: document only
|
|
160
|
+
* `country_of_incorporation` — Country of incorporation (20-F only). Examples: `"Japan"`, `"Israel"`. On: document only
|
|
161
|
+
|
|
162
|
+
#### 8-K Corporate Events (source: `edgar_8k`)
|
|
163
|
+
|
|
164
|
+
Data source: 8-K current report filings. Properties on document sub-records.
|
|
165
|
+
|
|
166
|
+
* `form_8k_event` — Snake_case event identifier. Examples: `"material_agreement"`, `"officer_director_change"`
|
|
167
|
+
* `form_8k_item_code` — Raw SEC item number. Examples: `"1.01"`, `"5.02"`
|
|
168
|
+
* `category` — Sub-classification of Item 8.01 Other Events. Examples: `"cybersecurity_incident"`
|
|
169
|
+
|
|
170
|
+
#### Beneficial Ownership (source: `edgar_sc_13d`, `edgar_sc_13g`)
|
|
171
|
+
|
|
172
|
+
Data source: SC 13D/G XML filings. Properties on the filer organization.
|
|
173
|
+
|
|
174
|
+
* `owns_stake_in` — Relationship: filer → issuer whose shares are held
|
|
175
|
+
* `group_shares_declared` — Total shares owned by the filing group. Unit: shares
|
|
176
|
+
* `group_ownership_percent` — Percentage of share class owned by the group
|
|
177
|
+
* `is_group_filing` — Float: `1.0` = group filing, `0.0` = single filer
|
|
178
|
+
* `shares_declared` — Shares by individual group member. Unit: shares
|
|
179
|
+
* `ownership_percent` — Percentage by individual member or SC 13G filer
|
|
180
|
+
* `investment_purpose` — Stated purpose from Item 4. Examples: `"Investment"`, `"Strategic investment"`
|
|
181
|
+
* `is_passive_investor` — Always `1.0` on SC 13G records
|
|
182
|
+
* `aggregate_amount_beneficially_owned` — Total shares beneficially owned. Unit: shares
|
|
183
|
+
* `sole_voting_power` / `shared_voting_power` — Sole/shared voting authority. Unit: shares
|
|
184
|
+
* `sole_dispositive_power` / `shared_dispositive_power` — Sole/shared dispositive power. Unit: shares
|
|
185
|
+
* `type_of_reporting_person` — SEC entity code. Examples: `"CO"`, `"IN"`, `"IA"`
|
|
186
|
+
* `citizenship_or_state_of_organization` — Jurisdiction. Examples: `"Delaware"`, `"Cayman Islands"`
|
|
187
|
+
* `source_of_funds` — Acquisition fund source. Examples: `"WC"`, `"OO"`, `"BK"`
|
|
188
|
+
* `cusip_number` — CUSIP of the subject securities. Example: `"037833100"`
|
|
189
|
+
|
|
190
|
+
#### Subsidiary Relationships (source: `edgar_coregistrant`, `edgar_10k`)
|
|
191
|
+
|
|
192
|
+
Data source: co-registrant entries and EX-21 exhibit subsidiary tables.
|
|
193
|
+
|
|
194
|
+
* `has_subsidiary` — Relationship: parent → subsidiary
|
|
195
|
+
* `is_part_of` — Relationship: subsidiary → parent
|
|
196
|
+
* `citizenship_or_state_of_organization` — Subsidiary jurisdiction (EX-21 only)
|
|
197
|
+
|
|
198
|
+
### Document Properties
|
|
199
|
+
|
|
200
|
+
#### Filing Metadata (all pipelines)
|
|
201
|
+
|
|
202
|
+
* `accession_number` — SEC accession number. Example: `"0000320193-24-000123"`
|
|
203
|
+
* `form_type` — Normalized form type. Examples: `"10-K"`, `"SC 13D"`, `"4"`
|
|
204
|
+
* `filing_date` — Submission date (YYYY-MM-DD)
|
|
205
|
+
* `issued_by` — Relationship: filing → company the filing pertains to. For annual/quarterly/current reports, this is the filer. For ownership forms (Form 3/4, SC 13D/G), this is the issuer company whose securities are the subject of the filing.
|
|
206
|
+
* Derivation (ownership forms): XML `<issuerCik>` / `<issuerName>` elements, with fallback to SEC submissions API index metadata for Forms 3/4/5 or the SGML header `<SUBJECT-COMPANY>` section for SC 13D/G. Omitted when no reliable issuer data is available.
|
|
207
|
+
* `refers_to` — Relationship: filing → company the document is about. Same derivation as `issued_by` for ownership forms.
|
|
208
|
+
|
|
209
|
+
#### XBRL Financial Facts (source: `edgar`)
|
|
210
|
+
|
|
211
|
+
Data source: `https://data.sec.gov/api/xbrl/companyfacts/CIK{cik}.json`. ~75 XBRL properties tracked across US-GAAP, DEI, and IFRS taxonomies. Atom timestamp = XBRL period end date, not filing date. Computed fallbacks carry `"Computed from ..."` citation.
|
|
212
|
+
|
|
213
|
+
Key US-GAAP properties: `us_gaap:assets`, `us_gaap:liabilities`, `us_gaap:stockholders_equity`, `us_gaap:revenues`, `us_gaap:net_income_loss`, `us_gaap:operating_income_loss`, `us_gaap:operating_cash_flow`, `us_gaap:investing_cash_flow`, `us_gaap:financing_cash_flow`, `us_gaap:gross_profit`, `us_gaap:long_term_debt`, `us_gaap:common_shares_outstanding`, `us_gaap:goodwill`, `us_gaap:pp_and_e_net`, `us_gaap:operating_expenses`, `us_gaap:sg_and_a`, `us_gaap:research_and_development`, `us_gaap:income_tax_expense`, `us_gaap:eps_basic_xbrl`, `us_gaap:eps_diluted_xbrl`, `us_gaap:weighted_avg_shares_basic`, `us_gaap:weighted_avg_shares_diluted`, `us_gaap:share_repurchases`, `us_gaap:dividends_common`, `us_gaap:debt_repayments`, `us_gaap:acquisition_payments`, `us_gaap:comprehensive_income`, `us_gaap:asset_impairment`, `us_gaap:goodwill_impairment`, `us_gaap:number_of_segments`.
|
|
214
|
+
|
|
215
|
+
DEI properties: `dei:public_float`, `dei:common_shares_outstanding`, `dei:number_of_employees`.
|
|
216
|
+
|
|
217
|
+
IFRS properties (foreign private issuers): `ifrs:assets`, `ifrs:cash_and_cash_equivalents`, `ifrs:equity`, `ifrs:profit_loss`, `ifrs:operating_cash_flow`, `ifrs:current_assets`, `ifrs:current_liabilities`, `ifrs:liabilities`, `ifrs:revenue`.
|
|
218
|
+
|
|
219
|
+
Full mapping in `XBRLConceptMappings`.
|
|
220
|
+
|
|
221
|
+
#### SC 13D on Document (source: `edgar_sc_13d`)
|
|
222
|
+
|
|
223
|
+
* `filer` — Relationship: document → beneficial owner
|
|
224
|
+
* `group_member` — Relationship: document → group members (excluding primary filer)
|
|
225
|
+
* `group_shares_declared`, `group_ownership_percent`, `is_group_filing` — Filing-level ownership facts
|
|
226
|
+
|
|
227
|
+
### Person Properties
|
|
228
|
+
|
|
229
|
+
#### Insider Identity (source: `edgar_3`, `edgar_4`)
|
|
230
|
+
|
|
231
|
+
Data source: Form 3/4 XML.
|
|
232
|
+
|
|
233
|
+
* `person_cik` — SEC CIK for the reporting person (10-digit zero-padded). From `<rptOwnerCik>`.
|
|
234
|
+
* `job_title` — Officer title. Examples: `"Chief Executive Officer"`, `"Director"`. From `<officerTitle>`.
|
|
235
|
+
* `is_officer` — Relationship: person → organization (when `<isOfficer>1`)
|
|
236
|
+
* `is_director` — Relationship: person → organization (when `<isDirector>1`)
|
|
237
|
+
* `is_ten_percent_owner` — Relationship: person → organization (when `<isTenPercentOwner>1`)
|
|
238
|
+
* `works_at` — Relationship: person → issuer company
|
|
239
|
+
* `filing_reference` — Relationship: person → source Form 3/4 document
|
|
240
|
+
|
|
241
|
+
#### Form 4 Transactions (source: `edgar_4`)
|
|
242
|
+
|
|
243
|
+
Properties on document sub-records, one per transaction.
|
|
244
|
+
|
|
245
|
+
* `transaction_type` — Human-readable code description. Examples: `"Open market or private purchase"`, `"Grant, award, or other acquisition"`
|
|
246
|
+
* `transaction_date` — Transaction date (YYYY-MM-DD)
|
|
247
|
+
* `acquired_disposed_code` — `"A"` (acquired) or `"D"` (disposed)
|
|
248
|
+
* `security_type` — Security class. Examples: `"Common Stock"`, `"Stock Option (Right to Buy)"`
|
|
249
|
+
* `shares_transacted` — Shares transferred. Unit: shares
|
|
250
|
+
* `price_per_share` — Transaction price. Unit: USD
|
|
251
|
+
* `shares_owned_after` — Post-transaction shares. Unit: shares
|
|
252
|
+
* `exercise_price` — Derivative exercise price (USD, derivatives only)
|
|
253
|
+
* `direct_or_indirect_ownership` — `"Direct"` or `"Indirect"`
|
|
254
|
+
* `is_10b5_1_plan` — `"true"` when under a Rule 10b5-1 plan
|
|
255
|
+
|
|
256
|
+
#### DEF 14A Proxy (source: `edgar_def_14a`)
|
|
257
|
+
|
|
258
|
+
* `board_committee` — Committee membership. Examples: `"Audit"`, `"Compensation"`
|
|
259
|
+
* `is_independent` — Independence classification. Values: `"true"`, `"false"`
|
|
260
|
+
* `director_since` — Year. Example: `"2018"`
|
|
261
|
+
* `total_compensation` — Summary Compensation Table total. Unit: USD
|
|
262
|
+
* `board_size` — Number of directors (also on document)
|
|
263
|
+
* `compares_to` — Relationship: document → peer companies
|
|
264
|
+
* `auditor` — Accounting firm name. Example: `"Ernst & Young LLP"`
|
|
265
|
+
* `audit_fees` — Auditor fees. Unit: USD
|
|
266
|
+
|
|
267
|
+
### Financial Instrument Properties
|
|
268
|
+
|
|
269
|
+
#### 13F-HR Holdings (source: `edgar_13fhr`)
|
|
270
|
+
|
|
271
|
+
Data source: 13F-HR XML information table.
|
|
272
|
+
|
|
273
|
+
* `cusip_number` — CUSIP identifier. Example: `"037833100"`
|
|
274
|
+
* `security_type` — Security class. Examples: `"COM"`, `"SHS"`, `"COM CL A"`
|
|
275
|
+
* `position_value` — Market value (USD)
|
|
276
|
+
* `shares_held` — Shares or principal amount held
|
|
277
|
+
* `instrument_type` — `"SH"` (shares) or `"PRN"` (principal amount)
|
|
278
|
+
* `put_call` — `"PUT"`, `"CALL"`, or empty for equity
|
|
279
|
+
* `voting_authority_sole` / `voting_authority_shared` / `voting_authority_none` — Voting authority breakdown. Unit: shares
|
|
280
|
+
* `investment_discretion` — `"SOLE"`, `"DFND"`, or `"OTR"` (on organization)
|
|
281
|
+
* `holds_position` — Relationship: investment manager → financial instrument
|
|
282
|
+
|
|
283
|
+
---
|
|
284
|
+
|
|
285
|
+
## Entity Relationships
|
|
286
|
+
|
|
287
|
+
```
|
|
288
|
+
organization ──[filed]────────────────────→ document
|
|
289
|
+
organization ──[filing_reference]─────────→ document
|
|
290
|
+
organization ──[owns_stake_in]────────────→ organization (SC 13D/G)
|
|
291
|
+
organization ──[has_subsidiary]───────────→ organization (co-registrant, EX-21)
|
|
292
|
+
organization ──[is_part_of]───────────────→ organization (subsidiary → parent)
|
|
293
|
+
organization ──[holds_position]───────────→ financial_instrument (13F-HR)
|
|
294
|
+
document ──[issued_by]────────────────→ organization
|
|
295
|
+
document ──[refers_to]────────────────→ organization
|
|
296
|
+
document ──[filer]────────────────────→ organization (SC 13D/G)
|
|
297
|
+
document ──[group_member]─────────────→ organization (SC 13D)
|
|
298
|
+
document ──[compares_to]──────────────→ organization (DEF 14A)
|
|
299
|
+
document ──[filed]────────────────────→ document (sub-record → parent)
|
|
300
|
+
person ──[is_officer]───────────────→ organization
|
|
301
|
+
person ──[is_director]──────────────→ organization
|
|
302
|
+
person ──[is_ten_percent_owner]─────→ organization
|
|
303
|
+
person ──[works_at]─────────────────→ organization
|
|
304
|
+
person ──[filing_reference]─────────→ document
|
|
305
|
+
financial_instrument ──[filing_reference]─────────→ document
|
|
306
|
+
```
|