@yottagraph-app/data-model-skill 0.0.12 → 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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yottagraph-app/data-model-skill",
3
- "version": "0.0.12",
3
+ "version": "0.0.13",
4
4
  "description": "Data model skill documentation for AI agents - entity types, properties, and schemas from Lovelace fetch sources",
5
5
  "repository": {
6
6
  "type": "git",
@@ -2,9 +2,9 @@
2
2
 
3
3
  ## Source Overview
4
4
 
5
- Alpha Vantage stock market data via the `TIME_SERIES_DAILY` REST API. Provides daily OHLCV (open, high, low, close, volume) candlestick data for US-listed equities on NYSE, NASDAQ, and AMEX exchanges.
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 available via `outputsize=full` (20+ years). Recent data (last 100 trading days) available via `outputsize=compact`. The streamer uses `full` for initial backfill and `compact` for daily incremental updates.
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 daily candle)
71
+ #### Price Data (per candle)
72
72
 
73
- Each record represents one daily OHLCV candlestick for a single security. The atom timestamp is the trading day's date (Eastern time, converted to UTC).
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 day. Unit: USD.
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 `Time Series (Daily)` response, parsed as float.
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 day. Unit: USD.
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 day. Unit: USD.
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 day. Unit: USD.
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 day. Unit: shares.
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 continuous polling loop. First run downloads full history (`outputsize=full`). Subsequent runs download compact data (`outputsize=compact`, last 100 trading days) and atomize only candles newer than the checkpoint. Default poll interval: 24 hours.
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.
@@ -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 at 15-minute and daily intervals"
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