47 lines
1.6 KiB
Markdown
47 lines
1.6 KiB
Markdown
---
|
|
epic: 12
|
|
story: 12.4
|
|
title: "Built-in Plugin: Stock Prices"
|
|
status: draft
|
|
---
|
|
|
|
## Epic 12 — Plugin & Extension System
|
|
**Goal:** Let power users extend CalcPad.
|
|
|
|
### Story 12.4: Built-in Plugin: Stock Prices
|
|
|
|
As a finance-focused user,
|
|
I want to look up stock prices directly in CalcPad expressions,
|
|
So that I can incorporate real-time market data into my calculations.
|
|
|
|
**Acceptance Criteria:**
|
|
|
|
**Given** a user types `AAPL price` in a sheet
|
|
**When** the expression is evaluated
|
|
**Then** the current price of AAPL is fetched and displayed in the answer column
|
|
**And** the result includes the currency unit (e.g., `192.53 USD`)
|
|
|
|
**Given** a user types `AAPL price on 2024-06-15` in a sheet
|
|
**When** the expression is evaluated
|
|
**Then** the historical closing price for that date is fetched and displayed
|
|
**And** if the date falls on a non-trading day, the most recent prior trading day's close is used
|
|
|
|
**Given** a user is on the Free plan
|
|
**When** they query a stock price
|
|
**Then** the price is delayed by 15 minutes
|
|
**And** an indicator shows the data is delayed (e.g., `192.53 USD (15min delay)`)
|
|
|
|
**Given** a user is on the Pro plan
|
|
**When** they query a stock price
|
|
**Then** the price is real-time (or near real-time)
|
|
**And** no delay indicator is shown
|
|
|
|
**Given** a user types an invalid ticker symbol
|
|
**When** the expression is evaluated
|
|
**Then** an error message indicates the ticker was not found
|
|
**And** no partial or incorrect data is displayed
|
|
|
|
**Given** stock prices from major exchanges (NYSE, NASDAQ, LSE, TSE, etc.) are supported
|
|
**When** a user queries a valid ticker from any supported exchange
|
|
**Then** the correct price is returned with the appropriate currency
|