@yottagraph-app/data-model-skill 0.0.11 → 0.0.13
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 +1 -1
- package/skill/edgar/schema.yaml +58 -0
- package/skill/stocks/DATA_DICTIONARY.md +12 -12
- package/skill/stocks/schema.yaml +41 -1
package/package.json
CHANGED
package/skill/edgar/schema.yaml
CHANGED
|
@@ -1924,3 +1924,61 @@ attributes:
|
|
|
1924
1924
|
description: "Fiscal period: FY (annual), Q1, Q2, Q3 (quarterly)"
|
|
1925
1925
|
display_name: "Filing Period"
|
|
1926
1926
|
mergeability: not_mergeable
|
|
1927
|
+
|
|
1928
|
+
# ── holds_position relationship attributes (13F-HR) ──
|
|
1929
|
+
|
|
1930
|
+
- property: "holds_position"
|
|
1931
|
+
name: "position_value"
|
|
1932
|
+
type: string
|
|
1933
|
+
description: "Market value of the position in thousands of USD"
|
|
1934
|
+
display_name: "Position Value"
|
|
1935
|
+
mergeability: not_mergeable
|
|
1936
|
+
|
|
1937
|
+
- property: "holds_position"
|
|
1938
|
+
name: "shares_held"
|
|
1939
|
+
type: string
|
|
1940
|
+
description: "Number of shares or principal amount held"
|
|
1941
|
+
display_name: "Shares Held"
|
|
1942
|
+
mergeability: not_mergeable
|
|
1943
|
+
|
|
1944
|
+
- property: "holds_position"
|
|
1945
|
+
name: "instrument_type"
|
|
1946
|
+
type: string
|
|
1947
|
+
description: "Type of instrument: SH (shares) or PRN (principal amount)"
|
|
1948
|
+
display_name: "Instrument Type"
|
|
1949
|
+
mergeability: not_mergeable
|
|
1950
|
+
|
|
1951
|
+
- property: "holds_position"
|
|
1952
|
+
name: "put_call"
|
|
1953
|
+
type: string
|
|
1954
|
+
description: "Option type if applicable: PUT or CALL"
|
|
1955
|
+
display_name: "Put/Call"
|
|
1956
|
+
mergeability: not_mergeable
|
|
1957
|
+
|
|
1958
|
+
- property: "holds_position"
|
|
1959
|
+
name: "investment_discretion"
|
|
1960
|
+
type: string
|
|
1961
|
+
description: "Investment discretion: SOLE, SHARED, or DEFINED"
|
|
1962
|
+
display_name: "Investment Discretion"
|
|
1963
|
+
mergeability: not_mergeable
|
|
1964
|
+
|
|
1965
|
+
- property: "holds_position"
|
|
1966
|
+
name: "voting_authority_sole"
|
|
1967
|
+
type: string
|
|
1968
|
+
description: "Shares with sole voting authority"
|
|
1969
|
+
display_name: "Voting Authority (Sole)"
|
|
1970
|
+
mergeability: not_mergeable
|
|
1971
|
+
|
|
1972
|
+
- property: "holds_position"
|
|
1973
|
+
name: "voting_authority_shared"
|
|
1974
|
+
type: string
|
|
1975
|
+
description: "Shares with shared voting authority"
|
|
1976
|
+
display_name: "Voting Authority (Shared)"
|
|
1977
|
+
mergeability: not_mergeable
|
|
1978
|
+
|
|
1979
|
+
- property: "holds_position"
|
|
1980
|
+
name: "voting_authority_none"
|
|
1981
|
+
type: string
|
|
1982
|
+
description: "Shares with no voting authority"
|
|
1983
|
+
display_name: "Voting Authority (None)"
|
|
1984
|
+
mergeability: not_mergeable
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
## Source Overview
|
|
4
4
|
|
|
5
|
-
Alpha Vantage stock market data via the `TIME_SERIES_DAILY` REST
|
|
5
|
+
Alpha Vantage stock market data via the `TIME_SERIES_DAILY` and `TIME_SERIES_INTRADAY` REST APIs. Provides daily and 15-minute OHLCV (open, high, low, close, volume) candlestick data for US-listed equities on NYSE, NASDAQ, and AMEX exchanges.
|
|
6
6
|
|
|
7
|
-
Historical data
|
|
7
|
+
Historical data uses daily candles: `outputsize=full` (20+ years) for initial backfill, `outputsize=compact` (last 100 trading days) for incremental catch-ups. Current-day data uses intraday candles at 15-minute intervals (15-min delayed). The streamer automatically handles both: daily backfill when needed, plus intraday polling every 15 minutes.
|
|
8
8
|
|
|
9
9
|
Symbol universe: ~6,900 tickers (after filtering preferred stock symbols) sourced from the NASDAQ screener (static CSV, downloaded 2026-03-13). Symbols containing `^` (preferred shares) are excluded because Alpha Vantage does not support them.
|
|
10
10
|
|
|
@@ -12,7 +12,7 @@ Rate limit: 1,200 requests/minute (premium plan). Downloads run concurrently (10
|
|
|
12
12
|
|
|
13
13
|
| Pipeline | `Record.Source` |
|
|
14
14
|
|----------|----------------|
|
|
15
|
-
| Daily OHLCV | `stocks` |
|
|
15
|
+
| Daily + Intraday OHLCV | `stocks` |
|
|
16
16
|
|
|
17
17
|
---
|
|
18
18
|
|
|
@@ -68,32 +68,32 @@ A company or entity whose equity securities are publicly traded on a US exchange
|
|
|
68
68
|
* Examples: `"Computer Manufacturing"`, `"Biotechnology: Laboratory Analytical Instruments"`
|
|
69
69
|
* Derivation: `industry` field from the NASDAQ screener CSV. May be empty.
|
|
70
70
|
|
|
71
|
-
#### Price Data (per
|
|
71
|
+
#### Price Data (per candle)
|
|
72
72
|
|
|
73
|
-
Each record represents one
|
|
73
|
+
Each record represents one OHLCV candlestick for a single security. For daily candles the timestamp is the trading day's date; for intraday candles it is the interval's start time. All timestamps are Eastern time, converted to UTC.
|
|
74
74
|
|
|
75
75
|
* `open_price`
|
|
76
|
-
* Definition: Opening price of the trading
|
|
76
|
+
* Definition: Opening price of the trading interval. Unit: USD.
|
|
77
77
|
* Examples: `233.55`, `247.10`
|
|
78
|
-
* Derivation: `1. open` field from Alpha Vantage
|
|
78
|
+
* Derivation: `1. open` field from Alpha Vantage time series response, parsed as float.
|
|
79
79
|
|
|
80
80
|
* `high_price`
|
|
81
|
-
* Definition: Highest price reached during the trading
|
|
81
|
+
* Definition: Highest price reached during the trading interval. Unit: USD.
|
|
82
82
|
* Examples: `234.00`, `250.05`
|
|
83
83
|
* Derivation: `2. high` field from Alpha Vantage response, parsed as float.
|
|
84
84
|
|
|
85
85
|
* `low_price`
|
|
86
|
-
* Definition: Lowest price reached during the trading
|
|
86
|
+
* Definition: Lowest price reached during the trading interval. Unit: USD.
|
|
87
87
|
* Examples: `233.00`, `245.64`
|
|
88
88
|
* Derivation: `3. low` field from Alpha Vantage response, parsed as float.
|
|
89
89
|
|
|
90
90
|
* `close_price`
|
|
91
|
-
* Definition: Closing price of the trading
|
|
91
|
+
* Definition: Closing price of the trading interval. Unit: USD.
|
|
92
92
|
* Examples: `233.50`, `247.68`
|
|
93
93
|
* Derivation: `4. close` field from Alpha Vantage response, parsed as float.
|
|
94
94
|
|
|
95
95
|
* `trading_volume`
|
|
96
|
-
* Definition: Number of shares traded during the
|
|
96
|
+
* Definition: Number of shares traded during the interval. Unit: shares.
|
|
97
97
|
* Examples: `1858`, `5547724`
|
|
98
98
|
* Derivation: `5. volume` field from Alpha Vantage response, parsed as integer (stored as float per v2 convention).
|
|
99
99
|
|
|
@@ -118,5 +118,5 @@ organization ──[traded_as]──→ financial_instrument
|
|
|
118
118
|
- **Timestamps**: Alpha Vantage returns timestamps in US/Eastern time. All atom timestamps are converted to UTC before storage.
|
|
119
119
|
- **Adjusted prices**: The daily endpoint returns raw (as-traded) prices. Split/dividend-adjusted data is available via `TIME_SERIES_DAILY_ADJUSTED` (premium) but is not currently used.
|
|
120
120
|
- **Missing data**: Not all symbols have data for all dates. Candles only exist for days with trading activity.
|
|
121
|
-
- **Streaming model**: HandleStream runs as a
|
|
121
|
+
- **Streaming model**: HandleStream runs as a unified polling loop (default: every 15 minutes). First run downloads full daily history (`outputsize=full`) plus current-day intraday data. Subsequent runs download compact daily data once per day to catch yesterday's close, then poll intraday data every 15 minutes. Only candles newer than the checkpoint are atomized.
|
|
122
122
|
- **Preferred stock symbols**: Tickers containing `^` (e.g., `AHT^F`, `F^C`) are filtered out during symbol loading because Alpha Vantage returns empty responses for them.
|
package/skill/stocks/schema.yaml
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
# All elements are passive -- created by the atomizer from structured JSON
|
|
8
8
|
# fields, not by LLM extraction.
|
|
9
9
|
name: "stocks"
|
|
10
|
-
description: "US equity OHLCV price data from Alpha Vantage, covering NYSE, NASDAQ, and AMEX listed securities
|
|
10
|
+
description: "US equity OHLCV price data from Alpha Vantage, covering NYSE, NASDAQ, and AMEX listed securities. Daily candles for historical data, 15-minute intraday candles for current-day data."
|
|
11
11
|
|
|
12
12
|
extraction:
|
|
13
13
|
flavors: closed
|
|
@@ -129,3 +129,43 @@ relationships:
|
|
|
129
129
|
target_flavors: ["financial_instrument"]
|
|
130
130
|
examples: ["Apple Inc. traded as AAPL", "International Business Machines Corporation traded as IBM"]
|
|
131
131
|
passive: true
|
|
132
|
+
|
|
133
|
+
# Each price and volume atom carries a candle_interval attribute indicating
|
|
134
|
+
# the time period it covers. Only representative entries are listed; the
|
|
135
|
+
# attribute is added dynamically by the atomizer to all price/volume atoms.
|
|
136
|
+
|
|
137
|
+
attributes:
|
|
138
|
+
- property: "open_price"
|
|
139
|
+
name: "candle_interval"
|
|
140
|
+
type: string
|
|
141
|
+
description: "Time period covered by this candle: '1day' for daily end-of-day, '15min'/'5min'/'1min' for intraday"
|
|
142
|
+
display_name: "Candle Interval"
|
|
143
|
+
mergeability: not_mergeable
|
|
144
|
+
|
|
145
|
+
- property: "high_price"
|
|
146
|
+
name: "candle_interval"
|
|
147
|
+
type: string
|
|
148
|
+
description: "Time period covered by this candle: '1day' for daily end-of-day, '15min'/'5min'/'1min' for intraday"
|
|
149
|
+
display_name: "Candle Interval"
|
|
150
|
+
mergeability: not_mergeable
|
|
151
|
+
|
|
152
|
+
- property: "low_price"
|
|
153
|
+
name: "candle_interval"
|
|
154
|
+
type: string
|
|
155
|
+
description: "Time period covered by this candle: '1day' for daily end-of-day, '15min'/'5min'/'1min' for intraday"
|
|
156
|
+
display_name: "Candle Interval"
|
|
157
|
+
mergeability: not_mergeable
|
|
158
|
+
|
|
159
|
+
- property: "close_price"
|
|
160
|
+
name: "candle_interval"
|
|
161
|
+
type: string
|
|
162
|
+
description: "Time period covered by this candle: '1day' for daily end-of-day, '15min'/'5min'/'1min' for intraday"
|
|
163
|
+
display_name: "Candle Interval"
|
|
164
|
+
mergeability: not_mergeable
|
|
165
|
+
|
|
166
|
+
- property: "trading_volume"
|
|
167
|
+
name: "candle_interval"
|
|
168
|
+
type: string
|
|
169
|
+
description: "Time period covered by this candle: '1day' for daily end-of-day, '15min'/'5min'/'1min' for intraday"
|
|
170
|
+
display_name: "Candle Interval"
|
|
171
|
+
mergeability: not_mergeable
|