diff --git a/AGENTS.md b/AGENTS.md
index 7157893..8c06edb 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -38,6 +38,6 @@ app/repository/core_ro.py # Core 只读 + check_suitability(R-02)
scripts/core/reset.ps1 # 本地灌 Core 模拟库
```
-**当前分支:** `merger` · **测试基线:** `python -m pytest` → **827 passed**, 1 skipped · **Redis:** Docker `6380` · **前端:** `cd web && npm run build/test`
+**当前分支:** `merger` · **测试基线:** `python -m pytest` → **833 passed**, 1 skipped · **Redis:** Docker `6380` · **前端:** `cd web && npm run build/test`
技术选型硬阀门见 MEMORY 第 3、7 节。Cursor 以 `.cursor/rules/project-memory.mdc` 为准。
diff --git a/app/api/deps.py b/app/api/deps.py
index b82d0eb..f62ca9b 100644
--- a/app/api/deps.py
+++ b/app/api/deps.py
@@ -356,6 +356,18 @@ def require_staff_token(auth: AuthContext, risk_repo: RiskRepository) -> None:
deny(auth, "AUTH_403_SCOPE", risk_repo, message="staff token required", agent_type="platform")
+def assert_platform_product_read(auth: AuthContext, risk_repo: RiskRepository) -> None:
+ """产品货架/净值:客户、理财师、分析员、风控演示角色可读;纯 compliance 不可。"""
+ if auth.has_role(
+ "customer",
+ "advisor",
+ "analyst",
+ *PLATFORM_FULL_READ_ROLES,
+ ):
+ return
+ deny(auth, "AUTH_403_SCOPE", risk_repo, message="product catalog forbidden", agent_type="platform")
+
+
def assert_customer_access(
auth: AuthContext,
customer_id: str,
diff --git a/app/api/products.py b/app/api/products.py
index a7ec0c8..b8ad0ce 100644
--- a/app/api/products.py
+++ b/app/api/products.py
@@ -4,7 +4,7 @@ from __future__ import annotations
from fastapi import APIRouter, Depends, Query, Request
-from app.api.deps import AuthContext, get_platform_auth_context
+from app.api.deps import AuthContext, assert_platform_product_read, get_platform_auth_context
from app.repository.core_ro import CoreReadOnlyRepository
from app.service.platform import product_service
from app.utils.exceptions import ApiError
@@ -24,6 +24,9 @@ def list_products_api(
offset: int = Query(0, ge=0),
auth: AuthContext = Depends(get_platform_auth_context),
) -> dict:
+ from app.api.deps import RiskRepository as RR
+
+ assert_platform_product_read(auth, RR())
data = product_service.list_products(limit=limit, offset=offset)
return ok(data, _trace_id(request)).model_dump()
@@ -34,18 +37,42 @@ def get_product_api(
request: Request,
auth: AuthContext = Depends(get_platform_auth_context),
) -> dict:
+ from app.api.deps import RiskRepository as RR
+
+ assert_platform_product_read(auth, RR())
row = product_service.get_product(product_id)
if row is None:
raise ApiError(404, "NOT_FOUND", f"product not found: {product_id}")
return ok(row, _trace_id(request)).model_dump()
+@router.get("/{product_id}/nav/history")
+def get_product_nav_history_api(
+ product_id: str,
+ request: Request,
+ days: int = Query(365, ge=1, le=730),
+ auth: AuthContext = Depends(get_platform_auth_context),
+) -> dict:
+ from app.api.deps import RiskRepository as RR
+
+ repo = RR()
+ assert_platform_product_read(auth, repo)
+ core = CoreReadOnlyRepository()
+ data = product_service.get_nav_history(product_id, days=days, core_ro=core)
+ if data is None:
+ raise ApiError(404, "NOT_FOUND", f"product not found: {product_id}")
+ return ok(data, _trace_id(request)).model_dump()
+
+
@router.get("/{product_id}/nav")
def get_product_nav_api(
product_id: str,
request: Request,
auth: AuthContext = Depends(get_platform_auth_context),
) -> dict:
+ from app.api.deps import RiskRepository as RR
+
+ assert_platform_product_read(auth, RR())
core = CoreReadOnlyRepository()
if core.get_product(product_id) is None:
raise ApiError(404, "NOT_FOUND", f"product not found: {product_id}")
diff --git a/app/api/ready.py b/app/api/ready.py
index c604db2..452b13b 100644
--- a/app/api/ready.py
+++ b/app/api/ready.py
@@ -1,41 +1,45 @@
"""启动自检:Redis + 关键路由是否挂载(前端 Topbar 条用)。"""
from __future__ import annotations
-from fastapi import APIRouter, Request
+from fastapi import APIRouter, FastAPI, Request
from app.config.settings import settings
router = APIRouter(tags=["platform"])
-@router.get("/api/ready")
-def ready(request: Request):
- trace_id = getattr(request.state, "trace_id", "unknown")
+def build_ready_payload(app: FastAPI, trace_id: str) -> dict:
checks: dict[str, bool | str] = {}
try:
from app.service.risk import redis_gateway
gw = redis_gateway.get_gateway()
- if gw is None:
- checks["redis"] = False
- else:
- gw.exists("__ready_ping__")
- checks["redis"] = True
+ gw.ping()
+ checks["redis"] = True
except Exception as exc: # noqa: BLE001
checks["redis"] = False
checks["redis_error"] = str(exc)[:120]
- paths = set(request.app.openapi().get("paths", {}).keys())
+ paths = set(app.openapi().get("paths", {}).keys())
checks["chat_close_all"] = "/api/chat/sessions/close-all" in paths
checks["chat_sessions"] = "/api/chat/sessions" in paths
checks["analyst_chat"] = "/api/analyst/chat" in paths
critical = [checks["chat_close_all"], checks["chat_sessions"], checks["analyst_chat"]]
- ok = all(critical) and checks.get("redis") is True
+ routes_ok = all(critical)
+ redis_ok = checks.get("redis") is True
+ ok = routes_ok
return {
"ok": ok,
+ "degraded": routes_ok and not redis_ok,
"env": settings.app_env,
"trace_id": trace_id,
"checks": checks,
}
+
+
+@router.get("/api/ready")
+def ready(request: Request):
+ trace_id = getattr(request.state, "trace_id", "unknown")
+ return build_ready_payload(request.app, trace_id)
diff --git a/app/main.py b/app/main.py
index caaa290..78289b8 100644
--- a/app/main.py
+++ b/app/main.py
@@ -23,7 +23,7 @@ from app.api.risk import router as risk_router
from app.api.simulate import router as simulate_router
from app.api.staff import router as staff_router
from app.api.analyst import router as analyst_router
-from app.api.ready import router as ready_router
+from app.api.ready import build_ready_payload, router as ready_router
from app.api.visitor import router as visitor_router
from app.config.settings import settings
from app.middleware.trace import TraceMiddleware
@@ -97,6 +97,13 @@ app.include_router(analyst_router)
app.include_router(ready_router)
+@app.get("/api/ready", tags=["platform"], include_in_schema=True)
+def api_ready_probe(request: Request):
+ """与 ready_router 同逻辑;在 app 上再挂一份,避免旧进程/路由表遗漏时 404。"""
+ trace_id = getattr(request.state, "trace_id", "unknown")
+ return build_ready_payload(app, trace_id)
+
+
@app.middleware("http")
async def audit_middleware_entry(request: Request, call_next):
return await audit_middleware(request, call_next)
@@ -131,8 +138,10 @@ async def trace_middleware(request: Request, call_next):
@app.get("/health")
-def health(request: Request):
+def health(request: Request, probe: bool = False):
trace_id = getattr(request.state, "trace_id", "unknown")
+ if probe:
+ return build_ready_payload(app, trace_id)
return {"status": "ok", "env": settings.app_env, "trace_id": trace_id}
diff --git a/app/repository/core_ro.py b/app/repository/core_ro.py
index 023ab90..8e81643 100644
--- a/app/repository/core_ro.py
+++ b/app/repository/core_ro.py
@@ -496,6 +496,31 @@ class CoreReadOnlyRepository:
row = conn.execute(sql, {"pid": product_id}).mappings().first()
return dict(row) if row else None
+ def list_nav_history(
+ self, product_id: str, *, days: int = 365, end_date: date | None = None
+ ) -> list[dict[str, Any]]:
+ """按 nav_date 升序返回最近 days 条(含 end_date 当日若存在)。"""
+ end = end_date or date.today()
+ sql = text(
+ """
+ SELECT nav_date, nav, daily_chg_pct
+ FROM core_product_nav
+ WHERE product_id = :pid
+ AND nav_date <= :end
+ ORDER BY nav_date DESC
+ LIMIT :lim
+ """
+ )
+ with self._engine.connect() as conn:
+ rows = [
+ dict(r)
+ for r in conn.execute(
+ sql, {"pid": product_id, "end": end.isoformat(), "lim": days}
+ ).mappings()
+ ]
+ rows.reverse()
+ return rows
+
def list_active_customers(self) -> list[dict[str, Any]]:
"""全量在册客户(id + display_name;AML scan_all 全量扫描用,仅 SELECT)。"""
sql = text(
diff --git a/app/service/platform/product_service.py b/app/service/platform/product_service.py
index a54a6a0..bb9afc0 100644
--- a/app/service/platform/product_service.py
+++ b/app/service/platform/product_service.py
@@ -31,3 +31,28 @@ def get_latest_nav(
) -> dict[str, Any] | None:
repo = core_ro or CoreReadOnlyRepository()
return to_jsonable(repo.get_latest_nav(product_id))
+
+
+def get_nav_history(
+ product_id: str,
+ *,
+ days: int = 365,
+ core_ro: CoreReadOnlyRepository | None = None,
+) -> dict[str, Any] | None:
+ """返回产品历史净值序列;产品不存在时 None。"""
+ repo = core_ro or CoreReadOnlyRepository()
+ product = repo.get_product(product_id)
+ if product is None:
+ return None
+ items = [to_jsonable(r) for r in repo.list_nav_history(product_id, days=days)]
+ latest = repo.get_latest_nav(product_id)
+ return {
+ "product_id": product_id,
+ "product_name": product.get("product_name"),
+ "min_risk_code": product.get("min_risk_code"),
+ "items": items,
+ "days_requested": days,
+ "count": len(items),
+ "latest_nav_date": latest.get("nav_date") if latest else None,
+ "quote_mode": "simulated",
+ }
diff --git a/app/service/risk/redis_gateway.py b/app/service/risk/redis_gateway.py
index e55e1ae..338dfbe 100644
--- a/app/service/risk/redis_gateway.py
+++ b/app/service/risk/redis_gateway.py
@@ -40,6 +40,9 @@ class RedisGateway:
def exists(self, key: str) -> bool:
return bool(self._ensure().exists(key))
+ def ping(self) -> bool:
+ return bool(self._ensure().ping())
+
def get(self, key: str) -> str | None:
val = self._ensure().get(key)
if val is None:
diff --git a/docs/course/index.html b/docs/course/index.html
index 8cf7c84..763ab9c 100644
--- a/docs/course/index.html
+++ b/docs/course/index.html
@@ -137,6 +137,12 @@
总架构、数据流、分 Agent 亮点、Demo 动线、诚实边界、Q&A 锚点——与交互课同步。
docs/答辩 · 可打印提纲
+
+
+ 答辩 Demo 全流程 SOP
+ 给人看的逐步演示:6~25 分钟三档路线、四角色账号、每步亮点+口述句;链问数/风控分册。
+ Markdown · 答辩主脚本
+
架构治理 · ADR 与不变量
diff --git a/docs/course/jinrong-architecture-governance/index.html b/docs/course/jinrong-architecture-governance/index.html
index f038bce..b16fe07 100644
--- a/docs/course/jinrong-architecture-governance/index.html
+++ b/docs/course/jinrong-architecture-governance/index.html
@@ -533,7 +533,7 @@
鉴权 deps ∥ gateway
决策:一套 JWT;模块禁止 import gateway。Fitness:auth pytest。
平台 API
决策:与 Agent 重复时 platform 为准。Dashboard 每次打 MySQL(性能 trade-off)。
-
顾问 Agent
不变量:草稿不直发 C 端。骨架已通,enforcement 随功能增。
+
顾问 Agent
未完整接入:无独立深编排 · T-20 未做 · Chat 骨架在 · 答辩勿作主 Demo。
前端 web/
决策:四角色路由;TODO 路由守卫。Vitest 22;E2E 未进库。
diff --git a/docs/course/jinrong-architecture-governance/modules/08-ops.html b/docs/course/jinrong-architecture-governance/modules/08-ops.html
index 11207a1..1bd9239 100644
--- a/docs/course/jinrong-architecture-governance/modules/08-ops.html
+++ b/docs/course/jinrong-architecture-governance/modules/08-ops.html
@@ -12,7 +12,7 @@
鉴权 deps ∥ gateway
决策:一套 JWT;模块禁止 import gateway。Fitness:auth pytest。
平台 API
决策:与 Agent 重复时 platform 为准。Dashboard 每次打 MySQL(性能 trade-off)。
-
顾问 Agent
不变量:草稿不直发 C 端。骨架已通,enforcement 随功能增。
+
顾问 Agent
未完整接入:无独立深编排 · T-20 未做 · Chat 骨架在 · 答辩勿作主 Demo。
前端 web/
决策:四角色路由;TODO 路由守卫。Vitest 22;E2E 未进库。
diff --git a/docs/course/jinrong-overview/index.html b/docs/course/jinrong-overview/index.html
index b08893c..76e6265 100644
--- a/docs/course/jinrong-overview/index.html
+++ b/docs/course/jinrong-overview/index.html
@@ -673,8 +673,8 @@
模块 8 · 答辩动线
5~8 分钟 Demo
+ 必背铁律
- 对照 docs/答辩/答辩知识点清单.md 的滚动版:先讲清四角色不互调 LLM,再按动线演示,最后主动说边界。
- 基线 825 pytest · 22 Vitest · 分支 merger。
+ 对照 docs/答辩/DEMO-SOP-答辩全流程.md 与 答辩知识点清单.md:先讲清四角色不互调 LLM,再按动线演示,最后主动说边界。
+ 基线 827 pytest · 22 Vitest · 分支 merger。
@@ -710,7 +710,7 @@
🛡风控线
📊问数线
- 灌库:scripts/demo/prepare_all.ps1(含 Core reset + 问数模板种子)
+ 灌库:scripts/demo/prepare_all.ps1 · 逐步脚本:docs/答辩/DEMO-SOP-答辩全流程.md
@@ -758,6 +758,7 @@
诚实边界(主动说加分)
+ - 代理人 Agent 未完整接入:顾问 Chat 仅为 agent_service 骨架,T-20 未做 — 答辩勿作主 Demo
- L0 是模拟 Core,不是真银行托管库
- 分析对话页占位,真 NL2SQL 在问数工作台(D-09 多轮未做)
- 看板无钻取 · 行情 Phase B 草案未接
diff --git a/docs/course/jinrong-overview/modules/08-defense.html b/docs/course/jinrong-overview/modules/08-defense.html
index 8d5829f..fc7bf21 100644
--- a/docs/course/jinrong-overview/modules/08-defense.html
+++ b/docs/course/jinrong-overview/modules/08-defense.html
@@ -3,8 +3,8 @@
模块 8 · 答辩动线
5~8 分钟 Demo
+ 必背铁律
- 对照 docs/答辩/答辩知识点清单.md 的滚动版:先讲清四角色不互调 LLM,再按动线演示,最后主动说边界。
- 基线 825 pytest · 19 Vitest · 分支 merger。
+ 对照 docs/答辩/DEMO-SOP-答辩全流程.md 与 答辩知识点清单.md:先讲清四角色不互调 LLM,再按动线演示,最后主动说边界。
+ 基线 827 pytest · 22 Vitest · 分支 merger。
@@ -40,7 +40,7 @@
🛡风控线
📊问数线
- 灌库:scripts/demo/prepare_all.ps1(含 Core reset + 问数模板种子)
+ 灌库:scripts/demo/prepare_all.ps1 · 逐步脚本:docs/答辩/DEMO-SOP-答辩全流程.md
@@ -88,6 +88,7 @@
诚实边界(主动说加分)
+ - 代理人 Agent 未完整接入:顾问 Chat 仅为 agent_service 骨架,T-20 未做 — 答辩勿作主 Demo
- L0 是模拟 Core,不是真银行托管库
- 分析对话页占位,真 NL2SQL 在问数工作台(D-09 多轮未做)
- 看板无钻取 · 行情 Phase B 草案未接
diff --git a/docs/memory/FLOW.md b/docs/memory/FLOW.md
index 9c41fea..1ea750b 100644
--- a/docs/memory/FLOW.md
+++ b/docs/memory/FLOW.md
@@ -19,7 +19,7 @@
③ Core 模拟库(L0)
.\scripts\core\reset.ps1
- → 创建 jinrong_core + 28 客户 / 12 产品 / 持仓交易种子
+ → 创建 jinrong_core + 客户/产品/持仓/交易 + **07 净值历史(14×365 日)**
(风控演示:`.\scripts\demo\prepare_all.ps1` 或 `prepare_risk_demo.sql` · PRD §10.2)
④b 数据分析问数(可选)
@@ -46,7 +46,7 @@
GET http://127.0.0.1:8000/api/ready → Redis + 路由自检(前端 DevReadyBanner)
cd web && npm run dev → 5173 代理 8000
python -m pytest → 825 passed 1 skipped
- 问数答辩前:见 `docs/答辩/DEMO-SOP-问数.md`(`scripts/dev/seed_analyst.ps1` · battery 可选)
+ 问数答辩前:见 `docs/答辩/DEMO-SOP-答辩全流程.md` · 问数分册 `DEMO-SOP-问数.md`(`scripts/dev/seed_analyst.ps1` · battery 可选)
RBAC 联调账号:scripts/dev/rbac-seed-reference.md
```
@@ -148,7 +148,7 @@ admin/knowledge 上传 → document_parser → embedding_tool(Ollama bge-m3)
## 6. 关键数据约定
- Agent 库 SQL:`docs/项目框架设计/表设计/01-mysql-共用底座.sql`、`02-mysql-agent专用.sql`
-- Core 模拟:`scripts/core/01-ddl.sql` · 说明 `docs/项目框架设计/Core模拟底座/01-表结构与种子说明.md`
+- Core 模拟:`scripts/core/01-ddl.sql` · **`07-seed-nav-history.sql`** · 说明 `docs/项目框架设计/Core模拟底座/01-表结构与种子说明.md`
- Redis Key:`docs/项目框架设计/表设计/02-redis-keys.md`
- Milvus:`kb_product_rules`、`kb_business_ops`;向量 **1024** 维
- 禁止:Agent 覆盖 L0 正式 C1~C5
diff --git a/docs/memory/FRAMEWORK.md b/docs/memory/FRAMEWORK.md
index 14a1211..ad17df0 100644
--- a/docs/memory/FRAMEWORK.md
+++ b/docs/memory/FRAMEWORK.md
@@ -35,9 +35,9 @@
| 模块 | 职责 | 依赖 | 代码状态 |
| --- | --- | --- | --- |
| Agent Gateway / Auth SDK | JWT、RBAC、归属校验 | Redis、MySQL customer_advisor_rel | **已实现(T-01 + AL-09)**:模块 `service/auth_service.py` + `api/deps.py`;宿主 `gateway/` 四件套并存;`/api/auth/login` 统一走 `issue_dev_token`;S2 接缝 `auth_adapter.module_auth_from_host` |
-| 客户财富 Agent | L1 画像、事实查询、阈值提醒 | Core RO、Milvus 产品库 | **S2 + Wave3(2026-09-11)**:Chat SSE · 1B/R1 · C-04/C-05/C-11 · L1 懒读 · **825 pytest**
-| 代理人助手 Agent | L2 画像、RAG、草稿 | L1 只读、Milvus | 空壳 service(chat 骨架已通) |
-| 数据分析 Agent | NL→SQL→解读 | Core RO、画像只读 | **S3+P2+D-06+D-09 子集 + N-03/N-07(2026-09-11)**:interpret 拆分 · sql_guard **Q17** · sample/escalate · **825 pytest** |
+| 客户财富 Agent | L1 画像、事实查询、阈值提醒 | Core RO、Milvus 产品库 | **S2 + Wave3(2026-09-11)**:Chat SSE · 1B/R1 · C-04/C-05/C-11 · L1 懒读 · **833 pytest**
+| 代理人助手 Agent | L2 画像、RAG、草稿 | L1 只读、Milvus | **Chat 骨架已通(agent_service/advisor)· 产品未完整接入:无独立深编排 · T-20 / A-01~A-05 未做** |
+| 数据分析 Agent | NL→SQL→解读 | Core RO、画像只读 | **S3+P2+D-06+D-09 子集 + N-03/N-07(2026-09-11)**:interpret 拆分 · sql_guard **Q17** · sample/escalate · **833 pytest** |
| 风控监测 Agent | 预警、L3、R-02 适当性 | 交易事件、AML 名单 | **已实现 B1~B9b + C1~C6(FR-1~10)** + **TEST-RISK-001 修复**;**AL-09 已并入 `merger` 分支** |
| Core 只读层 | L0 事实查询 | `jinrong_core` | **已实现 + 已接对话 Tool(T-04)**:core_ro 经 app/tool/core_tools.py 三只读 Tool(L0/持仓/流水)进 chat;风控扩展查询照旧 |
| 共用底座 | 会话、审计、输入防护 | MySQL 11 表 + Redis | **已接入(2026-09-07)**:会话(T-06 session_repository + memory_service 窗口)、审计中间件(T-02 http_access + input_guard_log 双写)、agent_tool_call Tool 留痕(T-04)、输入防护(T-03 input_guard:注入词表纯函数检测 + oversize + Redis 固定窗口限流,chat 链路 限流→注入/超长→归属) |
diff --git a/docs/memory/ITERATION.md b/docs/memory/ITERATION.md
index c90c1c9..4d1ce85 100644
--- a/docs/memory/ITERATION.md
+++ b/docs/memory/ITERATION.md
@@ -33,4 +33,5 @@
| 2026-09-11 | **TEST-RISK-001 修复**:`RiskListAccess`/`ThresholdWriteAccess` · service_risk 只读 GET · compliance 进 risk 矩阵 · STAFF-31001 · handled 筛选 · 台账 stats · 前端标签/409/结构化 · SSE ping · **825 pytest** | 沙盘 TEST-LOG v1.1 | `repo_access` · `risk.py` · `deps.py` · web risk pages |
| 2026-09-11 | **问数 N-03/N-07 + 自检**:`GET .../sample` · `POST /escalate` · `GET /api/ready` · DevReadyBanner | Superpowers 批次 | `analyst.py` · `ready.py` · web |
| 2026-09-11 | **TEST-AN-001 RBAC 修复**:sql_guard A/B · `_audit_terminal` · TEST-LOG v1.2 · **820 pytest** | 沙盘测试文档 | `sql_guard` · `analyst_agent` |
+| 2026-09-11 | **行情历史种子入库**:`07-seed-nav-history.sql`(5096 行)· `nav/history` API + RBAC · 前端 `/app/market/:productId` · **833 pytest** | 用户要近一年趋势 Demo | `scripts/core` · `products.py` · `core_ro` · web · MEMORY |
| 2026-09-10 | **TODO 日终清单 + 优化 TODO 补全**:硬伤盘点落账 · 2026-09-10 已完成/进行中/将要做 | 用户要求 | TODO · ITERATION |
diff --git a/docs/memory/MEMORY.md b/docs/memory/MEMORY.md
index 4e773bd..33ef53f 100644
--- a/docs/memory/MEMORY.md
+++ b/docs/memory/MEMORY.md
@@ -9,7 +9,7 @@
**项目是什么:** 金融四 Agent(客户财富 / 代理人 / 数据分析 / 风控)共用数据层与合规底座;**不**互调 LLM,跨 Agent 走 L1/L2/L3 画像与预警表。
-**当前进度:** 需求与表设计已定 · **风控 TEST-RISK-001(含 F12)** · **827 pytest** · **22 Vitest** · **Redis @ 6380** · **`merger` 未 commit**
+**当前进度:** 需求与表设计已定 · **风控 TEST-RISK-001(含 F12)** · **833 pytest** · **22 Vitest** · **Redis @ 6380** · **`merger` 未 commit** · **⚠️ 代理人 Agent 未完整接入**(顾问 Chat 骨架在,T-20/A 线未做,答辩勿作主 Demo)
**工作分支:** 团队开发在 **`merger`**;历史 `risk-control-agent` 交付冻结。
@@ -23,7 +23,7 @@
| `app/gateway/` | **宿主 Wave 0(并存)** | jwt_service / auth_deps / rbac / ownership;模块 API 走 `deps.py`,禁止模块 import gateway |
| `app/api/risk.py` `simulate.py` `deps.py` | **已实现** | 风控 4 API + 模拟网关 · **compliance/service_risk 矩阵(F2/F3)** · 台账 **`stats` 待审计数(F7)** |
| `app/api/chat.py` `audit_middleware.py` | **已实现** | POST /api/chat · **POST /api/chat/stream(customer 分流 → prepare_customer_stream)** · visitor · sessions 三端点 |
-| `app/api/customers.py` `products.py` `advisors.py` `staff.py` `compliance.py` | **已实现(v0.1)** | 代销平台 REST;`get_platform_auth_context`(无 X-Agent-Type);Service 层 `app/service/platform/` |
+| `app/api/customers.py` `products.py` `advisors.py` `staff.py` `compliance.py` | **已实现(v0.1 + 行情历史)** | 代销平台 REST;`get_platform_auth_context`;**`GET /api/products/{id}/nav/history`**(RBAC · compliance 拒) |
| `app/api/analyst.py` `analyst_auth_adapter.py` | **已实现(S3+D-06+D-09 子集 + N-03/N-07)** | 问数 `POST /api/analyst/chat`(默认 `interpret=false`)· **`POST /api/analyst/interpret`** · **`GET /query/{trace_id}/sample`** · **`POST /escalate`** · dashboard/assets/metrics |
| `app/api/ready.py` | **已实现(2026-09-11)** | `GET /api/ready`:Redis + 关键路由自检;前端 `DevReadyBanner` |
| `app/service/analyst_agent.py` `template_service.py` `cache_service.py` | **已实现(S3+D-06)** | NL2SQL 编排 · guardrail · **结果缓存(表世代键)+ 写侧 bump**(`analyst_cache_invalidate`)· **模板填参**(published `analytics_query_template`) |
@@ -37,7 +37,7 @@
| `app/service/tool_service.py` `app/tool/core_tools.py` `service/risk/chat_tools.py` | **已实现(T-04/C1)** | 对话 Tool 编排(统一注册表 get_registered_tool:core+risk / 归属校验 / agent_tool_call 落库)+ Core RO 三只读 Tool(L0/持仓/流水)+ C1 风控四只读 Tool(alert_query/customer_context/suitability_check/aml_lookup,RISK_TOOL_REGISTRY) |
| `app/repository/session_repository.py` | **已实现(T-06/T-04 + 前端接入 B/C)** | agent_session / agent_message / agent_tool_call 读写;**方案 B 增 `list_sessions`(分页+total)/ `list_messages_page`(seq 升序分页,勿与 LLM 窗口的 `list_messages` 混用)/ `close_session`(条件更新防并发)**;**方案 C 增 `insert_turn`(user+assistant 同事务落库 + 事务内取 seq,修评审 P0/P1)** |
| `app/gateway/` | **已实现** | 模拟交易网关(仅 gateway_repository 可 INSERT core_trade,B5) |
-| `app/repository/core_ro.py` | **已实现** | Core 只读 SELECT(含风控扩展 sum_trades_on_date / list_trades_range / list_active_customers);**阶段一吸收 main:check_suitability(C×R 矩阵判定,CURDATE() 改 Python 端 `_is_expired`)/ list_products_for_customer / list_holdings 合并(limit=500+新列)/ list_trades / get_customer_l0 扩列版** |
+| `app/repository/core_ro.py` | **已实现** | Core 只读 SELECT(含风控扩展 sum_trades_on_date / list_trades_range / list_active_customers);**`list_nav_history(product_id, days)`** · check_suitability / list_products_for_customer / list_holdings / list_trades / get_customer_l0 |
| `app/repository/risk_repository.py` | **已实现** | risk_alert / … · **`list_alerts` 须 `RiskListAccess`(F1)** · **`status=handled` 聚合筛选** · `count_pending_stats` |
| `app/repository/repo_access.py` | **已实现(2026-09-11)** | `RiskListAccess` / `ThresholdWriteAccess` 仓储调用凭证 |
| `app/repository/threshold_repository.py` | **已实现** | 阈值配置 · **`upsert_portfolio` 须 `ThresholdWriteAccess`** |
@@ -47,11 +47,11 @@
| `app/service/customer_service.py` `visitor_service.py` | **已实现(S2 + Wave3 + 问候快路由)** | 客服 14 节点 · **C-04 阈值** · **C-05 nav_query** · **C-11 匹配说明** · **「你好」等问候关键词 → chit_chat;LLM 失败闲聊降级 `CHITCHAT_DEGRADED_TEXT`** · 游客 9 节点;共用 `sanitize_postprocess`(1B);RAG **fin_* 三库** |
| `app/service/threshold_service.py` | **已实现(C-04)** | L1 `threshold_pref_summary` → `customer_threshold_config`;持仓查询加权盈亏 vs 阈值 → `customer_notify_log` |
| `app/utils/sanitize_postprocess.py` | **已实现(1B 共用)** | 数据查询 intent(含 nav_query)违禁 → 回退 fact_text;RAG/闲聊 → COMPLIANCE_REJECT;均不自动 transfer |
-| `scripts/core/*.sql` + `reset.ps1` | **已实现** | Core 模拟库 DDL + 种子 |
+| `scripts/core/*.sql` + `reset.ps1` | **已实现** | Core 模拟库 DDL + 种子 · **`07-seed-nav-history.sql`(14 产品 ×364 日)** · 再生 `seed_nav_history.py --export-sql` |
| `scripts/agent/` `scripts/demo/` `scripts/dev/` | **已实现** | **`prepare_all.ps1`** · **`push_threshold_alerts.py`** · **`seed_analyst.ps1`** · **`sandbox_risk_test.py`** · `run_query_battery.py`(**不入库**) |
| `scripts/sync/*.py` | **已实现** | 归属同步 + Neo4j 全图 |
-| `tests/` | **已实现** | **827 用例** 1 skipped |
-| `docs/答辩/` | **答辩提纲 + Demo SOP** | `答辩知识点清单.md` · **`DEMO-SOP-问数.md`**(套餐 ①)· spec `docs/superpowers/specs/2026-09-11-defense-stable-package.md` |
+| `tests/` | **已实现** | **833 用例** 1 skipped |
+| `docs/答辩/` | **答辩提纲 + Demo SOP** | `答辩知识点清单.md` · **`DEMO-SOP-答辩全流程.md`** · `DEMO-SOP-问数.md` · spec `docs/superpowers/specs/2026-09-11-defense-stable-package.md` |
| `docs/course/` | **交互课程集** | 导览中心 + 总览 **8 模块** + 问数 **5 模块**(D-06)+ 风控深潜 **7 模块** · 与答辩清单同步 |
| `docs/PRD/PRD-风控监测Agent.md` | **已冻结(v1.1)** | 风控 PRD v1.0 + v1.1 追加 FR-8/9/10(§4A)+ 规则表附录 |
| `docs/项目框架设计/实现方案-风控追加需求v1.1-C4C6.md` | **已定稿** | C4~C6 编码依据(经独立 AI 评审修订闭环);分支/进度速览另见项目根 `交接文档.md` |
@@ -62,21 +62,21 @@
| `docs/项目框架设计/接口契约-代销平台API-v0.2-行情扩展草案.md` | **草案(2026-09-09)** | `nav-snapshot` · `sync_market_nav` · 前端产品行情 Phase B |
| `docs/项目框架设计/表设计/` | 已定 | Agent 共用 11 表 + agent 专用 SQL |
| `docs/项目框架设计/Core模拟底座/` | 已定 | 无真实 Core 时的 L0 方案 |
-| `web/` | **P0 Demo 齐备 + E2E/Chat 缺陷已修(2026-09-10)** | 四角色 Dashboard/Chat · **`ChatPanel` 流式续聊 `session_id` + 刷新恢复** · 会话侧栏分页 · 固定面板高度 · 清单见 `docs/整体测试/前端整体测试交接.md` |
+| `web/` | **P0 Demo 齐备 + 行情详情(2026-09-11)** | 四角色 Dashboard/Chat · **`/app/market/:productId` 近一年净值曲线** · ChatPanel 流式 · 清单见 `docs/整体测试/前端整体测试交接.md` |
**本地 bootstrap(首次):** 完整步骤与前置说明见 `FLOW.md` §0(权威),速览:
```text
1. cp .env.example .env → 填 MYSQL_PASSWORD、NEO4J_PASSWORD、DEEPSEEK_API_KEY
2. pip install -r requirements.txt
-3. .\scripts\core\reset.ps1 # 建 jinrong_core 模拟库 + 种子
+3. .\scripts\core\reset.ps1 # 建 jinrong_core(含 07 净值历史 ~365 日/产品)
4. mysql … < 01-mysql-共用底座.sql # jinrong_agent 共用 11 表
mysql … < 02-mysql-agent专用.sql # 风控四表 + risk_aml_list
5. mysql … < scripts/agent/seed-aml-list.sql # AML 名单(Windows 乱码:`python scripts/dev/fix_utf8_seed.py`)
(风控演示:`.\scripts\demo\prepare_all.ps1` 或 `prepare_risk_demo.sql` · PRD §10.2)
6. python scripts/sync/sync_advisor_rel.py && python scripts/sync/sync_neo4j.py
7. `docker compose up -d redis`(或 `.\scripts\dev\start-redis.ps1`)→ **REDIS_URL=redis://127.0.0.1:6380/0**(Docker Redis 7;避开本机 Windows Redis 占 6379)
-8. uvicorn … · python -m pytest(**827 绿**);问数答辩:`docs/答辩/DEMO-SOP-问数.md` · 种子 **`scripts/dev/seed_analyst.ps1`**
+8. uvicorn … · python -m pytest(**833 绿**);问数答辩:`docs/答辩/DEMO-SOP-问数.md` · 种子 **`scripts/dev/seed_analyst.ps1`**
```
**AL-09 合并后架构(一句话):** 宿主 `gateway/` + 模块 `deps.py` **双栈并存**;对外登录/token **统一**;chat/risk 均走模块鉴权;接缝 S2 用 `auth_adapter`。
@@ -175,7 +175,7 @@ audit_log 等审计表(只 INSERT)
| **C-07** | 风评查询走 Core;**「重新测评/重做风评」** → 引导 App/网点(Agent 内不做问卷) | `customer_prompts._RISK_KW` |
| **C-08** | 仅 L1 槽位 `investment.allocation_target`(13 槽);**无自动偏离检测/调仓** | `profile_slots.py` |
| **问数 vs 分析对话** | 问数页 + **`/interpret`** · **N-03 抽样溯源** · **N-07 escalate/失败转人工** · 分析对话 URL **重定向问数** | spec `2026-09-11-query-interpret-split-design.md` |
-| **客户「趋势/走势」** | **客户 Chat**:仅 **C-05 最新净值快照** + 持仓/流水;**走势预测/实时盘口 reject**;**无 Chat 内净值历史曲线 Tool** · **统计类趋势**(近 N 日笔数、结构描述)→ **问数** `POST /api/analyst/chat` · **`self` 域**(拍板 `数据分析Agent-合并说明.md` §9.6 · 尾注「AI 分析有风险」)· **D-12 看板钻取未做** | 问数 ≠ 客户助手 · Phase B 行情 sync 未做 |
+| **客户「趋势/走势」** | **客户 Chat**:仅 **C-05 最新净值快照** + 持仓/流水;**走势预测/实时盘口 reject** · **平台「产品行情」**:列表 + **`GET nav/history` 详情折线**(customer/advisor/analyst/风控可读;compliance 无菜单/API 403)· **无 Chat 内历史曲线 Tool** · 统计类趋势 → **问数** `self` 域 · **D-12 看板钻取未做** | Phase B 外部 sync 未做 |
| **L0 优先** | 抽槽与 L0 撞车**永远听 L0**;L1 只 enrich 措辞 | `profile_slots` D7 |
------
@@ -190,7 +190,7 @@ Core 模拟:scripts/core/reset.ps1 · 文档 docs/项目框架设计/Core模
依赖:requirements.txt(LangGraph + langchain-core/openai + FastAPI + SQLAlchemy)
启动:uvicorn app.main:app --reload → GET /health · **GET /api/ready**(环境自检)
Redis:`docker compose up -d redis` · `REDIS_URL=redis://127.0.0.1:6380/0` · `scripts/dev/start-redis.ps1`
-测试:python -m pytest(**827 绿**;集成需本机 MySQL + AML + 风控演示数据)
+测试:python -m pytest(**833 绿**;集成需本机 MySQL + AML + 风控演示数据)
风控沙盘:`python scripts/dev/sandbox_risk_test.py`(TEST-RISK-001)
前端:cd web && npm run dev · npm run build/test/lint(**22** Vitest)· 四角色 Demo 见 `docs/frontend/FRONTEND-HANDOFF.md` §8
问数模板:mysql … < scripts/agent/seed-analyst-query-templates.sql
@@ -242,6 +242,6 @@ RBAC 联调账号:scripts/dev/rbac-seed-reference.md
2. 改动属于 api / service / tool / repository 哪一层?
3. 是否需 customer_id 归属与 JWT RBAC?
4. Core 是模拟库只读还是 agent 库读写?
-5. 如何验证?(`python -m pytest` **827 绿** · Redis **6380** · `/api/ready` · 问数 Demo 见 `docs/答辩/DEMO-SOP-问数.md`)
+5. 如何验证?(`python -m pytest` **833 绿** · Redis **6380** · `/api/ready` · 行情详情 `/app/market/PROD-000001` · 问数 Demo 见 `docs/答辩/DEMO-SOP-问数.md`)
大任务:FRAMEWORK/FLOW 与实现状态不符时先更新 memory 再编码(用户确认跳过除外)。
diff --git a/docs/memory/REQUIREMENTS.md b/docs/memory/REQUIREMENTS.md
index 445962f..b731acd 100644
--- a/docs/memory/REQUIREMENTS.md
+++ b/docs/memory/REQUIREMENTS.md
@@ -60,7 +60,7 @@
| C-02 | 产品规则咨询 | fin_product RAG + 免责 | **已实现** · Wave1~2 | — |
| C-03 | 政策/FAQ | fin_policy / fin_faq RAG | **已实现** · Wave1~2 | — |
| C-04 | 亏损阈值提醒 | `customer_threshold_config` + 持仓查询追加提醒 | **已实现(2026-09-10)** · `threshold_service` | ~~T-40~~ |
-| C-05 | 产品净值 | Core 最新净值快照;禁止实时盘口 | **已实现(2026-09-10)** · `nav_query`;「实时净值」reject · **无 Chat 历史走势曲线**;统计趋势见问数 self 域(合并说明 §9.6) | ~~T-40~~ |
+| C-05 | 产品净值 | Core 最新净值快照;禁止实时盘口 | **已实现(2026-09-10)** · Chat `nav_query` · **平台 `GET …/nav/history` + 行情详情页近一年曲线(2026-09-11)** · Chat 仍无历史走势 Tool · Phase B 外部 sync 未做 | ~~T-40~~ |
| C-07 | 风评查询 / 重测引导 | Core L0;重测引导 App/网点 | **部分已实现** · 无 Agent 内问卷 | T-41 |
| C-08 | 配置目标 | L1 槽 `allocation_target` | **部分已实现** · 无偏离检测/调仓 | T-41 |
| C-11 | 适当性匹配说明 | 非营销推荐;联动 R-02 | **部分已实现** · 「我能买什么」→ suitability;「推荐稳赚」仍 reject | T-42 |
diff --git a/docs/memory/TODO.md b/docs/memory/TODO.md
index 2e4f860..3b9481b 100644
--- a/docs/memory/TODO.md
+++ b/docs/memory/TODO.md
@@ -60,7 +60,7 @@
- [ ] **前端进页转圈**:batch 净值 API 或合并请求 · 客户端 stale-while-revalidate(见 `FRONTEND-HANDOFF.md` §10)
- [ ] **看板演示口径**:四角色 `/app/{role}/home` 有图表;无 BI 大屏 · D-12 钻取仍 open
-- [ ] **客户持仓产品趋势(若要做)**:拍板 Chat 历史 nav Tool vs 问数引导 · 现状 §9.6 仅问数 `self` 域
+- [ ] **客户持仓产品趋势(若要做)**:拍板 Chat 历史 nav Tool vs 问数引导 · **平台行情详情已接 Core 历史** · Chat §9.6 仍仅问数 `self` 域
### 需拍板(定了再开任务)
@@ -260,7 +260,7 @@
### 客服 Agent · Wave3 开放项(2026-09-10 后)
- [x] **C-04 push/cron(演示最小)**:`POST .../threshold-check?push=` · `scripts/demo/push_threshold_alerts.py` · 持仓页「检查阈值提醒」
-- [ ] **C-05 Phase B**:`nav-snapshot` sync · 前端行情 Phase B(见 v0.2 草案)
+- [ ] **C-05 Phase B**:`nav-snapshot` **外部 sync**(Core 内 **07 历史种子 + nav/history API + 详情页** 已做 · 见 v0.2 草案)
- [ ] **C-08 偏离检测**:仅 L1 槽位,无自动调仓建议
- [ ] **Vitest**:客户 Chat 新 intent 无前端单测(后端已覆盖)
- [ ] **手工验收 + TEST-LOG 签核**(见上方「本批次 · 优先收尾」)
diff --git a/docs/superpowers/specs/2026-09-11-architecture-governance-course-design.md b/docs/superpowers/specs/2026-09-11-architecture-governance-course-design.md
index dc2b2c4..1f6f365 100644
--- a/docs/superpowers/specs/2026-09-11-architecture-governance-course-design.md
+++ b/docs/superpowers/specs/2026-09-11-architecture-governance-course-design.md
@@ -23,3 +23,5 @@ Vibe coder:能指挥 AI,需理解 ADR、不变量(architecture decisions
## 与现有课关系
不替换 `jinrong-module-*`;从 `docs/course/index.html` 链入。
+
+**答辩口径:** **代理人 Agent 未完整接入**(顾问线无独立深编排 · T-20 未做 · 主 Demo 不含顾问 Chat 深演示)。
diff --git a/docs/答辩/DEMO-SOP-答辩全流程.md b/docs/答辩/DEMO-SOP-答辩全流程.md
new file mode 100644
index 0000000..2e008c2
--- /dev/null
+++ b/docs/答辩/DEMO-SOP-答辩全流程.md
@@ -0,0 +1,225 @@
+# 答辩 Demo · 全流程 SOP(给人看 · 亮点优先)
+
+> **用途:** 答辩、汇报、投资人/业务方走查——按时间选路线,每步带**口述句**与**可展示的亮点**。
+> **基线(2026-09-11):** `827 pytest` · `22 Vitest` · 分支 **`merger`** · Redis **`6380`**
+
+**分册 SOP(细节不重复写死在本页):**
+
+| 中文职责 | 路径 |
+| --- | --- |
+| 问数工作台逐步操作 | [`DEMO-SOP-问数.md`](DEMO-SOP-问数.md) |
+| 风控 Swagger / 灌库 / A-1~A-12 | [`../项目框架设计/演示SOP-风控模块.md`](../项目框架设计/演示SOP-风控模块.md) |
+| 答辩提纲与 Q&A | [`答辩知识点清单.md`](答辩知识点清单.md) |
+| 浏览器滚动动线 | [`../course/jinrong-overview/index.html`](../course/jinrong-overview/index.html) 模块 8 |
+| 架构治理(ADR/不变量) | [`../course/jinrong-architecture-governance/index.html`](../course/jinrong-architecture-governance/index.html) |
+
+---
+
+## 1. 答辩前准备(建议提前 45~60 分钟)
+
+### 1.1 一键灌库(推荐)
+
+```powershell
+cd "d:\项目\JinRong"
+# 含 Core reset + agent 表 + AML + 风控演示 + 问数模板种子(以脚本实际步骤为准)
+.\scripts\demo\prepare_all.ps1
+python scripts/sync/sync_advisor_rel.py
+```
+
+**仅风控重走 A-1~A-5 且库已脏:** 见 [`演示SOP-风控模块.md`](../项目框架设计/演示SOP-风控模块.md) §2 双库 DROP 重灌。
+
+**问数模板/指标字典缺失:** `.\scripts\dev\seed_analyst.ps1` 或 [`DEMO-SOP-问数.md`](DEMO-SOP-问数.md) §1。
+
+### 1.2 依赖服务
+
+```powershell
+docker compose up -d redis # 或 .\scripts\dev\start-redis.ps1
+# .env: REDIS_URL=redis://127.0.0.1:6380/0
+# DEEPSEEK_API_KEY=…(客服/问数解读/风控 Chat 建议有 Key;无 Key 见 §6 降级)
+
+python -m uvicorn app.main:app --reload --host 127.0.0.1 --port 8000
+cd web && npm run dev # http://localhost:5173
+```
+
+### 1.3 自检(30 秒 · 给观众看「工程化」)
+
+| 检查 | 操作 | 亮点话术 |
+| --- | --- | --- |
+| 就绪探针 | 浏览器或 `GET http://127.0.0.1:8000/api/ready` | 「Redis + 关键路由自检,避免半升级后端」 |
+| 前端条 | 登录页/顶栏 **DevReadyBanner** 无红字 | 「前后端版本不一致时先告警,不是 silent fail」 |
+| 测试基线 | `python -m pytest -q`(可选口播 **827 passed**) | 「问数 guard 探针、风控矩阵、客服 1B 都在 pytest 里」 |
+
+### 1.4 Demo 账号(登录页四卡片)
+
+| 角色 | Actor | 默认首页 |
+| --- | --- | --- |
+| 客户 | `CUST-9527` | `#/app/customer/home` |
+| 理财师 | `STAFF-10086` | `#/app/advisor/home` |
+| 分析员 | `STAFF-20001` | `#/app/analyst/home` |
+| 风控专员 | `STAFF-30001` | `#/app/risk/home` |
+
+---
+
+## 2. 开场 30 秒(必背 · 与亮点挂钩)
+
+1. **定位:** 代销场景四角色 AI 助手 + **统一 L0 事实与合规底座**;Core 为**模拟库**,演示可审计、可阻断、可留痕。
+2. **架构句:** 四 Agent **不互调 LLM**;跨线靠画像表、预警表、**代销平台 REST**(重复能力 **以 platform API 为准**)。
+3. **⚠️ 代理人 Agent 未完整接入(答辩必记):** 理财师线**没有**类似客服的独立深编排(无 `advisor_service` 级产品化);当前仅为 **`agent_service` + X-Agent-Type: advisor** 的 Chat **骨架** + 部分 Tool/公开 RAG · **A-01~A-05(T-20)未做** · **勿把顾问 Chat 当主 Demo**(可口播「规划中」或只演示 Dashboard/归属 403)。详见 [`答辩知识点清单.md`](答辩知识点清单.md) §4.2。
+4. **铁律:** L0 测评不可被画像覆盖 · 仅 **R-02 适当性** 可阻断交易 · 风控**不自动冻户** · 审计表**只 INSERT**。
+5. **加分一句(可选):** 问数 **SQL 五层 guard + 探针**、客服 **1B 出口 sanitize**、风控 **事件线+人工处置**、D-06 **模板/缓存 Tag** 可在 UI 上指给用户看。
+
+---
+
+## 3. 路线选择
+
+| 路线 | 时长 | 适合 | 覆盖 |
+| --- | --- | --- | --- |
+| **A · 精华** | 6~8 分钟 | 时间紧、领导旁听 | §4 步骤 0→1→2→3(**不含顾问 Chat 深演示**) |
+| **B · 标准答辩** | 12~15 分钟 | 答辩/评审 | §4 步骤 0~3、5~6(**顾问仅可选 4 一步或跳过**) |
+| **C · 全亮点** | 20~25 分钟 | 技术深度、二轮 | §4 + §5 + §6 可选 + 风控 A-4 聚合 / 订阅推送 |
+
+---
+
+## 4. 标准演示步骤(按顺序 · 每步「操作 → 亮点 → 口述」)
+
+### 步骤 0 · 登录与 Dashboard(任意角色先登一次)
+
+| 操作 | 亮点 | 口述句 |
+| --- | --- | --- |
+| 登录 **客户** → 首页 | 饼图/柱图/持仓表 · **眼睛脱敏**只遮显示不改数据 | 「Dashboard 走 **platform API 只读 Core**,不是 Chat 编数」 |
+| 顶栏复制 **Actor ID** | 与 JWT `sub` 一致 | 「后面 Tool 归属、问数域都绑在这个 id 上」 |
+
+---
+
+### 步骤 1 · 客户财富线(Compliance + Core 事实)
+
+| 操作 | 亮点 | 口述句 |
+| --- | --- | --- |
+| **客户助手** Chat · 问「我的持仓」或「最新净值」 | SSE 流式 · Tool 查 **Core RO** · **C-05** 快照非实时盘口 | 「数据类回复走 Tool + **1B sanitize**;违禁回 **fact_text**,不误转人工」 |
+| 可选:问「推荐稳赚产品」 | **COMPLIANCE_REJECT** / reject | 「C-11:能买/匹配可以讲,收益承诺不行」 |
+| 可选:**持仓页** · 「检查阈值提醒」 | **C-04** 内联提醒 + 演示 `threshold-check?push=` | 「阈值写 L1+配置表;**无生产 cron**,演示可 push」 |
+| 可选:**游客**入口(若 UI 有) | fin_* RAG · 无客户数据 | 「游客只有公开知识库,和登录客户隔离」 |
+
+**给观众看的硬点:** LangGraph **14 节点** · **`agent_tool_call` 落库** · 会话 **Redis 窗口 + MySQL 永久** · 侧栏 **active + close-all**(删/清空可演示)。
+
+---
+
+### 步骤 2 · 风控事件线(R-02 + 人工闭环)
+
+| 操作 | 亮点 | 口述句 |
+| --- | --- | --- |
+| 换 **风控** 登录 → **模拟交易** | A-3 大单 → **RISK-001/002** · 台账 **pending** · **`core_trade` 落库** | 「只有 **R-02 适当性** 在网关层 **blocked**;规则引擎再出预警单」 |
+| **预警台账** · 筛选 pending · 点处置 | **stats.pending** · 处置 **409 状态机** · audit **同事务** | 「Agent **不能**自动改状态;REST 处置 + **只 INSERT 审计**」 |
+| 可选:A-1 风评不匹配 | `SUIT_RISK_MISMATCH` · **无 trade 落库** | 「阻断发生在写 Core 之前,有 suitability_log」 |
+| 可选:A-5 AML | aml 单 · **不冻户**(`is_active` 仍为 1) | 「命中 AML 出单,但 MEMORY 禁止自动冻户」 |
+| 可选:另开 `subscribe_alerts.py` | Redis **`risk:pub:alert`** 实时打印 | 「运维向能力:订阅推送,不是产品化 UI」 |
+
+**Swagger 逐步:** 见 [`演示SOP-风控模块.md`](../项目框架设计/演示SOP-风控模块.md) §4。
+
+---
+
+### 步骤 3 · 数据分析 / 问数(D-06 + 护栏 + 拆分)
+
+| 操作 | 亮点 | 口述句 |
+| --- | --- | --- |
+| **分析员** → **问数工作台** | 路由 **`/api/analyst/chat`**(无 X-Agent-Type) | 「问数和 Chat **拆路由**;默认 **只出表**,解读单独按钮」 |
+| 问:**客户总数是多少** | Tag **模板命中** · 折叠 SQL · `analytics_query_log` | 「**D-06 模板**跳过 LLM 写 SQL,答辩稳定」 |
+| **再问同一题** | Tag **结果缓存**(权限指纹 + 表世代) | 「写交易/预警会 bump 世代,不等 TTL 失效」 |
+| 点 **分析该数据** | **`/api/analyst/interpret`** · **D-10** 数字对齐 · 失败 degrade 只出表 | 「解读上下文**只有本轮 Q+表**;不接 Chat 历史」 |
+| 问:**近30天交易流水是多少** | **clarify**(N-01) | 「多义不猜口径——和乱写 SQL 对比,这是产品态度」 |
+| 可选:**抽样溯源** / **转人工** | N-03 sample · N-07 escalate | 「失败/争议有留痕,不是 silent error」 |
+
+**逐步表:** [`DEMO-SOP-问数.md`](DEMO-SOP-问数.md) §2~3。
+
+---
+
+### 步骤 4 · 风控 / 顾问 Chat(只读 · 防误导)
+
+> **代理人 Agent 未完整接入:** 下表「理财师 Chat」仅适合**一句话带过**(骨架 + 归属),**不要**承诺草稿/巡检/深度 L2 等 A 线能力;主 Demo 用客户 / 问数 / 风控。
+
+| 操作 | 亮点 | 口述句 |
+| --- | --- | --- |
+| **风控助手** · 「查待处理预警」 | **6 只只读 Tool** · 无处置 Tool | 「对话线**查**可以,**改状态**必须走 REST 处置 API」 |
+| ~~理财师 Chat 深演示~~ | **未接满** · 仅 `agent_service` 骨架 | 「顾问独立编排与 T-20 需求在排期;今天演示平台归属与风控/问数/客服三条成熟线」 |
+| 可选(浅):理财师登录 → **Dashboard 客户列表** | 平台 API + **归属** | 「名下客户数据走 Core + rel 表;Chat 能力与客服线不对等」 |
+
+---
+
+### 步骤 5 · 工程化收口(30 秒 · 给技术评委)
+
+| 展示 | 亮点 |
+| --- | --- |
+| 口播 **827 pytest** + **22 Vitest** | Wave 分模块 · TEST-AN-001 sql_guard · TEST-RISK-001 矩阵 |
+| 指 `docs/memory/` + `docs/course/` | Agent 交接记忆 + **交互深潜课**(四 Agent + 架构治理课) |
+| 主动 §8 边界 1~2 条 | 无真实 Core · D-09 多轮 open · Dashboard 无钻取 — **显得诚实** |
+
+---
+
+## 5. 亮点清单(按主题 · 可穿插口述)
+
+| 主题 | 展示动作 | 一句话亮点 |
+| --- | --- | --- |
+| **合规双护栏** | 客服 sanitize + 问数 deny 不调 LLM | 输入防护 + **输出/执行前** guard |
+| **Tool 纵深** | 403 + `agent_tool_call` blocked 留痕 | API 与 Tool 双层归属 |
+| **RAG 溯源** | 客服回答带 source / 有效日期 | 禁止未检索内容当事实 |
+| **AL-09 合并** | 口播 JWT 统一 · deps∥gateway | 风控并进宿主,**接缝 auth_adapter** |
+| **问数 RBAC** | 理财师查非名下 → deny 与 answer 一致 | 解读按钮 **不调 LLM** |
+| **风控并发** | 口播 A-4 同日聚合 · L3 乐观锁 | 深潜课模块 7 |
+| **缓存世代** | 问数二次命中绿色 Tag | 写侧 bump,非纯 TTL |
+| **架构治理** | 打开架构治理课模块 2~4 | ADR/不变量/fitness function 与仓库映射 |
+| **Ready** | `/api/ready` JSON | 运维才显现类问题的第一道灯 |
+
+---
+
+## 6. 可选加深(全亮点路线 C)
+
+| 项 | 操作 | 说明 |
+| --- | --- | --- |
+| 问数 battery | `python scripts/dev/run_query_battery.py` | 报告本地、**不入库**;答辩后给技术同事 |
+| 风控 A-4 | 连发 4 笔小额 | 同日 **freq 聚合** 同 alert_id |
+| 风控 A-12 | `agent_behavior_scan.py` | 代理人行为链 FR-10 |
+| 平台 API | 客户 **交易/流水** 页 | 与 Chat Tool **同源 Core**,强调 platform 优先 |
+| 行情页 | 分析员 **市场 quotes** | Phase B 未做 sync,主动说草案 |
+| 架构课 | `jinrong-architecture-governance` 模块 1 | 四要素映射四 Agent |
+
+---
+
+## 7. 无 DeepSeek Key / 部分服务不可用
+
+| 能力 | 无 Key 时 |
+| --- | --- |
+| 问数 NL2SQL | 模板题仍可用;自由问可能 clarify/deny |
+| 问数 **解读** | 可能 degrade 或失败 — **跳过步骤 3 解读按钮** |
+| 客服 Chat | 闲聊降级文案;事实类仍可走 Tool |
+| 风控 Chat | 只读 Tool 仍可用(不依赖生成长文) |
+
+---
+
+## 8. 演示后 Q&A 快捷指针
+
+见 [`答辩知识点清单.md`](答辩知识点清单.md) §九;高频:
+
+- 四 Agent 为何不互调? → MEMORY §3 + 审计边界
+- SQL 越权? → `sql_guard` + 域 + 探针
+- LLM 胡说数字? → D-10 guardrail + degrade
+- 会话存哪? → Redis 窗口 + MySQL `agent_message`
+
+---
+
+## 9. 文档与课程索引(给观众「资料包」)
+
+```text
+docs/答辩/
+ 答辩知识点清单.md ← 提纲 + Q&A
+ DEMO-SOP-答辩全流程.md ← 本文件
+ DEMO-SOP-问数.md ← 问数逐步
+
+docs/course/index.html ← 浏览器导览(含架构治理课)
+
+docs/项目框架设计/演示SOP-风控模块.md
+docs/frontend/FRONTEND-HANDOFF.md §8 四角色验收
+```
+
+**维护:** 改 Demo 动线或 pytest 基线时,同步更新本文件 §1.3、[`答辩知识点清单.md`](答辩知识点清单.md) §七/§八/§十、[`jinrong-overview` 模块 8](../course/jinrong-overview/modules/08-defense.html)。
+
+**产品缺口(固定口径):** **代理人 Agent 未完整接入** — 顾问 Chat 仅为 `agent_service` 骨架,T-20 / A-01~A-05 未做;答辩主 Demo **不含**顾问 Chat 深演示。
diff --git a/docs/答辩/DEMO-SOP-问数.md b/docs/答辩/DEMO-SOP-问数.md
index 78e15c7..5f89b54 100644
--- a/docs/答辩/DEMO-SOP-问数.md
+++ b/docs/答辩/DEMO-SOP-问数.md
@@ -1,6 +1,7 @@
# 答辩 Demo · 问数工作台 SOP
-> **套餐 ① 答辩稳**(2026-09-11)· 基线 **825 pytest** · 问数/解读拆分 · N-03 抽样 · N-07 转人工
+> **套餐 ① 答辩稳**(2026-09-11)· 基线 **827 pytest** · 问数/解读拆分 · N-03 抽样 · N-07 转人工
+> **全角色答辩动线:** [`DEMO-SOP-答辩全流程.md`](DEMO-SOP-答辩全流程.md)
## 1. 环境(答辩前 30 分钟)
diff --git a/docs/答辩/答辩知识点清单.md b/docs/答辩/答辩知识点清单.md
index 21e0009..dd7a337 100644
--- a/docs/答辩/答辩知识点清单.md
+++ b/docs/答辩/答辩知识点清单.md
@@ -1,6 +1,8 @@
# 金融四 Agent 答辩知识点清单
-> 用途:按模块讲清**数据怎么流、怎么跑、为什么这样选、亮点在哪**;答辩时可当提纲。基线:**825 pytest** · **22 Vitest** · 分支 **`merger`**。
+> 用途:按模块讲清**数据怎么流、怎么跑、为什么这样选、亮点在哪**;答辩时可当提纲。基线:**827 pytest** · **22 Vitest** · 分支 **`merger`**。
+
+**给人看的 Demo 逐步操作(主 SOP):** [`DEMO-SOP-答辩全流程.md`](DEMO-SOP-答辩全流程.md) · 问数分册 [`DEMO-SOP-问数.md`](DEMO-SOP-问数.md) · 风控分册 [`../项目框架设计/演示SOP-风控模块.md`](../项目框架设计/演示SOP-风控模块.md)
---
@@ -65,7 +67,7 @@
| **入口** | Chat `X-Agent-Type: advisor` + 平台 API `/api/advisors/...` |
| **数据流** | `customer_advisor_rel` 归属 → Core RO Tool · 公开知识 RAG(**skip_access_check** 仅知识,不含客户数据) |
| **限制** | 草稿 **不外发** · 非名下客户 **403** |
-| **现状** | 对话骨架 + Tool 已通 · L2 画像/编排深度弱于客服线 |
+| **现状(答辩必记)** | **代理人 Agent 未完整接入产品**:无独立 `advisor_service` 级编排 · 对话仅为 **`agent_service` + advisor 分支骨架** + Core RO Tool / 公开 kb · **REQUIREMENTS A-01~A-05(T-20)未做** · L2 画像/草稿/巡检 **未落地** · **勿作答辩主 Demo**(可口播规划 + 展示 Dashboard/归属) |
### 4.3 数据分析 Agent
@@ -134,21 +136,40 @@
| **Tool 归属纵深** | Tool 层 blocked 留痕 + API 层 403 · 风控 officer 可无 customer_id 查全量待审(C2) |
| **RAG 溯源** | `source_refs` / effective_date 过滤 · 禁止 LLM 编造未检索内容 |
| **风控评审闭环** | B1~B9b、C4~C6 独立 AI 评审 · 挂账 #1~#9 核对 |
-| **测试** | **825** 后端 · Wave 分模块 · 问数 interpret 拆分 + sql_guard Q17 + TEST-RISK-001 · 前端 **22** Vitest |
+| **测试** | **827** 后端 · Wave 分模块 · 问数 interpret 拆分 + sql_guard Q17 + TEST-RISK-001 · TEST-AN-001 探针 · 前端 **22** Vitest |
| **文档** | `docs/memory/*` Agent 交接 · `docs/course/` 交互深潜课 · 演示 SOP |
| **问数 battery** | `run_query_battery.py` 本地跑分 · **报告不入库** |
| **输入与输出双护栏** | 输入:注入/限流 · 输出:客服 sanitize + 问数 guardrail |
---
-## 七、演示动线建议(5~8 分钟)
+## 七、演示动线建议(给人看 · 详 SOP 见分册)
-1. **登录** → 四角色之一 Dashboard(平台只读数据从哪来)
-2. **客户** → 持仓/Chat SSE 或阈值提醒(Core + 1B)
-3. **风控** → 模拟交易 A-1 → 台账 pending → 处置(事件线 + 人工闭环)
-4. **分析** → 问数「客户总数」→ 模板 + 缓存 Tag → **分析该数据** → 解读卡片(D-06 + D-10 + interpret 拆分)
-5. **可选** → 问「交易流水」→ **clarify**(N-01)
-6. **可选** → 风控 Chat 只读查预警(强调 **不能** 让 Agent 改状态)
+**权威逐步脚本:** [`DEMO-SOP-答辩全流程.md`](DEMO-SOP-答辩全流程.md)(含 6~8 / 12~15 / 20~25 分钟三档、每步亮点与口述句)。
+
+### 7.1 答辩前 45 分钟
+
+`prepare_all.ps1`(或风控/问数分册重灌)→ Redis **6380** → uvicorn + `npm run dev` → 可选 `GET /api/ready` · 口播 **827 pytest**
+
+### 7.2 标准顺序(12~15 分钟 · 亮点优先)
+
+| 序 | 角色/页面 | 展示什么 | 亮点一句 |
+| --- | --- | --- | --- |
+| 0 | 客户登录 Dashboard | 持仓/图表/脱敏 | Platform API 只读 Core |
+| 1 | 客户 Chat | 持仓/净值/合规 reject | 14 节点 · 1B · Tool 落库 · SSE |
+| 2 | 风控 模拟交易→台账 | A-3 pending → 处置 | R-02 阻断 · 不自动冻户 · audit INSERT |
+| 3 | 分析员 问数 | 客户总数→模板 Tag→缓存 Tag→**分析该数据** | D-06 · D-10 · interpret 拆分 |
+| 4 | 问数 clarify | 「近30天交易流水」 | N-01 不猜口径 |
+| 5 | 风控/顾问 Chat | 风控只读查预警(**顾问 Chat 未接满,勿深演示**) | 无处置 Tool · 归属注入 |
+| 6 | 收口 | pytest/课程/边界 | 诚实 D-09/D-12 open |
+
+### 7.3 6~8 分钟精华
+
+步骤 **0 → 1 → 2 → 3**(跳过顾问深演示与可选 4~5)。
+
+### 7.4 加分可选(有时间再开)
+
+- 问数 **抽样溯源 / 转人工**(N-03/N-07)· C-04 阈值 push · `subscribe_alerts.py` · 风控 A-4 聚合 · [`架构治理课`](../course/jinrong-architecture-governance/index.html) ADR/不变量
---
@@ -156,6 +177,7 @@
| 项 | 说法 |
| --- | --- |
+| **代理人 Agent 未完整接入** | 无独立顾问深编排 · **T-20 / A-01~A-05 未做** · Chat 仅为 `agent_service` 骨架 · **答辩主 Demo 不含顾问 Chat 深演示**(可展示理财师 Dashboard + 归属) |
| 无真实 Core | L0 为 **模拟库**,生产接托管 Core 只读账号 |
| 分析对话 vs 问数 | **已拆分**:默认只出表 · 按钮调 `/interpret` · 旧 **分析对话** 路由重定向问数 · D-09 **多轮**仍 open |
| 客服 L1/L2 Redis | 热读方案已定,**风控不做 L1/L2** |
@@ -184,6 +206,7 @@
| 中文职责 | 路径 |
| --- | --- |
+| **答辩 Demo 全流程(主 SOP)** | `docs/答辩/DEMO-SOP-答辩全流程.md` |
| 端到端链路与 bootstrap | `docs/memory/FLOW.md` |
| 选型与分层 | `docs/memory/FRAMEWORK.md` |
| 场景 ID 对照 | `docs/memory/REQUIREMENTS.md` |
@@ -193,6 +216,7 @@
| 前端验收 | `docs/frontend/FRONTEND-HANDOFF.md` |
| 交互课导览 | `docs/course/index.html` |
| 答辩滚动课(浏览器) | `docs/course/jinrong-overview/index.html` 模块 8 |
+| 架构治理课(ADR/不变量) | `docs/course/jinrong-architecture-governance/index.html` |
| 问数 Demo SOP | `docs/答辩/DEMO-SOP-问数.md` |
| 问数 D-06 深潜 | `docs/course/jinrong-module-analyst/index.html` 模块 5 |
diff --git a/docs/项目框架设计/Core模拟底座/01-表结构与种子说明.md b/docs/项目框架设计/Core模拟底座/01-表结构与种子说明.md
index 97e8a14..6118a2d 100644
--- a/docs/项目框架设计/Core模拟底座/01-表结构与种子说明.md
+++ b/docs/项目框架设计/Core模拟底座/01-表结构与种子说明.md
@@ -32,7 +32,7 @@
| Neo4j | **P0 必做** · `scripts/sync/sync_neo4j.py` |
-| 行情 | 静态 `core_product_nav` seed |
+| 行情 | 静态 `core_product_nav`:**06 最新日 + 07 近 364 日历史**(平台 `nav/history` · 前端行情详情) |
@@ -154,7 +154,8 @@
| --- | --- |
-| `scripts/core/00~06-*.sql` | 建库 + 种子 |
+| `scripts/core/00~07-*.sql` | 建库 + 种子(**07** = 净值历史) |
+| `scripts/core/seed_nav_history.py` | 再生 **07** 或 MySQL upsert 修复 |
| `scripts/core/reset.ps1` | 一键重置 |
diff --git a/scripts/core/07-seed-nav-history.sql b/scripts/core/07-seed-nav-history.sql
new file mode 100644
index 0000000..bb635a2
--- /dev/null
+++ b/scripts/core/07-seed-nav-history.sql
@@ -0,0 +1,5122 @@
+USE jinrong_core;
+
+-- 近 364 个自然日历史净值(锚定日 2026-09-04 由 06-seed-nav.sql 写入)
+-- 生成:python scripts/core/seed_nav_history.py --export-sql · 5096 行 · 14 产品
+
+INSERT INTO core_product_nav (product_id, nav, daily_chg_pct, nav_date) VALUES
+('PROD-110022', 1.0414, -1.0907, '2025-09-05'),
+('PROD-110022', 1.0425, -0.1081, '2025-09-06'),
+('PROD-110022', 1.0299, 1.2194, '2025-09-07'),
+('PROD-110022', 1.0434, -1.2931, '2025-09-08'),
+('PROD-110022', 1.0504, -0.6711, '2025-09-09'),
+('PROD-110022', 1.0421, 0.7990, '2025-09-10'),
+('PROD-110022', 1.0578, -1.4839, '2025-09-11'),
+('PROD-110022', 1.0603, -0.2324, '2025-09-12'),
+('PROD-110022', 1.0670, -0.6243, '2025-09-13'),
+('PROD-110022', 1.0700, -0.2830, '2025-09-14'),
+('PROD-110022', 1.0752, -0.4854, '2025-09-15'),
+('PROD-110022', 1.0854, -0.9428, '2025-09-16'),
+('PROD-110022', 1.0958, -0.9472, '2025-09-17'),
+('PROD-110022', 1.0885, 0.6710, '2025-09-18'),
+('PROD-110022', 1.0813, 0.6661, '2025-09-19'),
+('PROD-110022', 1.0898, -0.7809, '2025-09-20'),
+('PROD-110022', 1.0974, -0.6917, '2025-09-21'),
+('PROD-110022', 1.1062, -0.7989, '2025-09-22'),
+('PROD-110022', 1.1024, 0.3432, '2025-09-23'),
+('PROD-110022', 1.0954, 0.6345, '2025-09-24'),
+('PROD-110022', 1.0950, 0.0322, '2025-09-25'),
+('PROD-110022', 1.0849, 0.9317, '2025-09-26'),
+('PROD-110022', 1.0948, -0.9013, '2025-09-27'),
+('PROD-110022', 1.0979, -0.2866, '2025-09-28'),
+('PROD-110022', 1.1046, -0.6102, '2025-09-29'),
+('PROD-110022', 1.1158, -1.0062, '2025-09-30'),
+('PROD-110022', 1.1005, 1.3870, '2025-10-01'),
+('PROD-110022', 1.1100, -0.8522, '2025-10-02'),
+('PROD-110022', 1.1248, -1.3117, '2025-10-03'),
+('PROD-110022', 1.1418, -1.4865, '2025-10-04'),
+('PROD-110022', 1.1325, 0.8249, '2025-10-05'),
+('PROD-110022', 1.1248, 0.6869, '2025-10-06'),
+('PROD-110022', 1.1419, -1.4980, '2025-10-07'),
+('PROD-110022', 1.1409, 0.0900, '2025-10-08'),
+('PROD-110022', 1.1243, 1.4780, '2025-10-09'),
+('PROD-110022', 1.1089, 1.3873, '2025-10-10'),
+('PROD-110022', 1.1076, 0.1215, '2025-10-11'),
+('PROD-110022', 1.1174, -0.8770, '2025-10-12'),
+('PROD-110022', 1.1158, 0.1410, '2025-10-13'),
+('PROD-110022', 1.1026, 1.2000, '2025-10-14'),
+('PROD-110022', 1.1133, -0.9639, '2025-10-15'),
+('PROD-110022', 1.1155, -0.1990, '2025-10-16'),
+('PROD-110022', 1.1213, -0.5133, '2025-10-17'),
+('PROD-110022', 1.1182, 0.2760, '2025-10-18'),
+('PROD-110022', 1.1169, 0.1155, '2025-10-19'),
+('PROD-110022', 1.1338, -1.4921, '2025-10-20'),
+('PROD-110022', 1.1254, 0.7474, '2025-10-21'),
+('PROD-110022', 1.1107, 1.3211, '2025-10-22'),
+('PROD-110022', 1.1245, -1.2295, '2025-10-23'),
+('PROD-110022', 1.1100, 1.3086, '2025-10-24'),
+('PROD-110022', 1.1188, -0.7909, '2025-10-25'),
+('PROD-110022', 1.1337, -1.3138, '2025-10-26'),
+('PROD-110022', 1.1297, 0.3509, '2025-10-27'),
+('PROD-110022', 1.1457, -1.3945, '2025-10-28'),
+('PROD-110022', 1.1344, 0.9945, '2025-10-29'),
+('PROD-110022', 1.1487, -1.2424, '2025-10-30'),
+('PROD-110022', 1.1528, -0.3560, '2025-10-31'),
+('PROD-110022', 1.1676, -1.2640, '2025-11-01'),
+('PROD-110022', 1.1561, 0.9961, '2025-11-02'),
+('PROD-110022', 1.1564, -0.0295, '2025-11-03'),
+('PROD-110022', 1.1705, -1.2020, '2025-11-04'),
+('PROD-110022', 1.1721, -0.1332, '2025-11-05'),
+('PROD-110022', 1.1779, -0.4909, '2025-11-06'),
+('PROD-110022', 1.1693, 0.7331, '2025-11-07'),
+('PROD-110022', 1.1585, 0.9345, '2025-11-08'),
+('PROD-110022', 1.1532, 0.4570, '2025-11-09'),
+('PROD-110022', 1.1685, -1.3105, '2025-11-10'),
+('PROD-110022', 1.1539, 1.2645, '2025-11-11'),
+('PROD-110022', 1.1707, -1.4329, '2025-11-12'),
+('PROD-110022', 1.1560, 1.2717, '2025-11-13'),
+('PROD-110022', 1.1732, -1.4631, '2025-11-14'),
+('PROD-110022', 1.1678, 0.4617, '2025-11-15'),
+('PROD-110022', 1.1835, -1.3271, '2025-11-16'),
+('PROD-110022', 1.1866, -0.2642, '2025-11-17'),
+('PROD-110022', 1.1944, -0.6521, '2025-11-18'),
+('PROD-110022', 1.1814, 1.0997, '2025-11-19'),
+('PROD-110022', 1.1965, -1.2644, '2025-11-20'),
+('PROD-110022', 1.1940, 0.2089, '2025-11-21'),
+('PROD-110022', 1.2040, -0.8342, '2025-11-22'),
+('PROD-110022', 1.1916, 1.0422, '2025-11-23'),
+('PROD-110022', 1.1947, -0.2576, '2025-11-24'),
+('PROD-110022', 1.2035, -0.7341, '2025-11-25'),
+('PROD-110022', 1.1909, 1.0547, '2025-11-26'),
+('PROD-110022', 1.1953, -0.3684, '2025-11-27'),
+('PROD-110022', 1.2104, -1.2498, '2025-11-28'),
+('PROD-110022', 1.2042, 0.5185, '2025-11-29'),
+('PROD-110022', 1.2180, -1.1369, '2025-11-30'),
+('PROD-110022', 1.2041, 1.1513, '2025-12-01'),
+('PROD-110022', 1.2017, 0.2000, '2025-12-02'),
+('PROD-110022', 1.2076, -0.4876, '2025-12-03'),
+('PROD-110022', 1.1942, 1.1259, '2025-12-04'),
+('PROD-110022', 1.1995, -0.4402, '2025-12-05'),
+('PROD-110022', 1.1934, 0.5153, '2025-12-06'),
+('PROD-110022', 1.1969, -0.2924, '2025-12-07'),
+('PROD-110022', 1.1919, 0.4155, '2025-12-08'),
+('PROD-110022', 1.1936, -0.1430, '2025-12-09'),
+('PROD-110022', 1.1767, 1.4403, '2025-12-10'),
+('PROD-110022', 1.1659, 0.9241, '2025-12-11'),
+('PROD-110022', 1.1809, -1.2678, '2025-12-12'),
+('PROD-110022', 1.1911, -0.8542, '2025-12-13'),
+('PROD-110022', 1.1812, 0.8383, '2025-12-14'),
+('PROD-110022', 1.1643, 1.4557, '2025-12-15'),
+('PROD-110022', 1.1653, -0.0886, '2025-12-16'),
+('PROD-110022', 1.1678, -0.2139, '2025-12-17'),
+('PROD-110022', 1.1506, 1.4909, '2025-12-18'),
+('PROD-110022', 1.1676, -1.4545, '2025-12-19'),
+('PROD-110022', 1.1591, 0.7293, '2025-12-20'),
+('PROD-110022', 1.1613, -0.1925, '2025-12-21'),
+('PROD-110022', 1.1516, 0.8450, '2025-12-22'),
+('PROD-110022', 1.1537, -0.1834, '2025-12-23'),
+('PROD-110022', 1.1652, -0.9884, '2025-12-24'),
+('PROD-110022', 1.1602, 0.4270, '2025-12-25'),
+('PROD-110022', 1.1585, 0.1464, '2025-12-26'),
+('PROD-110022', 1.1471, 0.9977, '2025-12-27'),
+('PROD-110022', 1.1395, 0.6682, '2025-12-28'),
+('PROD-110022', 1.1288, 0.9475, '2025-12-29'),
+('PROD-110022', 1.1318, -0.2637, '2025-12-30'),
+('PROD-110022', 1.1171, 1.3167, '2025-12-31'),
+('PROD-110022', 1.1233, -0.5509, '2026-01-01'),
+('PROD-110022', 1.1404, -1.4980, '2026-01-02'),
+('PROD-110022', 1.1338, 0.5811, '2026-01-03'),
+('PROD-110022', 1.1416, -0.6820, '2026-01-04'),
+('PROD-110022', 1.1271, 1.2825, '2026-01-05'),
+('PROD-110022', 1.1192, 0.7083, '2026-01-06'),
+('PROD-110022', 1.1137, 0.4948, '2026-01-07'),
+('PROD-110022', 1.1226, -0.7918, '2026-01-08'),
+('PROD-110022', 1.1266, -0.3509, '2026-01-09'),
+('PROD-110022', 1.1429, -1.4265, '2026-01-10'),
+('PROD-110022', 1.1369, 0.5308, '2026-01-11'),
+('PROD-110022', 1.1490, -1.0533, '2026-01-12'),
+('PROD-110022', 1.1378, 0.9832, '2026-01-13'),
+('PROD-110022', 1.1267, 0.9843, '2026-01-14'),
+('PROD-110022', 1.1356, -0.7812, '2026-01-15'),
+('PROD-110022', 1.1224, 1.1731, '2026-01-16'),
+('PROD-110022', 1.1310, -0.7585, '2026-01-17'),
+('PROD-110022', 1.1147, 1.4612, '2026-01-18'),
+('PROD-110022', 1.1141, 0.0537, '2026-01-19'),
+('PROD-110022', 1.1290, -1.3231, '2026-01-20'),
+('PROD-110022', 1.1383, -0.8182, '2026-01-21'),
+('PROD-110022', 1.1524, -1.2204, '2026-01-22'),
+('PROD-110022', 1.1545, -0.1780, '2026-01-23'),
+('PROD-110022', 1.1421, 1.0889, '2026-01-24'),
+('PROD-110022', 1.1292, 1.1382, '2026-01-25'),
+('PROD-110022', 1.1268, 0.2121, '2026-01-26'),
+('PROD-110022', 1.1290, -0.1918, '2026-01-27'),
+('PROD-110022', 1.1305, -0.1319, '2026-01-28'),
+('PROD-110022', 1.1306, -0.0058, '2026-01-29'),
+('PROD-110022', 1.1224, 0.7332, '2026-01-30'),
+('PROD-110022', 1.1147, 0.6918, '2026-01-31'),
+('PROD-110022', 1.1212, -0.5803, '2026-02-01'),
+('PROD-110022', 1.1366, -1.3573, '2026-02-02'),
+('PROD-110022', 1.1200, 1.4858, '2026-02-03'),
+('PROD-110022', 1.1039, 1.4591, '2026-02-04'),
+('PROD-110022', 1.1196, -1.4032, '2026-02-05'),
+('PROD-110022', 1.1326, -1.1492, '2026-02-06'),
+('PROD-110022', 1.1328, -0.0198, '2026-02-07'),
+('PROD-110022', 1.1430, -0.8942, '2026-02-08'),
+('PROD-110022', 1.1575, -1.2546, '2026-02-09'),
+('PROD-110022', 1.1630, -0.4707, '2026-02-10'),
+('PROD-110022', 1.1716, -0.7300, '2026-02-11'),
+('PROD-110022', 1.1816, -0.8425, '2026-02-12'),
+('PROD-110022', 1.1747, 0.5861, '2026-02-13'),
+('PROD-110022', 1.1619, 1.1051, '2026-02-14'),
+('PROD-110022', 1.1544, 0.6497, '2026-02-15'),
+('PROD-110022', 1.1544, 0.0042, '2026-02-16'),
+('PROD-110022', 1.1630, -0.7363, '2026-02-17'),
+('PROD-110022', 1.1660, -0.2563, '2026-02-18'),
+('PROD-110022', 1.1790, -1.1064, '2026-02-19'),
+('PROD-110022', 1.1719, 0.6067, '2026-02-20'),
+('PROD-110022', 1.1572, 1.2740, '2026-02-21'),
+('PROD-110022', 1.1584, -0.1018, '2026-02-22'),
+('PROD-110022', 1.1739, -1.3198, '2026-02-23'),
+('PROD-110022', 1.1764, -0.2086, '2026-02-24'),
+('PROD-110022', 1.1847, -0.7012, '2026-02-25'),
+('PROD-110022', 1.1965, -0.9867, '2026-02-26'),
+('PROD-110022', 1.2131, -1.3708, '2026-02-27'),
+('PROD-110022', 1.2273, -1.1577, '2026-02-28'),
+('PROD-110022', 1.2332, -0.4771, '2026-03-01'),
+('PROD-110022', 1.2384, -0.4213, '2026-03-02'),
+('PROD-110022', 1.2272, 0.9134, '2026-03-03'),
+('PROD-110022', 1.2334, -0.5064, '2026-03-04'),
+('PROD-110022', 1.2188, 1.1978, '2026-03-05'),
+('PROD-110022', 1.2090, 0.8086, '2026-03-06'),
+('PROD-110022', 1.2213, -1.0062, '2026-03-07'),
+('PROD-110022', 1.2376, -1.3138, '2026-03-08'),
+('PROD-110022', 1.2497, -0.9717, '2026-03-09'),
+('PROD-110022', 1.2386, 0.8938, '2026-03-10'),
+('PROD-110022', 1.2362, 0.1956, '2026-03-11'),
+('PROD-110022', 1.2199, 1.3358, '2026-03-12'),
+('PROD-110022', 1.2231, -0.2581, '2026-03-13'),
+('PROD-110022', 1.2145, 0.7077, '2026-03-14'),
+('PROD-110022', 1.2208, -0.5129, '2026-03-15'),
+('PROD-110022', 1.2032, 1.4632, '2026-03-16'),
+('PROD-110022', 1.2063, -0.2604, '2026-03-17'),
+('PROD-110022', 1.2091, -0.2313, '2026-03-18'),
+('PROD-110022', 1.2275, -1.4994, '2026-03-19'),
+('PROD-110022', 1.2163, 0.9174, '2026-03-20'),
+('PROD-110022', 1.2035, 1.0627, '2026-03-21'),
+('PROD-110022', 1.2048, -0.1110, '2026-03-22'),
+('PROD-110022', 1.2004, 0.3636, '2026-03-23'),
+('PROD-110022', 1.2012, -0.0682, '2026-03-24'),
+('PROD-110022', 1.2088, -0.6286, '2026-03-25'),
+('PROD-110022', 1.2261, -1.4097, '2026-03-26'),
+('PROD-110022', 1.2189, 0.5927, '2026-03-27'),
+('PROD-110022', 1.2222, -0.2726, '2026-03-28'),
+('PROD-110022', 1.2243, -0.1697, '2026-03-29'),
+('PROD-110022', 1.2118, 1.0317, '2026-03-30'),
+('PROD-110022', 1.2153, -0.2916, '2026-03-31'),
+('PROD-110022', 1.1976, 1.4747, '2026-04-01'),
+('PROD-110022', 1.2056, -0.6604, '2026-04-02'),
+('PROD-110022', 1.2209, -1.2507, '2026-04-03'),
+('PROD-110022', 1.2300, -0.7427, '2026-04-04'),
+('PROD-110022', 1.2307, -0.0574, '2026-04-05'),
+('PROD-110022', 1.2251, 0.4532, '2026-04-06'),
+('PROD-110022', 1.2397, -1.1812, '2026-04-07'),
+('PROD-110022', 1.2296, 0.8188, '2026-04-08'),
+('PROD-110022', 1.2426, -1.0488, '2026-04-09'),
+('PROD-110022', 1.2407, 0.1523, '2026-04-10'),
+('PROD-110022', 1.2388, 0.1503, '2026-04-11'),
+('PROD-110022', 1.2476, -0.7081, '2026-04-12'),
+('PROD-110022', 1.2647, -1.3492, '2026-04-13'),
+('PROD-110022', 1.2523, 0.9867, '2026-04-14'),
+('PROD-110022', 1.2534, -0.0910, '2026-04-15'),
+('PROD-110022', 1.2698, -1.2905, '2026-04-16'),
+('PROD-110022', 1.2847, -1.1561, '2026-04-17'),
+('PROD-110022', 1.2896, -0.3817, '2026-04-18'),
+('PROD-110022', 1.3082, -1.4224, '2026-04-19'),
+('PROD-110022', 1.2901, 1.4016, '2026-04-20'),
+('PROD-110022', 1.3022, -0.9305, '2026-04-21'),
+('PROD-110022', 1.3194, -1.3045, '2026-04-22'),
+('PROD-110022', 1.3376, -1.3578, '2026-04-23'),
+('PROD-110022', 1.3283, 0.6968, '2026-04-24'),
+('PROD-110022', 1.3278, 0.0407, '2026-04-25'),
+('PROD-110022', 1.3442, -1.2192, '2026-04-26'),
+('PROD-110022', 1.3376, 0.4900, '2026-04-27'),
+('PROD-110022', 1.3502, -0.9349, '2026-04-28'),
+('PROD-110022', 1.3491, 0.0822, '2026-04-29'),
+('PROD-110022', 1.3494, -0.0252, '2026-04-30'),
+('PROD-110022', 1.3651, -1.1517, '2026-05-01'),
+('PROD-110022', 1.3807, -1.1312, '2026-05-02'),
+('PROD-110022', 1.3819, -0.0885, '2026-05-03'),
+('PROD-110022', 1.3688, 0.9558, '2026-05-04'),
+('PROD-110022', 1.3537, 1.1141, '2026-05-05'),
+('PROD-110022', 1.3498, 0.2868, '2026-05-06'),
+('PROD-110022', 1.3418, 0.5987, '2026-05-07'),
+('PROD-110022', 1.3265, 1.1561, '2026-05-08'),
+('PROD-110022', 1.3230, 0.2647, '2026-05-09'),
+('PROD-110022', 1.3176, 0.4126, '2026-05-10'),
+('PROD-110022', 1.3186, -0.0768, '2026-05-11'),
+('PROD-110022', 1.3199, -0.0979, '2026-05-12'),
+('PROD-110022', 1.3063, 1.0406, '2026-05-13'),
+('PROD-110022', 1.3210, -1.1152, '2026-05-14'),
+('PROD-110022', 1.3061, 1.1409, '2026-05-15'),
+('PROD-110022', 1.3002, 0.4549, '2026-05-16'),
+('PROD-110022', 1.2834, 1.3085, '2026-05-17'),
+('PROD-110022', 1.2808, 0.2061, '2026-05-18'),
+('PROD-110022', 1.2958, -1.1568, '2026-05-19'),
+('PROD-110022', 1.3120, -1.2365, '2026-05-20'),
+('PROD-110022', 1.3273, -1.1508, '2026-05-21'),
+('PROD-110022', 1.3394, -0.9064, '2026-05-22'),
+('PROD-110022', 1.3308, 0.6439, '2026-05-23'),
+('PROD-110022', 1.3440, -0.9848, '2026-05-24'),
+('PROD-110022', 1.3584, -1.0625, '2026-05-25'),
+('PROD-110022', 1.3754, -1.2332, '2026-05-26'),
+('PROD-110022', 1.3617, 1.0063, '2026-05-27'),
+('PROD-110022', 1.3450, 1.2407, '2026-05-28'),
+('PROD-110022', 1.3503, -0.3898, '2026-05-29'),
+('PROD-110022', 1.3619, -0.8528, '2026-05-30'),
+('PROD-110022', 1.3776, -1.1393, '2026-05-31'),
+('PROD-110022', 1.3828, -0.3786, '2026-06-01'),
+('PROD-110022', 1.3700, 0.9361, '2026-06-02'),
+('PROD-110022', 1.3520, 1.3282, '2026-06-03'),
+('PROD-110022', 1.3458, 0.4626, '2026-06-04'),
+('PROD-110022', 1.3333, 0.9379, '2026-06-05'),
+('PROD-110022', 1.3491, -1.1703, '2026-06-06'),
+('PROD-110022', 1.3541, -0.3684, '2026-06-07'),
+('PROD-110022', 1.3666, -0.9150, '2026-06-08'),
+('PROD-110022', 1.3489, 1.3109, '2026-06-09'),
+('PROD-110022', 1.3313, 1.3242, '2026-06-10'),
+('PROD-110022', 1.3185, 0.9736, '2026-06-11'),
+('PROD-110022', 1.3231, -0.3451, '2026-06-12'),
+('PROD-110022', 1.3097, 1.0269, '2026-06-13'),
+('PROD-110022', 1.3049, 0.3644, '2026-06-14'),
+('PROD-110022', 1.2936, 0.8729, '2026-06-15'),
+('PROD-110022', 1.2987, -0.3898, '2026-06-16'),
+('PROD-110022', 1.3033, -0.3537, '2026-06-17'),
+('PROD-110022', 1.3049, -0.1260, '2026-06-18'),
+('PROD-110022', 1.3006, 0.3270, '2026-06-19'),
+('PROD-110022', 1.2837, 1.3139, '2026-06-20'),
+('PROD-110022', 1.3019, -1.3975, '2026-06-21'),
+('PROD-110022', 1.2832, 1.4600, '2026-06-22'),
+('PROD-110022', 1.2683, 1.1766, '2026-06-23'),
+('PROD-110022', 1.2628, 0.4321, '2026-06-24'),
+('PROD-110022', 1.2717, -0.6976, '2026-06-25'),
+('PROD-110022', 1.2705, 0.0949, '2026-06-26'),
+('PROD-110022', 1.2525, 1.4366, '2026-06-27'),
+('PROD-110022', 1.2386, 1.1262, '2026-06-28'),
+('PROD-110022', 1.2387, -0.0070, '2026-06-29'),
+('PROD-110022', 1.2250, 1.1191, '2026-06-30'),
+('PROD-110022', 1.2182, 0.5596, '2026-07-01'),
+('PROD-110022', 1.2355, -1.3995, '2026-07-02'),
+('PROD-110022', 1.2296, 0.4798, '2026-07-03'),
+('PROD-110022', 1.2171, 1.0258, '2026-07-04'),
+('PROD-110022', 1.2275, -0.8471, '2026-07-05'),
+('PROD-110022', 1.2374, -0.8021, '2026-07-06'),
+('PROD-110022', 1.2507, -1.0623, '2026-07-07'),
+('PROD-110022', 1.2368, 1.1256, '2026-07-08'),
+('PROD-110022', 1.2444, -0.6132, '2026-07-09'),
+('PROD-110022', 1.2365, 0.6419, '2026-07-10'),
+('PROD-110022', 1.2266, 0.8087, '2026-07-11'),
+('PROD-110022', 1.2257, 0.0770, '2026-07-12'),
+('PROD-110022', 1.2115, 1.1703, '2026-07-13'),
+('PROD-110022', 1.2085, 0.2471, '2026-07-14'),
+('PROD-110022', 1.2001, 0.7000, '2026-07-15'),
+('PROD-110022', 1.1899, 0.8560, '2026-07-16'),
+('PROD-110022', 1.1875, 0.2046, '2026-07-17'),
+('PROD-110022', 1.1874, 0.0125, '2026-07-18'),
+('PROD-110022', 1.1968, -0.7821, '2026-07-19'),
+('PROD-110022', 1.2010, -0.3460, '2026-07-20'),
+('PROD-110022', 1.1847, 1.3767, '2026-07-21'),
+('PROD-110022', 1.1823, 0.2018, '2026-07-22'),
+('PROD-110022', 1.1805, 0.1528, '2026-07-23'),
+('PROD-110022', 1.1838, -0.2799, '2026-07-24'),
+('PROD-110022', 1.1718, 1.0282, '2026-07-25'),
+('PROD-110022', 1.1680, 0.3255, '2026-07-26'),
+('PROD-110022', 1.1771, -0.7702, '2026-07-27'),
+('PROD-110022', 1.1869, -0.8249, '2026-07-28'),
+('PROD-110022', 1.1822, 0.3988, '2026-07-29'),
+('PROD-110022', 1.1868, -0.3861, '2026-07-30'),
+('PROD-110022', 1.1703, 1.4136, '2026-07-31'),
+('PROD-110022', 1.1627, 0.6502, '2026-08-01'),
+('PROD-110022', 1.1569, 0.5012, '2026-08-02'),
+('PROD-110022', 1.1628, -0.5115, '2026-08-03'),
+('PROD-110022', 1.1725, -0.8271, '2026-08-04'),
+('PROD-110022', 1.1881, -1.3147, '2026-08-05'),
+('PROD-110022', 1.2023, -1.1829, '2026-08-06'),
+('PROD-110022', 1.1866, 1.3224, '2026-08-07'),
+('PROD-110022', 1.1755, 0.9462, '2026-08-08'),
+('PROD-110022', 1.1743, 0.1045, '2026-08-09'),
+('PROD-110022', 1.1750, -0.0623, '2026-08-10'),
+('PROD-110022', 1.1763, -0.1085, '2026-08-11'),
+('PROD-110022', 1.1892, -1.0879, '2026-08-12'),
+('PROD-110022', 1.2040, -1.2303, '2026-08-13'),
+('PROD-110022', 1.2070, -0.2496, '2026-08-14'),
+('PROD-110022', 1.2133, -0.5175, '2026-08-15'),
+('PROD-110022', 1.2276, -1.1614, '2026-08-16'),
+('PROD-110022', 1.2122, 1.2734, '2026-08-17'),
+('PROD-110022', 1.2050, 0.5942, '2026-08-18'),
+('PROD-110022', 1.2027, 0.1916, '2026-08-19'),
+('PROD-110022', 1.1907, 1.0116, '2026-08-20'),
+('PROD-110022', 1.2073, -1.3744, '2026-08-21'),
+('PROD-110022', 1.2037, 0.2995, '2026-08-22'),
+('PROD-110022', 1.2157, -0.9842, '2026-08-23'),
+('PROD-110022', 1.2186, -0.2409, '2026-08-24'),
+('PROD-110022', 1.2244, -0.4748, '2026-08-25'),
+('PROD-110022', 1.2330, -0.6945, '2026-08-26'),
+('PROD-110022', 1.2374, -0.3569, '2026-08-27'),
+('PROD-110022', 1.2549, -1.3930, '2026-08-28'),
+('PROD-110022', 1.2479, 0.5571, '2026-08-29'),
+('PROD-110022', 1.2639, -1.2649, '2026-08-30'),
+('PROD-110022', 1.2785, -1.1433, '2026-08-31'),
+('PROD-110022', 1.2825, -0.3142, '2026-09-01'),
+('PROD-110022', 1.2658, 1.3223, '2026-09-02'),
+('PROD-110022', 1.2843, -1.4424, '2026-09-03'),
+('PROD-110023', 1.0087, 1.1226, '2025-09-05'),
+('PROD-110023', 0.9954, 1.3377, '2025-09-06'),
+('PROD-110023', 1.0058, -1.0342, '2025-09-07'),
+('PROD-110023', 0.9961, 0.9786, '2025-09-08'),
+('PROD-110023', 0.9827, 1.3606, '2025-09-09'),
+('PROD-110023', 0.9973, -1.4679, '2025-09-10'),
+('PROD-110023', 1.0044, -0.7065, '2025-09-11'),
+('PROD-110023', 1.0070, -0.2555, '2025-09-12'),
+('PROD-110023', 0.9934, 1.3685, '2025-09-13'),
+('PROD-110023', 1.0001, -0.6656, '2025-09-14'),
+('PROD-110023', 0.9996, 0.0473, '2025-09-15'),
+('PROD-110023', 0.9899, 0.9828, '2025-09-16'),
+('PROD-110023', 0.9800, 1.0151, '2025-09-17'),
+('PROD-110023', 0.9668, 1.3607, '2025-09-18'),
+('PROD-110023', 0.9659, 0.0936, '2025-09-19'),
+('PROD-110023', 0.9759, -1.0279, '2025-09-20'),
+('PROD-110023', 0.9661, 1.0158, '2025-09-21'),
+('PROD-110023', 0.9661, 0.0015, '2025-09-22'),
+('PROD-110023', 0.9791, -1.3324, '2025-09-23'),
+('PROD-110023', 0.9867, -0.7697, '2025-09-24'),
+('PROD-110023', 0.9971, -1.0415, '2025-09-25'),
+('PROD-110023', 1.0009, -0.3788, '2025-09-26'),
+('PROD-110023', 1.0042, -0.3263, '2025-09-27'),
+('PROD-110023', 1.0094, -0.5164, '2025-09-28'),
+('PROD-110023', 1.0185, -0.8944, '2025-09-29'),
+('PROD-110023', 1.0161, 0.2331, '2025-09-30'),
+('PROD-110023', 1.0286, -1.2179, '2025-10-01'),
+('PROD-110023', 1.0297, -0.1071, '2025-10-02'),
+('PROD-110023', 1.0172, 1.2244, '2025-10-03'),
+('PROD-110023', 1.0103, 0.6869, '2025-10-04'),
+('PROD-110023', 1.0080, 0.2262, '2025-10-05'),
+('PROD-110023', 0.9936, 1.4493, '2025-10-06'),
+('PROD-110023', 0.9850, 0.8777, '2025-10-07'),
+('PROD-110023', 0.9928, -0.7882, '2025-10-08'),
+('PROD-110023', 0.9843, 0.8597, '2025-10-09'),
+('PROD-110023', 0.9896, -0.5368, '2025-10-10'),
+('PROD-110023', 0.9918, -0.2264, '2025-10-11'),
+('PROD-110023', 0.9782, 1.3867, '2025-10-12'),
+('PROD-110023', 0.9866, -0.8510, '2025-10-13'),
+('PROD-110023', 0.9788, 0.7928, '2025-10-14'),
+('PROD-110023', 0.9885, -0.9856, '2025-10-15'),
+('PROD-110023', 0.9863, 0.2180, '2025-10-16'),
+('PROD-110023', 0.9796, 0.6820, '2025-10-17'),
+('PROD-110023', 0.9788, 0.0771, '2025-10-18'),
+('PROD-110023', 0.9914, -1.2682, '2025-10-19'),
+('PROD-110023', 0.9875, 0.4000, '2025-10-20'),
+('PROD-110023', 0.9985, -1.0978, '2025-10-21'),
+('PROD-110023', 0.9918, 0.6727, '2025-10-22'),
+('PROD-110023', 0.9973, -0.5561, '2025-10-23'),
+('PROD-110023', 0.9832, 1.4298, '2025-10-24'),
+('PROD-110023', 0.9688, 1.4840, '2025-10-25'),
+('PROD-110023', 0.9596, 0.9604, '2025-10-26'),
+('PROD-110023', 0.9474, 1.2870, '2025-10-27'),
+('PROD-110023', 0.9344, 1.3859, '2025-10-28'),
+('PROD-110023', 0.9317, 0.2892, '2025-10-29'),
+('PROD-110023', 0.9197, 1.3026, '2025-10-30'),
+('PROD-110023', 0.9065, 1.4519, '2025-10-31'),
+('PROD-110023', 0.9070, -0.0601, '2025-11-01'),
+('PROD-110023', 0.9193, -1.3405, '2025-11-02'),
+('PROD-110023', 0.9098, 1.0440, '2025-11-03'),
+('PROD-110023', 0.8969, 1.4342, '2025-11-04'),
+('PROD-110023', 0.8859, 1.2424, '2025-11-05'),
+('PROD-110023', 0.8731, 1.4636, '2025-11-06'),
+('PROD-110023', 0.8672, 0.6799, '2025-11-07'),
+('PROD-110023', 0.8735, -0.7212, '2025-11-08'),
+('PROD-110023', 0.8859, -1.3982, '2025-11-09'),
+('PROD-110023', 0.8993, -1.4882, '2025-11-10'),
+('PROD-110023', 0.9100, -1.1727, '2025-11-11'),
+('PROD-110023', 0.9162, -0.6778, '2025-11-12'),
+('PROD-110023', 0.9138, 0.2632, '2025-11-13'),
+('PROD-110023', 0.9104, 0.3784, '2025-11-14'),
+('PROD-110023', 0.9043, 0.6696, '2025-11-15'),
+('PROD-110023', 0.9168, -1.3675, '2025-11-16'),
+('PROD-110023', 0.9034, 1.4888, '2025-11-17'),
+('PROD-110023', 0.9146, -1.2201, '2025-11-18'),
+('PROD-110023', 0.9100, 0.5028, '2025-11-19'),
+('PROD-110023', 0.9042, 0.6461, '2025-11-20'),
+('PROD-110023', 0.9071, -0.3243, '2025-11-21'),
+('PROD-110023', 0.9079, -0.0856, '2025-11-22'),
+('PROD-110023', 0.9103, -0.2642, '2025-11-23'),
+('PROD-110023', 0.9016, 0.9701, '2025-11-24'),
+('PROD-110023', 0.9067, -0.5594, '2025-11-25'),
+('PROD-110023', 0.9072, -0.0573, '2025-11-26'),
+('PROD-110023', 0.9043, 0.3183, '2025-11-27'),
+('PROD-110023', 0.8967, 0.8469, '2025-11-28'),
+('PROD-110023', 0.9032, -0.7235, '2025-11-29'),
+('PROD-110023', 0.9107, -0.8255, '2025-11-30'),
+('PROD-110023', 0.9163, -0.6114, '2025-12-01'),
+('PROD-110023', 0.9266, -1.1082, '2025-12-02'),
+('PROD-110023', 0.9392, -1.3398, '2025-12-03'),
+('PROD-110023', 0.9259, 1.4350, '2025-12-04'),
+('PROD-110023', 0.9374, -1.2258, '2025-12-05'),
+('PROD-110023', 0.9504, -1.3636, '2025-12-06'),
+('PROD-110023', 0.9545, -0.4284, '2025-12-07'),
+('PROD-110023', 0.9428, 1.2392, '2025-12-08'),
+('PROD-110023', 0.9504, -0.7968, '2025-12-09'),
+('PROD-110023', 0.9504, -0.0035, '2025-12-10'),
+('PROD-110023', 0.9383, 1.2900, '2025-12-11'),
+('PROD-110023', 0.9302, 0.8680, '2025-12-12'),
+('PROD-110023', 0.9166, 1.4855, '2025-12-13'),
+('PROD-110023', 0.9232, -0.7197, '2025-12-14'),
+('PROD-110023', 0.9228, 0.0451, '2025-12-15'),
+('PROD-110023', 0.9100, 1.4115, '2025-12-16'),
+('PROD-110023', 0.9027, 0.8094, '2025-12-17'),
+('PROD-110023', 0.9090, -0.6972, '2025-12-18'),
+('PROD-110023', 0.9173, -0.9047, '2025-12-19'),
+('PROD-110023', 0.9137, 0.3932, '2025-12-20'),
+('PROD-110023', 0.9093, 0.4832, '2025-12-21'),
+('PROD-110023', 0.8977, 1.2937, '2025-12-22'),
+('PROD-110023', 0.9053, -0.8359, '2025-12-23'),
+('PROD-110023', 0.9035, 0.1950, '2025-12-24'),
+('PROD-110023', 0.9109, -0.8154, '2025-12-25'),
+('PROD-110023', 0.9026, 0.9148, '2025-12-26'),
+('PROD-110023', 0.8994, 0.3539, '2025-12-27'),
+('PROD-110023', 0.9120, -1.3802, '2025-12-28'),
+('PROD-110023', 0.9003, 1.3044, '2025-12-29'),
+('PROD-110023', 0.8880, 1.3883, '2025-12-30'),
+('PROD-110023', 0.8930, -0.5610, '2025-12-31'),
+('PROD-110023', 0.9021, -1.0081, '2026-01-01'),
+('PROD-110023', 0.9064, -0.4720, '2026-01-02'),
+('PROD-110023', 0.9110, -0.5033, '2026-01-03'),
+('PROD-110023', 0.9007, 1.1470, '2026-01-04'),
+('PROD-110023', 0.9008, -0.0104, '2026-01-05'),
+('PROD-110023', 0.9110, -1.1194, '2026-01-06'),
+('PROD-110023', 0.9197, -0.9475, '2026-01-07'),
+('PROD-110023', 0.9104, 1.0225, '2026-01-08'),
+('PROD-110023', 0.9109, -0.0534, '2026-01-09'),
+('PROD-110023', 0.9089, 0.2201, '2026-01-10'),
+('PROD-110023', 0.8978, 1.2359, '2026-01-11'),
+('PROD-110023', 0.8950, 0.3108, '2026-01-12'),
+('PROD-110023', 0.8956, -0.0665, '2026-01-13'),
+('PROD-110023', 0.9010, -0.6011, '2026-01-14'),
+('PROD-110023', 0.9027, -0.1914, '2026-01-15'),
+('PROD-110023', 0.8903, 1.3964, '2026-01-16'),
+('PROD-110023', 0.8815, 0.9997, '2026-01-17'),
+('PROD-110023', 0.8905, -1.0122, '2026-01-18');
+
+INSERT INTO core_product_nav (product_id, nav, daily_chg_pct, nav_date) VALUES
+('PROD-110023', 0.8935, -0.3376, '2026-01-19'),
+('PROD-110023', 0.8929, 0.0633, '2026-01-20'),
+('PROD-110023', 0.8894, 0.3897, '2026-01-21'),
+('PROD-110023', 0.8777, 1.3312, '2026-01-22'),
+('PROD-110023', 0.8777, -0.0012, '2026-01-23'),
+('PROD-110023', 0.8653, 1.4299, '2026-01-24'),
+('PROD-110023', 0.8659, -0.0679, '2026-01-25'),
+('PROD-110023', 0.8605, 0.6289, '2026-01-26'),
+('PROD-110023', 0.8695, -1.0297, '2026-01-27'),
+('PROD-110023', 0.8765, -0.8000, '2026-01-28'),
+('PROD-110023', 0.8698, 0.7718, '2026-01-29'),
+('PROD-110023', 0.8734, -0.4085, '2026-01-30'),
+('PROD-110023', 0.8627, 1.2399, '2026-01-31'),
+('PROD-110023', 0.8626, 0.0086, '2026-02-01'),
+('PROD-110023', 0.8719, -1.0709, '2026-02-02'),
+('PROD-110023', 0.8679, 0.4570, '2026-02-03'),
+('PROD-110023', 0.8658, 0.2474, '2026-02-04'),
+('PROD-110023', 0.8594, 0.7437, '2026-02-05'),
+('PROD-110023', 0.8487, 1.2656, '2026-02-06'),
+('PROD-110023', 0.8608, -1.4029, '2026-02-07'),
+('PROD-110023', 0.8528, 0.9384, '2026-02-08'),
+('PROD-110023', 0.8534, -0.0670, '2026-02-09'),
+('PROD-110023', 0.8491, 0.5096, '2026-02-10'),
+('PROD-110023', 0.8384, 1.2739, '2026-02-11'),
+('PROD-110023', 0.8405, -0.2530, '2026-02-12'),
+('PROD-110023', 0.8425, -0.2422, '2026-02-13'),
+('PROD-110023', 0.8505, -0.9376, '2026-02-14'),
+('PROD-110023', 0.8575, -0.8190, '2026-02-15'),
+('PROD-110023', 0.8509, 0.7714, '2026-02-16'),
+('PROD-110023', 0.8616, -1.2426, '2026-02-17'),
+('PROD-110023', 0.8577, 0.4583, '2026-02-18'),
+('PROD-110023', 0.8530, 0.5467, '2026-02-19'),
+('PROD-110023', 0.8413, 1.3851, '2026-02-20'),
+('PROD-110023', 0.8325, 1.0552, '2026-02-21'),
+('PROD-110023', 0.8256, 0.8363, '2026-02-22'),
+('PROD-110023', 0.8267, -0.1378, '2026-02-23'),
+('PROD-110023', 0.8362, -1.1410, '2026-02-24'),
+('PROD-110023', 0.8377, -0.1801, '2026-02-25'),
+('PROD-110023', 0.8357, 0.2438, '2026-02-26'),
+('PROD-110023', 0.8367, -0.1183, '2026-02-27'),
+('PROD-110023', 0.8353, 0.1728, '2026-02-28'),
+('PROD-110023', 0.8390, -0.4400, '2026-03-01'),
+('PROD-110023', 0.8376, 0.1632, '2026-03-02'),
+('PROD-110023', 0.8317, 0.7100, '2026-03-03'),
+('PROD-110023', 0.8405, -1.0418, '2026-03-04'),
+('PROD-110023', 0.8460, -0.6483, '2026-03-05'),
+('PROD-110023', 0.8588, -1.4866, '2026-03-06'),
+('PROD-110023', 0.8671, -0.9529, '2026-03-07'),
+('PROD-110023', 0.8593, 0.9020, '2026-03-08'),
+('PROD-110023', 0.8668, -0.8612, '2026-03-09'),
+('PROD-110023', 0.8680, -0.1362, '2026-03-10'),
+('PROD-110023', 0.8617, 0.7369, '2026-03-11'),
+('PROD-110023', 0.8730, -1.2946, '2026-03-12'),
+('PROD-110023', 0.8843, -1.2748, '2026-03-13'),
+('PROD-110023', 0.8738, 1.2059, '2026-03-14'),
+('PROD-110023', 0.8864, -1.4212, '2026-03-15'),
+('PROD-110023', 0.8750, 1.3000, '2026-03-16'),
+('PROD-110023', 0.8710, 0.4641, '2026-03-17'),
+('PROD-110023', 0.8702, 0.0889, '2026-03-18'),
+('PROD-110023', 0.8637, 0.7499, '2026-03-19'),
+('PROD-110023', 0.8646, -0.1079, '2026-03-20'),
+('PROD-110023', 0.8639, 0.0754, '2026-03-21'),
+('PROD-110023', 0.8732, -1.0625, '2026-03-22'),
+('PROD-110023', 0.8680, 0.6042, '2026-03-23'),
+('PROD-110023', 0.8674, 0.0690, '2026-03-24'),
+('PROD-110023', 0.8741, -0.7659, '2026-03-25'),
+('PROD-110023', 0.8723, 0.2031, '2026-03-26'),
+('PROD-110023', 0.8806, -0.9409, '2026-03-27'),
+('PROD-110023', 0.8921, -1.2841, '2026-03-28'),
+('PROD-110023', 0.8883, 0.4254, '2026-03-29'),
+('PROD-110023', 0.8774, 1.2399, '2026-03-30'),
+('PROD-110023', 0.8823, -0.5501, '2026-03-31'),
+('PROD-110023', 0.8786, 0.4213, '2026-04-01'),
+('PROD-110023', 0.8726, 0.6833, '2026-04-02'),
+('PROD-110023', 0.8763, -0.4196, '2026-04-03'),
+('PROD-110023', 0.8825, -0.7008, '2026-04-04'),
+('PROD-110023', 0.8823, 0.0237, '2026-04-05'),
+('PROD-110023', 0.8756, 0.7621, '2026-04-06'),
+('PROD-110023', 0.8799, -0.4898, '2026-04-07'),
+('PROD-110023', 0.8784, 0.1761, '2026-04-08'),
+('PROD-110023', 0.8856, -0.8132, '2026-04-09'),
+('PROD-110023', 0.8812, 0.4983, '2026-04-10'),
+('PROD-110023', 0.8905, -1.0416, '2026-04-11'),
+('PROD-110023', 0.8843, 0.7048, '2026-04-12'),
+('PROD-110023', 0.8780, 0.7206, '2026-04-13'),
+('PROD-110023', 0.8693, 1.0011, '2026-04-14'),
+('PROD-110023', 0.8705, -0.1346, '2026-04-15'),
+('PROD-110023', 0.8582, 1.4345, '2026-04-16'),
+('PROD-110023', 0.8548, 0.4030, '2026-04-17'),
+('PROD-110023', 0.8567, -0.2223, '2026-04-18'),
+('PROD-110023', 0.8447, 1.4237, '2026-04-19'),
+('PROD-110023', 0.8473, -0.3103, '2026-04-20'),
+('PROD-110023', 0.8369, 1.2448, '2026-04-21'),
+('PROD-110023', 0.8348, 0.2567, '2026-04-22'),
+('PROD-110023', 0.8375, -0.3231, '2026-04-23'),
+('PROD-110023', 0.8439, -0.7615, '2026-04-24'),
+('PROD-110023', 0.8390, 0.5820, '2026-04-25'),
+('PROD-110023', 0.8367, 0.2751, '2026-04-26'),
+('PROD-110023', 0.8313, 0.6494, '2026-04-27'),
+('PROD-110023', 0.8281, 0.3812, '2026-04-28'),
+('PROD-110023', 0.8314, -0.3935, '2026-04-29'),
+('PROD-110023', 0.8422, -1.2854, '2026-04-30'),
+('PROD-110023', 0.8370, 0.6172, '2026-05-01'),
+('PROD-110023', 0.8475, -1.2368, '2026-05-02'),
+('PROD-110023', 0.8489, -0.1611, '2026-05-03'),
+('PROD-110023', 0.8442, 0.5554, '2026-05-04'),
+('PROD-110023', 0.8417, 0.2943, '2026-05-05'),
+('PROD-110023', 0.8465, -0.5683, '2026-05-06'),
+('PROD-110023', 0.8344, 1.4545, '2026-05-07'),
+('PROD-110023', 0.8443, -1.1754, '2026-05-08'),
+('PROD-110023', 0.8562, -1.3944, '2026-05-09'),
+('PROD-110023', 0.8675, -1.3078, '2026-05-10'),
+('PROD-110023', 0.8783, -1.2342, '2026-05-11'),
+('PROD-110023', 0.8772, 0.1222, '2026-05-12'),
+('PROD-110023', 0.8780, -0.0948, '2026-05-13'),
+('PROD-110023', 0.8806, -0.2993, '2026-05-14'),
+('PROD-110023', 0.8909, -1.1595, '2026-05-15'),
+('PROD-110023', 0.9014, -1.1626, '2026-05-16'),
+('PROD-110023', 0.8900, 1.2786, '2026-05-17'),
+('PROD-110023', 0.8833, 0.7551, '2026-05-18'),
+('PROD-110023', 0.8812, 0.2432, '2026-05-19'),
+('PROD-110023', 0.8876, -0.7196, '2026-05-20'),
+('PROD-110023', 0.8977, -1.1298, '2026-05-21'),
+('PROD-110023', 0.8925, 0.5805, '2026-05-22'),
+('PROD-110023', 0.8856, 0.7753, '2026-05-23'),
+('PROD-110023', 0.8950, -1.0549, '2026-05-24'),
+('PROD-110023', 0.8856, 1.0622, '2026-05-25'),
+('PROD-110023', 0.8893, -0.4186, '2026-05-26'),
+('PROD-110023', 0.8868, 0.2769, '2026-05-27'),
+('PROD-110023', 0.8913, -0.5014, '2026-05-28'),
+('PROD-110023', 0.9027, -1.2677, '2026-05-29'),
+('PROD-110023', 0.8976, 0.5632, '2026-05-30'),
+('PROD-110023', 0.9050, -0.8176, '2026-05-31'),
+('PROD-110023', 0.9138, -0.9612, '2026-06-01'),
+('PROD-110023', 0.9184, -0.5015, '2026-06-02'),
+('PROD-110023', 0.9076, 1.1866, '2026-06-03'),
+('PROD-110023', 0.9081, -0.0502, '2026-06-04'),
+('PROD-110023', 0.9037, 0.4886, '2026-06-05'),
+('PROD-110023', 0.8956, 0.9068, '2026-06-06'),
+('PROD-110023', 0.8913, 0.4823, '2026-06-07'),
+('PROD-110023', 0.8801, 1.2723, '2026-06-08'),
+('PROD-110023', 0.8749, 0.5901, '2026-06-09'),
+('PROD-110023', 0.8768, -0.2155, '2026-06-10'),
+('PROD-110023', 0.8889, -1.3599, '2026-06-11'),
+('PROD-110023', 0.9023, -1.4819, '2026-06-12'),
+('PROD-110023', 0.8948, 0.8377, '2026-06-13'),
+('PROD-110023', 0.8964, -0.1810, '2026-06-14'),
+('PROD-110023', 0.8894, 0.7849, '2026-06-15'),
+('PROD-110023', 0.9027, -1.4782, '2026-06-16'),
+('PROD-110023', 0.9100, -0.8020, '2026-06-17'),
+('PROD-110023', 0.9008, 1.0179, '2026-06-18'),
+('PROD-110023', 0.8926, 0.9152, '2026-06-19'),
+('PROD-110023', 0.9025, -1.0979, '2026-06-20'),
+('PROD-110023', 0.9000, 0.2752, '2026-06-21'),
+('PROD-110023', 0.9014, -0.1578, '2026-06-22'),
+('PROD-110023', 0.9007, 0.0827, '2026-06-23'),
+('PROD-110023', 0.9035, -0.3147, '2026-06-24'),
+('PROD-110023', 0.8961, 0.8234, '2026-06-25'),
+('PROD-110023', 0.8977, -0.1736, '2026-06-26'),
+('PROD-110023', 0.8986, -0.0967, '2026-06-27'),
+('PROD-110023', 0.8901, 0.9567, '2026-06-28'),
+('PROD-110023', 0.8919, -0.2015, '2026-06-29'),
+('PROD-110023', 0.8971, -0.5781, '2026-06-30'),
+('PROD-110023', 0.8867, 1.1750, '2026-07-01'),
+('PROD-110023', 0.8886, -0.2128, '2026-07-02'),
+('PROD-110023', 0.8803, 0.9445, '2026-07-03'),
+('PROD-110023', 0.8742, 0.6994, '2026-07-04'),
+('PROD-110023', 0.8812, -0.7930, '2026-07-05'),
+('PROD-110023', 0.8864, -0.5814, '2026-07-06'),
+('PROD-110023', 0.8878, -0.1571, '2026-07-07'),
+('PROD-110023', 0.8763, 1.3088, '2026-07-08'),
+('PROD-110023', 0.8808, -0.5110, '2026-07-09'),
+('PROD-110023', 0.8698, 1.2685, '2026-07-10'),
+('PROD-110023', 0.8687, 0.1217, '2026-07-11'),
+('PROD-110023', 0.8669, 0.2134, '2026-07-12'),
+('PROD-110023', 0.8627, 0.4813, '2026-07-13'),
+('PROD-110023', 0.8607, 0.2351, '2026-07-14'),
+('PROD-110023', 0.8498, 1.2801, '2026-07-15'),
+('PROD-110023', 0.8395, 1.2227, '2026-07-16'),
+('PROD-110023', 0.8344, 0.6129, '2026-07-17'),
+('PROD-110023', 0.8432, -1.0490, '2026-07-18'),
+('PROD-110023', 0.8490, -0.6873, '2026-07-19'),
+('PROD-110023', 0.8613, -1.4231, '2026-07-20'),
+('PROD-110023', 0.8551, 0.7248, '2026-07-21'),
+('PROD-110023', 0.8625, -0.8578, '2026-07-22'),
+('PROD-110023', 0.8680, -0.6305, '2026-07-23'),
+('PROD-110023', 0.8778, -1.1200, '2026-07-24'),
+('PROD-110023', 0.8871, -1.0472, '2026-07-25'),
+('PROD-110023', 0.8914, -0.4794, '2026-07-26'),
+('PROD-110023', 0.8821, 1.0490, '2026-07-27'),
+('PROD-110023', 0.8733, 1.0022, '2026-07-28'),
+('PROD-110023', 0.8628, 1.2192, '2026-07-29'),
+('PROD-110023', 0.8655, -0.3173, '2026-07-30'),
+('PROD-110023', 0.8599, 0.6486, '2026-07-31'),
+('PROD-110023', 0.8727, -1.4636, '2026-08-01'),
+('PROD-110023', 0.8737, -0.1190, '2026-08-02'),
+('PROD-110023', 0.8642, 1.0950, '2026-08-03'),
+('PROD-110023', 0.8515, 1.4948, '2026-08-04'),
+('PROD-110023', 0.8440, 0.8875, '2026-08-05'),
+('PROD-110023', 0.8486, -0.5415, '2026-08-06'),
+('PROD-110023', 0.8575, -1.0361, '2026-08-07'),
+('PROD-110023', 0.8497, 0.9145, '2026-08-08'),
+('PROD-110023', 0.8381, 1.3833, '2026-08-09'),
+('PROD-110023', 0.8460, -0.9372, '2026-08-10'),
+('PROD-110023', 0.8431, 0.3405, '2026-08-11'),
+('PROD-110023', 0.8481, -0.5950, '2026-08-12'),
+('PROD-110023', 0.8524, -0.5010, '2026-08-13'),
+('PROD-110023', 0.8433, 1.0833, '2026-08-14'),
+('PROD-110023', 0.8428, 0.0536, '2026-08-15'),
+('PROD-110023', 0.8467, -0.4550, '2026-08-16'),
+('PROD-110023', 0.8434, 0.3896, '2026-08-17'),
+('PROD-110023', 0.8445, -0.1340, '2026-08-18'),
+('PROD-110023', 0.8433, 0.1448, '2026-08-19'),
+('PROD-110023', 0.8375, 0.6942, '2026-08-20'),
+('PROD-110023', 0.8500, -1.4674, '2026-08-21'),
+('PROD-110023', 0.8617, -1.3623, '2026-08-22'),
+('PROD-110023', 0.8692, -0.8590, '2026-08-23'),
+('PROD-110023', 0.8771, -0.9023, '2026-08-24'),
+('PROD-110023', 0.8903, -1.4868, '2026-08-25'),
+('PROD-110023', 0.8987, -0.9340, '2026-08-26'),
+('PROD-110023', 0.8988, -0.0088, '2026-08-27'),
+('PROD-110023', 0.9001, -0.1484, '2026-08-28'),
+('PROD-110023', 0.8968, 0.3636, '2026-08-29'),
+('PROD-110023', 0.9066, -1.0836, '2026-08-30'),
+('PROD-110023', 0.9047, 0.2090, '2026-08-31'),
+('PROD-110023', 0.9036, 0.1222, '2026-09-01'),
+('PROD-110023', 0.9009, 0.3019, '2026-09-02'),
+('PROD-110023', 0.9053, -0.4832, '2026-09-03'),
+('PROD-005827', 0.9611, -1.1553, '2025-09-05'),
+('PROD-005827', 0.9471, 1.4742, '2025-09-06'),
+('PROD-005827', 0.9431, 0.4223, '2025-09-07'),
+('PROD-005827', 0.9542, -1.1644, '2025-09-08'),
+('PROD-005827', 0.9504, 0.4041, '2025-09-09'),
+('PROD-005827', 0.9601, -1.0100, '2025-09-10'),
+('PROD-005827', 0.9723, -1.2570, '2025-09-11'),
+('PROD-005827', 0.9625, 1.0157, '2025-09-12'),
+('PROD-005827', 0.9693, -0.6966, '2025-09-13'),
+('PROD-005827', 0.9700, -0.0766, '2025-09-14'),
+('PROD-005827', 0.9768, -0.6999, '2025-09-15'),
+('PROD-005827', 0.9748, 0.2069, '2025-09-16'),
+('PROD-005827', 0.9735, 0.1336, '2025-09-17'),
+('PROD-005827', 0.9791, -0.5702, '2025-09-18'),
+('PROD-005827', 0.9706, 0.8756, '2025-09-19'),
+('PROD-005827', 0.9759, -0.5450, '2025-09-20'),
+('PROD-005827', 0.9854, -0.9666, '2025-09-21'),
+('PROD-005827', 0.9821, 0.3332, '2025-09-22'),
+('PROD-005827', 0.9860, -0.3946, '2025-09-23'),
+('PROD-005827', 0.9889, -0.2957, '2025-09-24'),
+('PROD-005827', 0.9940, -0.5116, '2025-09-25'),
+('PROD-005827', 0.9893, 0.4752, '2025-09-26'),
+('PROD-005827', 0.9824, 0.7003, '2025-09-27'),
+('PROD-005827', 0.9915, -0.9156, '2025-09-28'),
+('PROD-005827', 0.9774, 1.4375, '2025-09-29'),
+('PROD-005827', 0.9706, 0.7024, '2025-09-30'),
+('PROD-005827', 0.9704, 0.0176, '2025-10-01'),
+('PROD-005827', 0.9599, 1.0938, '2025-10-02'),
+('PROD-005827', 0.9715, -1.1920, '2025-10-03'),
+('PROD-005827', 0.9830, -1.1671, '2025-10-04'),
+('PROD-005827', 0.9743, 0.8946, '2025-10-05'),
+('PROD-005827', 0.9720, 0.2375, '2025-10-06'),
+('PROD-005827', 0.9709, 0.1082, '2025-10-07'),
+('PROD-005827', 0.9713, -0.0377, '2025-10-08'),
+('PROD-005827', 0.9624, 0.9207, '2025-10-09'),
+('PROD-005827', 0.9491, 1.4048, '2025-10-10'),
+('PROD-005827', 0.9597, -1.1039, '2025-10-11'),
+('PROD-005827', 0.9480, 1.2370, '2025-10-12'),
+('PROD-005827', 0.9365, 1.2282, '2025-10-13'),
+('PROD-005827', 0.9378, -0.1408, '2025-10-14'),
+('PROD-005827', 0.9479, -1.0607, '2025-10-15'),
+('PROD-005827', 0.9459, 0.2143, '2025-10-16'),
+('PROD-005827', 0.9461, -0.0237, '2025-10-17'),
+('PROD-005827', 0.9341, 1.2891, '2025-10-18'),
+('PROD-005827', 0.9211, 1.4133, '2025-10-19'),
+('PROD-005827', 0.9204, 0.0807, '2025-10-20'),
+('PROD-005827', 0.9086, 1.3014, '2025-10-21'),
+('PROD-005827', 0.8998, 0.9731, '2025-10-22'),
+('PROD-005827', 0.9012, -0.1517, '2025-10-23'),
+('PROD-005827', 0.8937, 0.8359, '2025-10-24'),
+('PROD-005827', 0.8852, 0.9565, '2025-10-25'),
+('PROD-005827', 0.8768, 0.9531, '2025-10-26'),
+('PROD-005827', 0.8698, 0.8035, '2025-10-27'),
+('PROD-005827', 0.8643, 0.6420, '2025-10-28'),
+('PROD-005827', 0.8679, -0.4131, '2025-10-29'),
+('PROD-005827', 0.8775, -1.0896, '2025-10-30'),
+('PROD-005827', 0.8843, -0.7661, '2025-10-31'),
+('PROD-005827', 0.8867, -0.2740, '2025-11-01'),
+('PROD-005827', 0.8996, -1.4364, '2025-11-02'),
+('PROD-005827', 0.9051, -0.6109, '2025-11-03'),
+('PROD-005827', 0.9177, -1.3761, '2025-11-04'),
+('PROD-005827', 0.9159, 0.1980, '2025-11-05'),
+('PROD-005827', 0.9079, 0.8844, '2025-11-06'),
+('PROD-005827', 0.9102, -0.2537, '2025-11-07'),
+('PROD-005827', 0.9053, 0.5379, '2025-11-08'),
+('PROD-005827', 0.9034, 0.2147, '2025-11-09'),
+('PROD-005827', 0.8959, 0.8412, '2025-11-10'),
+('PROD-005827', 0.8889, 0.7875, '2025-11-11'),
+('PROD-005827', 0.8808, 0.9153, '2025-11-12'),
+('PROD-005827', 0.8884, -0.8527, '2025-11-13'),
+('PROD-005827', 0.8942, -0.6450, '2025-11-14'),
+('PROD-005827', 0.9036, -1.0376, '2025-11-15'),
+('PROD-005827', 0.8967, 0.7682, '2025-11-16'),
+('PROD-005827', 0.8857, 1.2415, '2025-11-17'),
+('PROD-005827', 0.8779, 0.8919, '2025-11-18'),
+('PROD-005827', 0.8845, -0.7480, '2025-11-19'),
+('PROD-005827', 0.8737, 1.2387, '2025-11-20'),
+('PROD-005827', 0.8835, -1.1115, '2025-11-21'),
+('PROD-005827', 0.8842, -0.0806, '2025-11-22'),
+('PROD-005827', 0.8799, 0.4942, '2025-11-23'),
+('PROD-005827', 0.8851, -0.5922, '2025-11-24'),
+('PROD-005827', 0.8744, 1.2183, '2025-11-25'),
+('PROD-005827', 0.8846, -1.1550, '2025-11-26'),
+('PROD-005827', 0.8962, -1.2895, '2025-11-27'),
+('PROD-005827', 0.9006, -0.4915, '2025-11-28'),
+('PROD-005827', 0.8940, 0.7374, '2025-11-29'),
+('PROD-005827', 0.8869, 0.8037, '2025-11-30'),
+('PROD-005827', 0.8839, 0.3416, '2025-12-01'),
+('PROD-005827', 0.8719, 1.3759, '2025-12-02'),
+('PROD-005827', 0.8603, 1.3518, '2025-12-03'),
+('PROD-005827', 0.8567, 0.4247, '2025-12-04'),
+('PROD-005827', 0.8677, -1.2623, '2025-12-05'),
+('PROD-005827', 0.8621, 0.6554, '2025-12-06'),
+('PROD-005827', 0.8540, 0.9445, '2025-12-07'),
+('PROD-005827', 0.8557, -0.1933, '2025-12-08'),
+('PROD-005827', 0.8472, 0.9989, '2025-12-09'),
+('PROD-005827', 0.8504, -0.3716, '2025-12-10'),
+('PROD-005827', 0.8416, 1.0435, '2025-12-11'),
+('PROD-005827', 0.8325, 1.0905, '2025-12-12'),
+('PROD-005827', 0.8344, -0.2251, '2025-12-13'),
+('PROD-005827', 0.8257, 1.0585, '2025-12-14'),
+('PROD-005827', 0.8161, 1.1811, '2025-12-15'),
+('PROD-005827', 0.8102, 0.7238, '2025-12-16'),
+('PROD-005827', 0.8210, -1.3147, '2025-12-17'),
+('PROD-005827', 0.8215, -0.0589, '2025-12-18'),
+('PROD-005827', 0.8271, -0.6762, '2025-12-19'),
+('PROD-005827', 0.8294, -0.2829, '2025-12-20'),
+('PROD-005827', 0.8207, 1.0570, '2025-12-21'),
+('PROD-005827', 0.8273, -0.8034, '2025-12-22'),
+('PROD-005827', 0.8380, -1.2812, '2025-12-23'),
+('PROD-005827', 0.8273, 1.2899, '2025-12-24'),
+('PROD-005827', 0.8172, 1.2362, '2025-12-25'),
+('PROD-005827', 0.8160, 0.1444, '2025-12-26'),
+('PROD-005827', 0.8160, -0.0051, '2025-12-27'),
+('PROD-005827', 0.8151, 0.1097, '2025-12-28'),
+('PROD-005827', 0.8258, -1.2944, '2025-12-29'),
+('PROD-005827', 0.8246, 0.1510, '2025-12-30'),
+('PROD-005827', 0.8229, 0.2032, '2025-12-31'),
+('PROD-005827', 0.8156, 0.8990, '2026-01-01'),
+('PROD-005827', 0.8083, 0.9042, '2026-01-02'),
+('PROD-005827', 0.8154, -0.8653, '2026-01-03'),
+('PROD-005827', 0.8041, 1.3990, '2026-01-04'),
+('PROD-005827', 0.7964, 0.9703, '2026-01-05'),
+('PROD-005827', 0.7887, 0.9790, '2026-01-06'),
+('PROD-005827', 0.7965, -0.9769, '2026-01-07'),
+('PROD-005827', 0.7937, 0.3579, '2026-01-08'),
+('PROD-005827', 0.7866, 0.9008, '2026-01-09'),
+('PROD-005827', 0.7868, -0.0253, '2026-01-10'),
+('PROD-005827', 0.7945, -0.9667, '2026-01-11'),
+('PROD-005827', 0.7994, -0.6112, '2026-01-12'),
+('PROD-005827', 0.8051, -0.7126, '2026-01-13'),
+('PROD-005827', 0.8135, -1.0284, '2026-01-14'),
+('PROD-005827', 0.8241, -1.2821, '2026-01-15'),
+('PROD-005827', 0.8218, 0.2837, '2026-01-16'),
+('PROD-005827', 0.8162, 0.6914, '2026-01-17'),
+('PROD-005827', 0.8143, 0.2387, '2026-01-18'),
+('PROD-005827', 0.8242, -1.1979, '2026-01-19'),
+('PROD-005827', 0.8254, -0.1462, '2026-01-20'),
+('PROD-005827', 0.8267, -0.1593, '2026-01-21'),
+('PROD-005827', 0.8188, 0.9686, '2026-01-22'),
+('PROD-005827', 0.8093, 1.1739, '2026-01-23'),
+('PROD-005827', 0.8087, 0.0714, '2026-01-24'),
+('PROD-005827', 0.8206, -1.4543, '2026-01-25'),
+('PROD-005827', 0.8257, -0.6154, '2026-01-26'),
+('PROD-005827', 0.8301, -0.5266, '2026-01-27'),
+('PROD-005827', 0.8425, -1.4719, '2026-01-28'),
+('PROD-005827', 0.8547, -1.4316, '2026-01-29'),
+('PROD-005827', 0.8464, 0.9798, '2026-01-30'),
+('PROD-005827', 0.8429, 0.4210, '2026-01-31'),
+('PROD-005827', 0.8537, -1.2637, '2026-02-01'),
+('PROD-005827', 0.8538, -0.0170, '2026-02-02'),
+('PROD-005827', 0.8424, 1.3555, '2026-02-03'),
+('PROD-005827', 0.8336, 1.0545, '2026-02-04'),
+('PROD-005827', 0.8291, 0.5438, '2026-02-05'),
+('PROD-005827', 0.8273, 0.2133, '2026-02-06'),
+('PROD-005827', 0.8283, -0.1167, '2026-02-07'),
+('PROD-005827', 0.8348, -0.7807, '2026-02-08'),
+('PROD-005827', 0.8400, -0.6181, '2026-02-09'),
+('PROD-005827', 0.8357, 0.5161, '2026-02-10'),
+('PROD-005827', 0.8239, 1.4339, '2026-02-11'),
+('PROD-005827', 0.8214, 0.2995, '2026-02-12'),
+('PROD-005827', 0.8186, 0.3407, '2026-02-13'),
+('PROD-005827', 0.8295, -1.3158, '2026-02-14'),
+('PROD-005827', 0.8380, -1.0186, '2026-02-15'),
+('PROD-005827', 0.8406, -0.3131, '2026-02-16'),
+('PROD-005827', 0.8330, 0.9149, '2026-02-17'),
+('PROD-005827', 0.8347, -0.2025, '2026-02-18'),
+('PROD-005827', 0.8295, 0.6269, '2026-02-19'),
+('PROD-005827', 0.8392, -1.1571, '2026-02-20'),
+('PROD-005827', 0.8420, -0.3270, '2026-02-21'),
+('PROD-005827', 0.8506, -1.0075, '2026-02-22'),
+('PROD-005827', 0.8466, 0.4698, '2026-02-23'),
+('PROD-005827', 0.8593, -1.4826, '2026-02-24'),
+('PROD-005827', 0.8485, 1.2744, '2026-02-25'),
+('PROD-005827', 0.8472, 0.1565, '2026-02-26'),
+('PROD-005827', 0.8356, 1.3836, '2026-02-27'),
+('PROD-005827', 0.8463, -1.2620, '2026-02-28'),
+('PROD-005827', 0.8451, 0.1472, '2026-03-01'),
+('PROD-005827', 0.8558, -1.2537, '2026-03-02'),
+('PROD-005827', 0.8565, -0.0778, '2026-03-03'),
+('PROD-005827', 0.8650, -0.9848, '2026-03-04'),
+('PROD-005827', 0.8549, 1.1815, '2026-03-05'),
+('PROD-005827', 0.8676, -1.4647, '2026-03-06'),
+('PROD-005827', 0.8798, -1.3859, '2026-03-07'),
+('PROD-005827', 0.8782, 0.1856, '2026-03-08'),
+('PROD-005827', 0.8776, 0.0631, '2026-03-09'),
+('PROD-005827', 0.8756, 0.2275, '2026-03-10'),
+('PROD-005827', 0.8743, 0.1439, '2026-03-11'),
+('PROD-005827', 0.8726, 0.1980, '2026-03-12'),
+('PROD-005827', 0.8652, 0.8600, '2026-03-13'),
+('PROD-005827', 0.8709, -0.6516, '2026-03-14'),
+('PROD-005827', 0.8660, 0.5686, '2026-03-15'),
+('PROD-005827', 0.8783, -1.3988, '2026-03-16'),
+('PROD-005827', 0.8907, -1.3928, '2026-03-17'),
+('PROD-005827', 0.9006, -1.1001, '2026-03-18'),
+('PROD-005827', 0.9132, -1.3751, '2026-03-19'),
+('PROD-005827', 0.9086, 0.5078, '2026-03-20'),
+('PROD-005827', 0.9083, 0.0292, '2026-03-21'),
+('PROD-005827', 0.9107, -0.2597, '2026-03-22'),
+('PROD-005827', 0.9085, 0.2395, '2026-03-23'),
+('PROD-005827', 0.9085, -0.0041, '2026-03-24'),
+('PROD-005827', 0.8991, 1.0503, '2026-03-25'),
+('PROD-005827', 0.8936, 0.6180, '2026-03-26'),
+('PROD-005827', 0.9019, -0.9220, '2026-03-27'),
+('PROD-005827', 0.9093, -0.8184, '2026-03-28'),
+('PROD-005827', 0.9222, -1.3940, '2026-03-29'),
+('PROD-005827', 0.9251, -0.3180, '2026-03-30'),
+('PROD-005827', 0.9382, -1.3924, '2026-03-31'),
+('PROD-005827', 0.9475, -0.9805, '2026-04-01'),
+('PROD-005827', 0.9610, -1.4007, '2026-04-02'),
+('PROD-005827', 0.9735, -1.2853, '2026-04-03'),
+('PROD-005827', 0.9614, 1.2592, '2026-04-04'),
+('PROD-005827', 0.9573, 0.4232, '2026-04-05'),
+('PROD-005827', 0.9434, 1.4717, '2026-04-06'),
+('PROD-005827', 0.9437, -0.0280, '2026-04-07'),
+('PROD-005827', 0.9495, -0.6099, '2026-04-08'),
+('PROD-005827', 0.9578, -0.8658, '2026-04-09'),
+('PROD-005827', 0.9645, -0.6955, '2026-04-10'),
+('PROD-005827', 0.9662, -0.1762, '2026-04-11'),
+('PROD-005827', 0.9800, -1.4076, '2026-04-12'),
+('PROD-005827', 0.9659, 1.4614, '2026-04-13'),
+('PROD-005827', 0.9519, 1.4735, '2026-04-14'),
+('PROD-005827', 0.9515, 0.0378, '2026-04-15'),
+('PROD-005827', 0.9475, 0.4169, '2026-04-16'),
+('PROD-005827', 0.9567, -0.9660, '2026-04-17'),
+('PROD-005827', 0.9555, 0.1259, '2026-04-18'),
+('PROD-005827', 0.9480, 0.7876, '2026-04-19'),
+('PROD-005827', 0.9407, 0.7794, '2026-04-20'),
+('PROD-005827', 0.9548, -1.4788, '2026-04-21'),
+('PROD-005827', 0.9669, -1.2478, '2026-04-22'),
+('PROD-005827', 0.9765, -0.9822, '2026-04-23'),
+('PROD-005827', 0.9653, 1.1647, '2026-04-24'),
+('PROD-005827', 0.9559, 0.9849, '2026-04-25'),
+('PROD-005827', 0.9698, -1.4304, '2026-04-26'),
+('PROD-005827', 0.9804, -1.0835, '2026-04-27'),
+('PROD-005827', 0.9938, -1.3478, '2026-04-28'),
+('PROD-005827', 0.9839, 1.0061, '2026-04-29'),
+('PROD-005827', 0.9885, -0.4610, '2026-04-30'),
+('PROD-005827', 0.9809, 0.7777, '2026-05-01'),
+('PROD-005827', 0.9914, -1.0630, '2026-05-02'),
+('PROD-005827', 0.9919, -0.0494, '2026-05-03'),
+('PROD-005827', 0.9929, -0.1036, '2026-05-04'),
+('PROD-005827', 0.9874, 0.5601, '2026-05-05'),
+('PROD-005827', 1.0021, -1.4656, '2026-05-06'),
+('PROD-005827', 1.0063, -0.4173, '2026-05-07'),
+('PROD-005827', 1.0045, 0.1752, '2026-05-08'),
+('PROD-005827', 1.0098, -0.5296, '2026-05-09'),
+('PROD-005827', 1.0063, 0.3506, '2026-05-10'),
+('PROD-005827', 1.0058, 0.0523, '2026-05-11'),
+('PROD-005827', 1.0030, 0.2788, '2026-05-12'),
+('PROD-005827', 1.0170, -1.3809, '2026-05-13'),
+('PROD-005827', 1.0222, -0.5107, '2026-05-14'),
+('PROD-005827', 1.0100, 1.2092, '2026-05-15'),
+('PROD-005827', 1.0207, -1.0459, '2026-05-16'),
+('PROD-005827', 1.0168, 0.3837, '2026-05-17'),
+('PROD-005827', 1.0193, -0.2488, '2026-05-18'),
+('PROD-005827', 1.0130, 0.6216, '2026-05-19'),
+('PROD-005827', 1.0165, -0.3446, '2026-05-20'),
+('PROD-005827', 1.0290, -1.2172, '2026-05-21'),
+('PROD-005827', 1.0387, -0.9344, '2026-05-22'),
+('PROD-005827', 1.0253, 1.3027, '2026-05-23'),
+('PROD-005827', 1.0277, -0.2364, '2026-05-24'),
+('PROD-005827', 1.0428, -1.4434, '2026-05-25'),
+('PROD-005827', 1.0514, -0.8136, '2026-05-26'),
+('PROD-005827', 1.0478, 0.3482, '2026-05-27'),
+('PROD-005827', 1.0607, -1.2133, '2026-05-28'),
+('PROD-005827', 1.0540, 0.6386, '2026-05-29'),
+('PROD-005827', 1.0494, 0.4354, '2026-05-30'),
+('PROD-005827', 1.0561, -0.6357, '2026-05-31'),
+('PROD-005827', 1.0636, -0.7039, '2026-06-01'),
+('PROD-005827', 1.0558, 0.7343, '2026-06-02'),
+('PROD-005827', 1.0435, 1.1741, '2026-06-03');
+
+INSERT INTO core_product_nav (product_id, nav, daily_chg_pct, nav_date) VALUES
+('PROD-005827', 1.0445, -0.0942, '2026-06-04'),
+('PROD-005827', 1.0466, -0.1983, '2026-06-05'),
+('PROD-005827', 1.0331, 1.3068, '2026-06-06'),
+('PROD-005827', 1.0204, 1.2462, '2026-06-07'),
+('PROD-005827', 1.0339, -1.3033, '2026-06-08'),
+('PROD-005827', 1.0489, -1.4265, '2026-06-09'),
+('PROD-005827', 1.0344, 1.4005, '2026-06-10'),
+('PROD-005827', 1.0313, 0.2995, '2026-06-11'),
+('PROD-005827', 1.0181, 1.2938, '2026-06-12'),
+('PROD-005827', 1.0256, -0.7330, '2026-06-13'),
+('PROD-005827', 1.0205, 0.4966, '2026-06-14'),
+('PROD-005827', 1.0169, 0.3511, '2026-06-15'),
+('PROD-005827', 1.0090, 0.7783, '2026-06-16'),
+('PROD-005827', 1.0108, -0.1772, '2026-06-17'),
+('PROD-005827', 1.0089, 0.1900, '2026-06-18'),
+('PROD-005827', 1.0114, -0.2498, '2026-06-19'),
+('PROD-005827', 1.0004, 1.0992, '2026-06-20'),
+('PROD-005827', 0.9986, 0.1833, '2026-06-21'),
+('PROD-005827', 1.0043, -0.5706, '2026-06-22'),
+('PROD-005827', 0.9930, 1.1363, '2026-06-23'),
+('PROD-005827', 0.9805, 1.2716, '2026-06-24'),
+('PROD-005827', 0.9702, 1.0592, '2026-06-25'),
+('PROD-005827', 0.9623, 0.8251, '2026-06-26'),
+('PROD-005827', 0.9701, -0.8064, '2026-06-27'),
+('PROD-005827', 0.9590, 1.1584, '2026-06-28'),
+('PROD-005827', 0.9605, -0.1527, '2026-06-29'),
+('PROD-005827', 0.9711, -1.0888, '2026-06-30'),
+('PROD-005827', 0.9720, -0.0953, '2026-07-01'),
+('PROD-005827', 0.9768, -0.4887, '2026-07-02'),
+('PROD-005827', 0.9736, 0.3281, '2026-07-03'),
+('PROD-005827', 0.9788, -0.5337, '2026-07-04'),
+('PROD-005827', 0.9754, 0.3519, '2026-07-05'),
+('PROD-005827', 0.9716, 0.3879, '2026-07-06'),
+('PROD-005827', 0.9631, 0.8817, '2026-07-07'),
+('PROD-005827', 0.9569, 0.6498, '2026-07-08'),
+('PROD-005827', 0.9561, 0.0836, '2026-07-09'),
+('PROD-005827', 0.9492, 0.7322, '2026-07-10'),
+('PROD-005827', 0.9509, -0.1822, '2026-07-11'),
+('PROD-005827', 0.9370, 1.4874, '2026-07-12'),
+('PROD-005827', 0.9292, 0.8440, '2026-07-13'),
+('PROD-005827', 0.9202, 0.9828, '2026-07-14'),
+('PROD-005827', 0.9197, 0.0554, '2026-07-15'),
+('PROD-005827', 0.9220, -0.2546, '2026-07-16'),
+('PROD-005827', 0.9174, 0.5052, '2026-07-17'),
+('PROD-005827', 0.9283, -1.1740, '2026-07-18'),
+('PROD-005827', 0.9420, -1.4537, '2026-07-19'),
+('PROD-005827', 0.9304, 1.2520, '2026-07-20'),
+('PROD-005827', 0.9345, -0.4349, '2026-07-21'),
+('PROD-005827', 0.9318, 0.2877, '2026-07-22'),
+('PROD-005827', 0.9238, 0.8620, '2026-07-23'),
+('PROD-005827', 0.9105, 1.4610, '2026-07-24'),
+('PROD-005827', 0.9050, 0.6127, '2026-07-25'),
+('PROD-005827', 0.9139, -0.9718, '2026-07-26'),
+('PROD-005827', 0.9085, 0.5963, '2026-07-27'),
+('PROD-005827', 0.9070, 0.1671, '2026-07-28'),
+('PROD-005827', 0.9028, 0.4636, '2026-07-29'),
+('PROD-005827', 0.9026, 0.0227, '2026-07-30'),
+('PROD-005827', 0.9120, -1.0333, '2026-07-31'),
+('PROD-005827', 0.9008, 1.2475, '2026-08-01'),
+('PROD-005827', 0.8998, 0.1147, '2026-08-02'),
+('PROD-005827', 0.9109, -1.2153, '2026-08-03'),
+('PROD-005827', 0.8985, 1.3751, '2026-08-04'),
+('PROD-005827', 0.8867, 1.3325, '2026-08-05'),
+('PROD-005827', 0.8978, -1.2348, '2026-08-06'),
+('PROD-005827', 0.8980, -0.0259, '2026-08-07'),
+('PROD-005827', 0.9026, -0.5148, '2026-08-08'),
+('PROD-005827', 0.9012, 0.1577, '2026-08-09'),
+('PROD-005827', 0.8953, 0.6634, '2026-08-10'),
+('PROD-005827', 0.8992, -0.4307, '2026-08-11'),
+('PROD-005827', 0.8992, -0.0043, '2026-08-12'),
+('PROD-005827', 0.9092, -1.0996, '2026-08-13'),
+('PROD-005827', 0.9037, 0.6050, '2026-08-14'),
+('PROD-005827', 0.9031, 0.0639, '2026-08-15'),
+('PROD-005827', 0.9090, -0.6502, '2026-08-16'),
+('PROD-005827', 0.9093, -0.0351, '2026-08-17'),
+('PROD-005827', 0.9089, 0.0495, '2026-08-18'),
+('PROD-005827', 0.9196, -1.1621, '2026-08-19'),
+('PROD-005827', 0.9313, -1.2575, '2026-08-20'),
+('PROD-005827', 0.9258, 0.5942, '2026-08-21'),
+('PROD-005827', 0.9263, -0.0535, '2026-08-22'),
+('PROD-005827', 0.9356, -0.9974, '2026-08-23'),
+('PROD-005827', 0.9387, -0.3279, '2026-08-24'),
+('PROD-005827', 0.9453, -0.6979, '2026-08-25'),
+('PROD-005827', 0.9553, -1.0452, '2026-08-26'),
+('PROD-005827', 0.9433, 1.2742, '2026-08-27'),
+('PROD-005827', 0.9466, -0.3495, '2026-08-28'),
+('PROD-005827', 0.9511, -0.4705, '2026-08-29'),
+('PROD-005827', 0.9438, 0.7753, '2026-08-30'),
+('PROD-005827', 0.9539, -1.0553, '2026-08-31'),
+('PROD-005827', 0.9468, 0.7464, '2026-09-01'),
+('PROD-005827', 0.9556, -0.9241, '2026-09-02'),
+('PROD-005827', 0.9471, 0.8939, '2026-09-03'),
+('PROD-005828', 1.0214, -0.1397, '2025-09-05'),
+('PROD-005828', 1.0187, 0.2693, '2025-09-06'),
+('PROD-005828', 1.0140, 0.4589, '2025-09-07'),
+('PROD-005828', 1.0041, 0.9818, '2025-09-08'),
+('PROD-005828', 0.9951, 0.9058, '2025-09-09'),
+('PROD-005828', 1.0087, -1.3489, '2025-09-10'),
+('PROD-005828', 1.0147, -0.5900, '2025-09-11'),
+('PROD-005828', 1.0264, -1.1377, '2025-09-12'),
+('PROD-005828', 1.0313, -0.4769, '2025-09-13'),
+('PROD-005828', 1.0468, -1.4783, '2025-09-14'),
+('PROD-005828', 1.0518, -0.4789, '2025-09-15'),
+('PROD-005828', 1.0653, -1.2698, '2025-09-16'),
+('PROD-005828', 1.0704, -0.4770, '2025-09-17'),
+('PROD-005828', 1.0775, -0.6622, '2025-09-18'),
+('PROD-005828', 1.0865, -0.8302, '2025-09-19'),
+('PROD-005828', 1.0764, 0.9387, '2025-09-20'),
+('PROD-005828', 1.0754, 0.0967, '2025-09-21'),
+('PROD-005828', 1.0655, 0.9308, '2025-09-22'),
+('PROD-005828', 1.0672, -0.1582, '2025-09-23'),
+('PROD-005828', 1.0700, -0.2656, '2025-09-24'),
+('PROD-005828', 1.0845, -1.3348, '2025-09-25'),
+('PROD-005828', 1.0909, -0.5898, '2025-09-26'),
+('PROD-005828', 1.0928, -0.1758, '2025-09-27'),
+('PROD-005828', 1.0934, -0.0517, '2025-09-28'),
+('PROD-005828', 1.0819, 1.0626, '2025-09-29'),
+('PROD-005828', 1.0661, 1.4825, '2025-09-30'),
+('PROD-005828', 1.0614, 0.4399, '2025-10-01'),
+('PROD-005828', 1.0764, -1.3920, '2025-10-02'),
+('PROD-005828', 1.0895, -1.2051, '2025-10-03'),
+('PROD-005828', 1.0920, -0.2262, '2025-10-04'),
+('PROD-005828', 1.0770, 1.3882, '2025-10-05'),
+('PROD-005828', 1.0723, 0.4371, '2025-10-06'),
+('PROD-005828', 1.0831, -0.9928, '2025-10-07'),
+('PROD-005828', 1.0942, -1.0163, '2025-10-08'),
+('PROD-005828', 1.0832, 1.0135, '2025-10-09'),
+('PROD-005828', 1.0675, 1.4685, '2025-10-10'),
+('PROD-005828', 1.0764, -0.8261, '2025-10-11'),
+('PROD-005828', 1.0879, -1.0556, '2025-10-12'),
+('PROD-005828', 1.0724, 1.4413, '2025-10-13'),
+('PROD-005828', 1.0859, -1.2414, '2025-10-14'),
+('PROD-005828', 1.0763, 0.8918, '2025-10-15'),
+('PROD-005828', 1.0875, -1.0276, '2025-10-16'),
+('PROD-005828', 1.0772, 0.9573, '2025-10-17'),
+('PROD-005828', 1.0935, -1.4871, '2025-10-18'),
+('PROD-005828', 1.1070, -1.2237, '2025-10-19'),
+('PROD-005828', 1.1193, -1.1000, '2025-10-20'),
+('PROD-005828', 1.1272, -0.7023, '2025-10-21'),
+('PROD-005828', 1.1345, -0.6436, '2025-10-22'),
+('PROD-005828', 1.1238, 0.9543, '2025-10-23'),
+('PROD-005828', 1.1239, -0.0045, '2025-10-24'),
+('PROD-005828', 1.1099, 1.2607, '2025-10-25'),
+('PROD-005828', 1.1145, -0.4135, '2025-10-26'),
+('PROD-005828', 1.1291, -1.2944, '2025-10-27'),
+('PROD-005828', 1.1267, 0.2103, '2025-10-28'),
+('PROD-005828', 1.1419, -1.3313, '2025-10-29'),
+('PROD-005828', 1.1470, -0.4406, '2025-10-30'),
+('PROD-005828', 1.1392, 0.6842, '2025-10-31'),
+('PROD-005828', 1.1561, -1.4637, '2025-11-01'),
+('PROD-005828', 1.1510, 0.4400, '2025-11-02'),
+('PROD-005828', 1.1457, 0.4651, '2025-11-03'),
+('PROD-005828', 1.1593, -1.1725, '2025-11-04'),
+('PROD-005828', 1.1471, 1.0632, '2025-11-05'),
+('PROD-005828', 1.1633, -1.3940, '2025-11-06'),
+('PROD-005828', 1.1604, 0.2508, '2025-11-07'),
+('PROD-005828', 1.1689, -0.7261, '2025-11-08'),
+('PROD-005828', 1.1622, 0.5761, '2025-11-09'),
+('PROD-005828', 1.1630, -0.0667, '2025-11-10'),
+('PROD-005828', 1.1619, 0.0911, '2025-11-11'),
+('PROD-005828', 1.1598, 0.1790, '2025-11-12'),
+('PROD-005828', 1.1541, 0.4961, '2025-11-13'),
+('PROD-005828', 1.1623, -0.7024, '2025-11-14'),
+('PROD-005828', 1.1771, -1.2582, '2025-11-15'),
+('PROD-005828', 1.1760, 0.0918, '2025-11-16'),
+('PROD-005828', 1.1688, 0.6197, '2025-11-17'),
+('PROD-005828', 1.1655, 0.2816, '2025-11-18'),
+('PROD-005828', 1.1660, -0.0420, '2025-11-19'),
+('PROD-005828', 1.1666, -0.0549, '2025-11-20'),
+('PROD-005828', 1.1717, -0.4362, '2025-11-21'),
+('PROD-005828', 1.1801, -0.7141, '2025-11-22'),
+('PROD-005828', 1.1675, 1.0766, '2025-11-23'),
+('PROD-005828', 1.1621, 0.4607, '2025-11-24'),
+('PROD-005828', 1.1732, -0.9477, '2025-11-25'),
+('PROD-005828', 1.1816, -0.7100, '2025-11-26'),
+('PROD-005828', 1.1812, 0.0316, '2025-11-27'),
+('PROD-005828', 1.1923, -0.9340, '2025-11-28'),
+('PROD-005828', 1.1919, 0.0345, '2025-11-29'),
+('PROD-005828', 1.2047, -1.0636, '2025-11-30'),
+('PROD-005828', 1.2203, -1.2758, '2025-12-01'),
+('PROD-005828', 1.2268, -0.5310, '2025-12-02'),
+('PROD-005828', 1.2337, -0.5619, '2025-12-03'),
+('PROD-005828', 1.2326, 0.0869, '2025-12-04'),
+('PROD-005828', 1.2460, -1.0729, '2025-12-05'),
+('PROD-005828', 1.2567, -0.8518, '2025-12-06'),
+('PROD-005828', 1.2517, 0.3971, '2025-12-07'),
+('PROD-005828', 1.2636, -0.9415, '2025-12-08'),
+('PROD-005828', 1.2524, 0.8964, '2025-12-09'),
+('PROD-005828', 1.2550, -0.2104, '2025-12-10'),
+('PROD-005828', 1.2724, -1.3710, '2025-12-11'),
+('PROD-005828', 1.2738, -0.1113, '2025-12-12'),
+('PROD-005828', 1.2769, -0.2452, '2025-12-13'),
+('PROD-005828', 1.2922, -1.1878, '2025-12-14'),
+('PROD-005828', 1.2915, 0.0551, '2025-12-15'),
+('PROD-005828', 1.3053, -1.0575, '2025-12-16'),
+('PROD-005828', 1.3069, -0.1239, '2025-12-17'),
+('PROD-005828', 1.3124, -0.4157, '2025-12-18'),
+('PROD-005828', 1.3125, -0.0103, '2025-12-19'),
+('PROD-005828', 1.3195, -0.5329, '2025-12-20'),
+('PROD-005828', 1.3056, 1.0658, '2025-12-21'),
+('PROD-005828', 1.3065, -0.0679, '2025-12-22'),
+('PROD-005828', 1.2957, 0.8373, '2025-12-23'),
+('PROD-005828', 1.2853, 0.8110, '2025-12-24'),
+('PROD-005828', 1.2757, 0.7544, '2025-12-25'),
+('PROD-005828', 1.2828, -0.5557, '2025-12-26'),
+('PROD-005828', 1.2764, 0.5050, '2025-12-27'),
+('PROD-005828', 1.2720, 0.3431, '2025-12-28'),
+('PROD-005828', 1.2724, -0.0334, '2025-12-29'),
+('PROD-005828', 1.2568, 1.2428, '2025-12-30'),
+('PROD-005828', 1.2563, 0.0433, '2025-12-31'),
+('PROD-005828', 1.2510, 0.4258, '2026-01-01'),
+('PROD-005828', 1.2652, -1.1203, '2026-01-02'),
+('PROD-005828', 1.2625, 0.2174, '2026-01-03'),
+('PROD-005828', 1.2723, -0.7692, '2026-01-04'),
+('PROD-005828', 1.2800, -0.6003, '2026-01-05'),
+('PROD-005828', 1.2743, 0.4464, '2026-01-06'),
+('PROD-005828', 1.2795, -0.4101, '2026-01-07'),
+('PROD-005828', 1.2666, 1.0168, '2026-01-08'),
+('PROD-005828', 1.2569, 0.7739, '2026-01-09'),
+('PROD-005828', 1.2624, -0.4332, '2026-01-10'),
+('PROD-005828', 1.2741, -0.9186, '2026-01-11'),
+('PROD-005828', 1.2625, 0.9179, '2026-01-12'),
+('PROD-005828', 1.2624, 0.0086, '2026-01-13'),
+('PROD-005828', 1.2563, 0.4825, '2026-01-14'),
+('PROD-005828', 1.2705, -1.1168, '2026-01-15'),
+('PROD-005828', 1.2820, -0.8963, '2026-01-16'),
+('PROD-005828', 1.2931, -0.8587, '2026-01-17'),
+('PROD-005828', 1.2825, 0.8278, '2026-01-18'),
+('PROD-005828', 1.2882, -0.4400, '2026-01-19'),
+('PROD-005828', 1.2768, 0.8903, '2026-01-20'),
+('PROD-005828', 1.2961, -1.4927, '2026-01-21'),
+('PROD-005828', 1.2972, -0.0871, '2026-01-22'),
+('PROD-005828', 1.3085, -0.8634, '2026-01-23'),
+('PROD-005828', 1.3243, -1.1906, '2026-01-24'),
+('PROD-005828', 1.3277, -0.2592, '2026-01-25'),
+('PROD-005828', 1.3149, 0.9727, '2026-01-26'),
+('PROD-005828', 1.2996, 1.1754, '2026-01-27'),
+('PROD-005828', 1.2810, 1.4506, '2026-01-28'),
+('PROD-005828', 1.2925, -0.8892, '2026-01-29'),
+('PROD-005828', 1.3028, -0.7937, '2026-01-30'),
+('PROD-005828', 1.3213, -1.4011, '2026-01-31'),
+('PROD-005828', 1.3219, -0.0487, '2026-02-01'),
+('PROD-005828', 1.3096, 0.9411, '2026-02-02'),
+('PROD-005828', 1.3236, -1.0596, '2026-02-03'),
+('PROD-005828', 1.3070, 1.2684, '2026-02-04'),
+('PROD-005828', 1.3154, -0.6373, '2026-02-05'),
+('PROD-005828', 1.3223, -0.5216, '2026-02-06'),
+('PROD-005828', 1.3402, -1.3382, '2026-02-07'),
+('PROD-005828', 1.3303, 0.7425, '2026-02-08'),
+('PROD-005828', 1.3258, 0.3413, '2026-02-09'),
+('PROD-005828', 1.3256, 0.0117, '2026-02-10'),
+('PROD-005828', 1.3436, -1.3392, '2026-02-11'),
+('PROD-005828', 1.3363, 0.5453, '2026-02-12'),
+('PROD-005828', 1.3500, -1.0159, '2026-02-13'),
+('PROD-005828', 1.3393, 0.7962, '2026-02-14'),
+('PROD-005828', 1.3580, -1.3780, '2026-02-15'),
+('PROD-005828', 1.3540, 0.2991, '2026-02-16'),
+('PROD-005828', 1.3533, 0.0545, '2026-02-17'),
+('PROD-005828', 1.3735, -1.4697, '2026-02-18'),
+('PROD-005828', 1.3645, 0.6604, '2026-02-19'),
+('PROD-005828', 1.3765, -0.8695, '2026-02-20'),
+('PROD-005828', 1.3603, 1.1890, '2026-02-21'),
+('PROD-005828', 1.3450, 1.1368, '2026-02-22'),
+('PROD-005828', 1.3376, 0.5568, '2026-02-23'),
+('PROD-005828', 1.3493, -0.8648, '2026-02-24'),
+('PROD-005828', 1.3405, 0.6564, '2026-02-25'),
+('PROD-005828', 1.3326, 0.5908, '2026-02-26'),
+('PROD-005828', 1.3429, -0.7640, '2026-02-27'),
+('PROD-005828', 1.3492, -0.4667, '2026-02-28'),
+('PROD-005828', 1.3510, -0.1342, '2026-03-01'),
+('PROD-005828', 1.3711, -1.4636, '2026-03-02'),
+('PROD-005828', 1.3912, -1.4450, '2026-03-03'),
+('PROD-005828', 1.4043, -0.9342, '2026-03-04'),
+('PROD-005828', 1.4075, -0.2279, '2026-03-05'),
+('PROD-005828', 1.4190, -0.8126, '2026-03-06'),
+('PROD-005828', 1.4326, -0.9464, '2026-03-07'),
+('PROD-005828', 1.4492, -1.1476, '2026-03-08'),
+('PROD-005828', 1.4326, 1.1582, '2026-03-09'),
+('PROD-005828', 1.4168, 1.1156, '2026-03-10'),
+('PROD-005828', 1.4243, -0.5252, '2026-03-11'),
+('PROD-005828', 1.4372, -0.8978, '2026-03-12'),
+('PROD-005828', 1.4537, -1.1323, '2026-03-13'),
+('PROD-005828', 1.4566, -0.2002, '2026-03-14'),
+('PROD-005828', 1.4478, 0.6055, '2026-03-15'),
+('PROD-005828', 1.4325, 1.0688, '2026-03-16'),
+('PROD-005828', 1.4266, 0.4145, '2026-03-17'),
+('PROD-005828', 1.4330, -0.4500, '2026-03-18'),
+('PROD-005828', 1.4470, -0.9683, '2026-03-19'),
+('PROD-005828', 1.4421, 0.3424, '2026-03-20'),
+('PROD-005828', 1.4506, -0.5880, '2026-03-21'),
+('PROD-005828', 1.4570, -0.4374, '2026-03-22'),
+('PROD-005828', 1.4555, 0.1007, '2026-03-23'),
+('PROD-005828', 1.4657, -0.6929, '2026-03-24'),
+('PROD-005828', 1.4489, 1.1627, '2026-03-25'),
+('PROD-005828', 1.4676, -1.2751, '2026-03-26'),
+('PROD-005828', 1.4531, 0.9977, '2026-03-27'),
+('PROD-005828', 1.4318, 1.4891, '2026-03-28'),
+('PROD-005828', 1.4165, 1.0796, '2026-03-29'),
+('PROD-005828', 1.4292, -0.8903, '2026-03-30'),
+('PROD-005828', 1.4090, 1.4370, '2026-03-31'),
+('PROD-005828', 1.4251, -1.1294, '2026-04-01'),
+('PROD-005828', 1.4370, -0.8293, '2026-04-02'),
+('PROD-005828', 1.4189, 1.2747, '2026-04-03'),
+('PROD-005828', 1.4094, 0.6731, '2026-04-04'),
+('PROD-005828', 1.4253, -1.1175, '2026-04-05'),
+('PROD-005828', 1.4307, -0.3759, '2026-04-06'),
+('PROD-005828', 1.4457, -1.0403, '2026-04-07'),
+('PROD-005828', 1.4264, 1.3517, '2026-04-08'),
+('PROD-005828', 1.4433, -1.1728, '2026-04-09'),
+('PROD-005828', 1.4486, -0.3661, '2026-04-10'),
+('PROD-005828', 1.4392, 0.6502, '2026-04-11'),
+('PROD-005828', 1.4316, 0.5315, '2026-04-12'),
+('PROD-005828', 1.4371, -0.3845, '2026-04-13'),
+('PROD-005828', 1.4428, -0.3922, '2026-04-14'),
+('PROD-005828', 1.4636, -1.4184, '2026-04-15'),
+('PROD-005828', 1.4514, 0.8409, '2026-04-16'),
+('PROD-005828', 1.4303, 1.4776, '2026-04-17'),
+('PROD-005828', 1.4355, -0.3649, '2026-04-18'),
+('PROD-005828', 1.4322, 0.2301, '2026-04-19'),
+('PROD-005828', 1.4470, -1.0243, '2026-04-20'),
+('PROD-005828', 1.4286, 1.2874, '2026-04-21'),
+('PROD-005828', 1.4076, 1.4901, '2026-04-22'),
+('PROD-005828', 1.4158, -0.5789, '2026-04-23'),
+('PROD-005828', 1.4235, -0.5426, '2026-04-24'),
+('PROD-005828', 1.4299, -0.4486, '2026-04-25'),
+('PROD-005828', 1.4131, 1.1878, '2026-04-26'),
+('PROD-005828', 1.3935, 1.4064, '2026-04-27'),
+('PROD-005828', 1.3940, -0.0334, '2026-04-28'),
+('PROD-005828', 1.3870, 0.5011, '2026-04-29'),
+('PROD-005828', 1.3710, 1.1690, '2026-04-30'),
+('PROD-005828', 1.3720, -0.0697, '2026-05-01'),
+('PROD-005828', 1.3782, -0.4518, '2026-05-02'),
+('PROD-005828', 1.3860, -0.5640, '2026-05-03'),
+('PROD-005828', 1.4015, -1.1078, '2026-05-04'),
+('PROD-005828', 1.4202, -1.3186, '2026-05-05'),
+('PROD-005828', 1.4062, 0.9921, '2026-05-06'),
+('PROD-005828', 1.4105, -0.3053, '2026-05-07'),
+('PROD-005828', 1.4287, -1.2756, '2026-05-08'),
+('PROD-005828', 1.4315, -0.1989, '2026-05-09'),
+('PROD-005828', 1.4210, 0.7357, '2026-05-10'),
+('PROD-005828', 1.4203, 0.0476, '2026-05-11'),
+('PROD-005828', 1.4037, 1.1822, '2026-05-12'),
+('PROD-005828', 1.3983, 0.3848, '2026-05-13'),
+('PROD-005828', 1.4108, -0.8850, '2026-05-14'),
+('PROD-005828', 1.4006, 0.7266, '2026-05-15'),
+('PROD-005828', 1.4080, -0.5246, '2026-05-16'),
+('PROD-005828', 1.4025, 0.3910, '2026-05-17'),
+('PROD-005828', 1.4003, 0.1558, '2026-05-18'),
+('PROD-005828', 1.4076, -0.5168, '2026-05-19'),
+('PROD-005828', 1.4174, -0.6889, '2026-05-20'),
+('PROD-005828', 1.4112, 0.4371, '2026-05-21'),
+('PROD-005828', 1.4152, -0.2796, '2026-05-22'),
+('PROD-005828', 1.4131, 0.1459, '2026-05-23'),
+('PROD-005828', 1.3959, 1.2338, '2026-05-24'),
+('PROD-005828', 1.3934, 0.1827, '2026-05-25'),
+('PROD-005828', 1.3903, 0.2207, '2026-05-26'),
+('PROD-005828', 1.4044, -1.0043, '2026-05-27'),
+('PROD-005828', 1.4216, -1.2100, '2026-05-28'),
+('PROD-005828', 1.4193, 0.1643, '2026-05-29'),
+('PROD-005828', 1.4324, -0.9177, '2026-05-30'),
+('PROD-005828', 1.4178, 1.0265, '2026-05-31'),
+('PROD-005828', 1.4173, 0.0335, '2026-06-01'),
+('PROD-005828', 1.3994, 1.2796, '2026-06-02'),
+('PROD-005828', 1.4179, -1.3022, '2026-06-03'),
+('PROD-005828', 1.4225, -0.3257, '2026-06-04'),
+('PROD-005828', 1.4414, -1.3143, '2026-06-05'),
+('PROD-005828', 1.4347, 0.4682, '2026-06-06'),
+('PROD-005828', 1.4446, -0.6871, '2026-06-07'),
+('PROD-005828', 1.4379, 0.4628, '2026-06-08'),
+('PROD-005828', 1.4397, -0.1282, '2026-06-09'),
+('PROD-005828', 1.4519, -0.8423, '2026-06-10'),
+('PROD-005828', 1.4478, 0.2857, '2026-06-11'),
+('PROD-005828', 1.4273, 1.4358, '2026-06-12'),
+('PROD-005828', 1.4477, -1.4109, '2026-06-13'),
+('PROD-005828', 1.4472, 0.0361, '2026-06-14'),
+('PROD-005828', 1.4293, 1.2545, '2026-06-15'),
+('PROD-005828', 1.4223, 0.4930, '2026-06-16'),
+('PROD-005828', 1.4299, -0.5297, '2026-06-17'),
+('PROD-005828', 1.4257, 0.2938, '2026-06-18'),
+('PROD-005828', 1.4215, 0.2971, '2026-06-19'),
+('PROD-005828', 1.4193, 0.1554, '2026-06-20'),
+('PROD-005828', 1.3998, 1.3902, '2026-06-21'),
+('PROD-005828', 1.4074, -0.5366, '2026-06-22'),
+('PROD-005828', 1.4177, -0.7253, '2026-06-23'),
+('PROD-005828', 1.4380, -1.4145, '2026-06-24'),
+('PROD-005828', 1.4531, -1.0358, '2026-06-25'),
+('PROD-005828', 1.4345, 1.2986, '2026-06-26'),
+('PROD-005828', 1.4163, 1.2820, '2026-06-27'),
+('PROD-005828', 1.4240, -0.5388, '2026-06-28'),
+('PROD-005828', 1.4279, -0.2705, '2026-06-29'),
+('PROD-005828', 1.4130, 1.0580, '2026-06-30'),
+('PROD-005828', 1.4118, 0.0826, '2026-07-01'),
+('PROD-005828', 1.4114, 0.0300, '2026-07-02'),
+('PROD-005828', 1.4021, 0.6666, '2026-07-03'),
+('PROD-005828', 1.4009, 0.0862, '2026-07-04'),
+('PROD-005828', 1.4134, -0.8833, '2026-07-05'),
+('PROD-005828', 1.4334, -1.3981, '2026-07-06'),
+('PROD-005828', 1.4343, -0.0661, '2026-07-07'),
+('PROD-005828', 1.4428, -0.5925, '2026-07-08'),
+('PROD-005828', 1.4326, 0.7103, '2026-07-09'),
+('PROD-005828', 1.4453, -0.8769, '2026-07-10'),
+('PROD-005828', 1.4247, 1.4439, '2026-07-11'),
+('PROD-005828', 1.4044, 1.4479, '2026-07-12'),
+('PROD-005828', 1.4130, -0.6089, '2026-07-13'),
+('PROD-005828', 1.4067, 0.4496, '2026-07-14'),
+('PROD-005828', 1.4016, 0.3603, '2026-07-15'),
+('PROD-005828', 1.3888, 0.9201, '2026-07-16'),
+('PROD-005828', 1.3853, 0.2558, '2026-07-17'),
+('PROD-005828', 1.3663, 1.3878, '2026-07-18'),
+('PROD-005828', 1.3859, -1.4153, '2026-07-19'),
+('PROD-005828', 1.3883, -0.1728, '2026-07-20'),
+('PROD-005828', 1.3869, 0.1006, '2026-07-21'),
+('PROD-005828', 1.3700, 1.2341, '2026-07-22'),
+('PROD-005828', 1.3593, 0.7878, '2026-07-23'),
+('PROD-005828', 1.3402, 1.4217, '2026-07-24'),
+('PROD-005828', 1.3510, -0.7965, '2026-07-25'),
+('PROD-005828', 1.3364, 1.0938, '2026-07-26'),
+('PROD-005828', 1.3561, -1.4551, '2026-07-27'),
+('PROD-005828', 1.3593, -0.2371, '2026-07-28'),
+('PROD-005828', 1.3520, 0.5422, '2026-07-29'),
+('PROD-005828', 1.3719, -1.4530, '2026-07-30'),
+('PROD-005828', 1.3679, 0.2907, '2026-07-31'),
+('PROD-005828', 1.3557, 0.9001, '2026-08-01'),
+('PROD-005828', 1.3517, 0.2924, '2026-08-02'),
+('PROD-005828', 1.3607, -0.6593, '2026-08-03'),
+('PROD-005828', 1.3491, 0.8597, '2026-08-04'),
+('PROD-005828', 1.3607, -0.8543, '2026-08-05'),
+('PROD-005828', 1.3462, 1.0780, '2026-08-06'),
+('PROD-005828', 1.3434, 0.2088, '2026-08-07'),
+('PROD-005828', 1.3576, -1.0437, '2026-08-08'),
+('PROD-005828', 1.3494, 0.6064, '2026-08-09'),
+('PROD-005828', 1.3431, 0.4703, '2026-08-10'),
+('PROD-005828', 1.3505, -0.5480, '2026-08-11'),
+('PROD-005828', 1.3358, 1.1039, '2026-08-12'),
+('PROD-005828', 1.3277, 0.6113, '2026-08-13'),
+('PROD-005828', 1.3148, 0.9849, '2026-08-14'),
+('PROD-005828', 1.3028, 0.9192, '2026-08-15'),
+('PROD-005828', 1.3187, -1.2068, '2026-08-16'),
+('PROD-005828', 1.3359, -1.2859, '2026-08-17'),
+('PROD-005828', 1.3246, 0.8504, '2026-08-18'),
+('PROD-005828', 1.3444, -1.4711, '2026-08-19'),
+('PROD-005828', 1.3374, 0.5228, '2026-08-20'),
+('PROD-005828', 1.3192, 1.3760, '2026-08-21'),
+('PROD-005828', 1.3012, 1.3851, '2026-08-22'),
+('PROD-005828', 1.3110, -0.7463, '2026-08-23'),
+('PROD-005828', 1.3146, -0.2764, '2026-08-24'),
+('PROD-005828', 1.3039, 0.8185, '2026-08-25'),
+('PROD-005828', 1.3003, 0.2765, '2026-08-26'),
+('PROD-005828', 1.3050, -0.3620, '2026-08-27'),
+('PROD-005828', 1.3241, -1.4404, '2026-08-28'),
+('PROD-005828', 1.3390, -1.1110, '2026-08-29'),
+('PROD-005828', 1.3344, 0.3469, '2026-08-30'),
+('PROD-005828', 1.3428, -0.6288, '2026-08-31'),
+('PROD-005828', 1.3397, 0.2339, '2026-09-01'),
+('PROD-005828', 1.3449, -0.3900, '2026-09-02'),
+('PROD-005828', 1.3392, 0.4281, '2026-09-03'),
+('PROD-161725', 1.0644, -1.3539, '2025-09-05'),
+('PROD-161725', 1.0488, 1.4888, '2025-09-06'),
+('PROD-161725', 1.0520, -0.3020, '2025-09-07'),
+('PROD-161725', 1.0534, -0.1310, '2025-09-08'),
+('PROD-161725', 1.0557, -0.2148, '2025-09-09'),
+('PROD-161725', 1.0470, 0.8278, '2025-09-10'),
+('PROD-161725', 1.0573, -0.9771, '2025-09-11'),
+('PROD-161725', 1.0577, -0.0333, '2025-09-12'),
+('PROD-161725', 1.0630, -0.4983, '2025-09-13'),
+('PROD-161725', 1.0633, -0.0299, '2025-09-14'),
+('PROD-161725', 1.0643, -0.0947, '2025-09-15'),
+('PROD-161725', 1.0733, -0.8363, '2025-09-16'),
+('PROD-161725', 1.0709, 0.2233, '2025-09-17'),
+('PROD-161725', 1.0807, -0.9099, '2025-09-18'),
+('PROD-161725', 1.0665, 1.3344, '2025-09-19'),
+('PROD-161725', 1.0517, 1.4034, '2025-09-20'),
+('PROD-161725', 1.0495, 0.2058, '2025-09-21'),
+('PROD-161725', 1.0421, 0.7095, '2025-09-22'),
+('PROD-161725', 1.0328, 0.8960, '2025-09-23'),
+('PROD-161725', 1.0397, -0.6614, '2025-09-24'),
+('PROD-161725', 1.0265, 1.2852, '2025-09-25'),
+('PROD-161725', 1.0253, 0.1206, '2025-09-26'),
+('PROD-161725', 1.0198, 0.5428, '2025-09-27'),
+('PROD-161725', 1.0168, 0.2953, '2025-09-28'),
+('PROD-161725', 1.0181, -0.1293, '2025-09-29'),
+('PROD-161725', 1.0059, 1.2171, '2025-09-30'),
+('PROD-161725', 1.0089, -0.3017, '2025-10-01'),
+('PROD-161725', 1.0185, -0.9409, '2025-10-02'),
+('PROD-161725', 1.0150, 0.3477, '2025-10-03'),
+('PROD-161725', 1.0088, 0.6176, '2025-10-04'),
+('PROD-161725', 1.0022, 0.6568, '2025-10-05'),
+('PROD-161725', 1.0145, -1.2100, '2025-10-06'),
+('PROD-161725', 1.0217, -0.7011, '2025-10-07'),
+('PROD-161725', 1.0273, -0.5476, '2025-10-08'),
+('PROD-161725', 1.0268, 0.0511, '2025-10-09'),
+('PROD-161725', 1.0317, -0.4791, '2025-10-10'),
+('PROD-161725', 1.0254, 0.6124, '2025-10-11'),
+('PROD-161725', 1.0385, -1.2653, '2025-10-12'),
+('PROD-161725', 1.0472, -0.8312, '2025-10-13'),
+('PROD-161725', 1.0615, -1.3494, '2025-10-14'),
+('PROD-161725', 1.0538, 0.7304, '2025-10-15'),
+('PROD-161725', 1.0449, 0.8502, '2025-10-16'),
+('PROD-161725', 1.0459, -0.0972, '2025-10-17'),
+('PROD-161725', 1.0555, -0.9111, '2025-10-18');
+
+INSERT INTO core_product_nav (product_id, nav, daily_chg_pct, nav_date) VALUES
+('PROD-161725', 1.0424, 1.2580, '2025-10-19'),
+('PROD-161725', 1.0455, -0.3009, '2025-10-20'),
+('PROD-161725', 1.0422, 0.3176, '2025-10-21'),
+('PROD-161725', 1.0545, -1.1695, '2025-10-22'),
+('PROD-161725', 1.0481, 0.6118, '2025-10-23'),
+('PROD-161725', 1.0343, 1.3357, '2025-10-24'),
+('PROD-161725', 1.0391, -0.4604, '2025-10-25'),
+('PROD-161725', 1.0379, 0.1134, '2025-10-26'),
+('PROD-161725', 1.0480, -0.9650, '2025-10-27'),
+('PROD-161725', 1.0424, 0.5391, '2025-10-28'),
+('PROD-161725', 1.0441, -0.1667, '2025-10-29'),
+('PROD-161725', 1.0417, 0.2304, '2025-10-30'),
+('PROD-161725', 1.0369, 0.4652, '2025-10-31'),
+('PROD-161725', 1.0485, -1.1065, '2025-11-01'),
+('PROD-161725', 1.0549, -0.6030, '2025-11-02'),
+('PROD-161725', 1.0399, 1.4400, '2025-11-03'),
+('PROD-161725', 1.0502, -0.9822, '2025-11-04'),
+('PROD-161725', 1.0489, 0.1205, '2025-11-05'),
+('PROD-161725', 1.0360, 1.2431, '2025-11-06'),
+('PROD-161725', 1.0226, 1.3125, '2025-11-07'),
+('PROD-161725', 1.0266, -0.3856, '2025-11-08'),
+('PROD-161725', 1.0120, 1.4396, '2025-11-09'),
+('PROD-161725', 1.0034, 0.8539, '2025-11-10'),
+('PROD-161725', 1.0168, -1.3169, '2025-11-11'),
+('PROD-161725', 1.0282, -1.1096, '2025-11-12'),
+('PROD-161725', 1.0388, -1.0219, '2025-11-13'),
+('PROD-161725', 1.0319, 0.6704, '2025-11-14'),
+('PROD-161725', 1.0231, 0.8628, '2025-11-15'),
+('PROD-161725', 1.0275, -0.4313, '2025-11-16'),
+('PROD-161725', 1.0405, -1.2508, '2025-11-17'),
+('PROD-161725', 1.0562, -1.4873, '2025-11-18'),
+('PROD-161725', 1.0561, 0.0119, '2025-11-19'),
+('PROD-161725', 1.0454, 1.0211, '2025-11-20'),
+('PROD-161725', 1.0434, 0.1892, '2025-11-21'),
+('PROD-161725', 1.0492, -0.5486, '2025-11-22'),
+('PROD-161725', 1.0480, 0.1150, '2025-11-23'),
+('PROD-161725', 1.0453, 0.2556, '2025-11-24'),
+('PROD-161725', 1.0530, -0.7343, '2025-11-25'),
+('PROD-161725', 1.0430, 0.9624, '2025-11-26'),
+('PROD-161725', 1.0378, 0.5040, '2025-11-27'),
+('PROD-161725', 1.0523, -1.3819, '2025-11-28'),
+('PROD-161725', 1.0644, -1.1364, '2025-11-29'),
+('PROD-161725', 1.0685, -0.3863, '2025-11-30'),
+('PROD-161725', 1.0714, -0.2663, '2025-12-01'),
+('PROD-161725', 1.0719, -0.0442, '2025-12-02'),
+('PROD-161725', 1.0632, 0.8230, '2025-12-03'),
+('PROD-161725', 1.0724, -0.8555, '2025-12-04'),
+('PROD-161725', 1.0663, 0.5698, '2025-12-05'),
+('PROD-161725', 1.0563, 0.9420, '2025-12-06'),
+('PROD-161725', 1.0682, -1.1168, '2025-12-07'),
+('PROD-161725', 1.0645, 0.3492, '2025-12-08'),
+('PROD-161725', 1.0679, -0.3198, '2025-12-09'),
+('PROD-161725', 1.0619, 0.5692, '2025-12-10'),
+('PROD-161725', 1.0481, 1.3125, '2025-12-11'),
+('PROD-161725', 1.0496, -0.1412, '2025-12-12'),
+('PROD-161725', 1.0645, -1.4043, '2025-12-13'),
+('PROD-161725', 1.0785, -1.2946, '2025-12-14'),
+('PROD-161725', 1.0785, -0.0007, '2025-12-15'),
+('PROD-161725', 1.0754, 0.2864, '2025-12-16'),
+('PROD-161725', 1.0833, -0.7257, '2025-12-17'),
+('PROD-161725', 1.0863, -0.2748, '2025-12-18'),
+('PROD-161725', 1.0762, 0.9356, '2025-12-19'),
+('PROD-161725', 1.0893, -1.2068, '2025-12-20'),
+('PROD-161725', 1.0951, -0.5336, '2025-12-21'),
+('PROD-161725', 1.1059, -0.9782, '2025-12-22'),
+('PROD-161725', 1.0907, 1.3955, '2025-12-23'),
+('PROD-161725', 1.0794, 1.0514, '2025-12-24'),
+('PROD-161725', 1.0659, 1.2704, '2025-12-25'),
+('PROD-161725', 1.0804, -1.3445, '2025-12-26'),
+('PROD-161725', 1.0715, 0.8351, '2025-12-27'),
+('PROD-161725', 1.0664, 0.4829, '2025-12-28'),
+('PROD-161725', 1.0529, 1.2801, '2025-12-29'),
+('PROD-161725', 1.0655, -1.1835, '2025-12-30'),
+('PROD-161725', 1.0648, 0.0649, '2025-12-31'),
+('PROD-161725', 1.0785, -1.2668, '2026-01-01'),
+('PROD-161725', 1.0724, 0.5664, '2026-01-02'),
+('PROD-161725', 1.0881, -1.4402, '2026-01-03'),
+('PROD-161725', 1.0792, 0.8254, '2026-01-04'),
+('PROD-161725', 1.0897, -0.9665, '2026-01-05'),
+('PROD-161725', 1.1007, -1.0013, '2026-01-06'),
+('PROD-161725', 1.1091, -0.7532, '2026-01-07'),
+('PROD-161725', 1.1046, 0.4066, '2026-01-08'),
+('PROD-161725', 1.1097, -0.4584, '2026-01-09'),
+('PROD-161725', 1.0957, 1.2823, '2026-01-10'),
+('PROD-161725', 1.1050, -0.8414, '2026-01-11'),
+('PROD-161725', 1.0965, 0.7796, '2026-01-12'),
+('PROD-161725', 1.1104, -1.2476, '2026-01-13'),
+('PROD-161725', 1.1218, -1.0202, '2026-01-14'),
+('PROD-161725', 1.1132, 0.7719, '2026-01-15'),
+('PROD-161725', 1.1124, 0.0704, '2026-01-16'),
+('PROD-161725', 1.1047, 0.7013, '2026-01-17'),
+('PROD-161725', 1.0959, 0.8072, '2026-01-18'),
+('PROD-161725', 1.0943, 0.1440, '2026-01-19'),
+('PROD-161725', 1.0920, 0.2091, '2026-01-20'),
+('PROD-161725', 1.0977, -0.5231, '2026-01-21'),
+('PROD-161725', 1.1095, -1.0638, '2026-01-22'),
+('PROD-161725', 1.0960, 1.2308, '2026-01-23'),
+('PROD-161725', 1.1047, -0.7870, '2026-01-24'),
+('PROD-161725', 1.1171, -1.1105, '2026-01-25'),
+('PROD-161725', 1.1183, -0.1069, '2026-01-26'),
+('PROD-161725', 1.1308, -1.1011, '2026-01-27'),
+('PROD-161725', 1.1410, -0.8947, '2026-01-28'),
+('PROD-161725', 1.1398, 0.1092, '2026-01-29'),
+('PROD-161725', 1.1561, -1.4061, '2026-01-30'),
+('PROD-161725', 1.1605, -0.3789, '2026-01-31'),
+('PROD-161725', 1.1640, -0.3023, '2026-02-01'),
+('PROD-161725', 1.1493, 1.2784, '2026-02-02'),
+('PROD-161725', 1.1578, -0.7360, '2026-02-03'),
+('PROD-161725', 1.1663, -0.7312, '2026-02-04'),
+('PROD-161725', 1.1790, -1.0750, '2026-02-05'),
+('PROD-161725', 1.1641, 1.2778, '2026-02-06'),
+('PROD-161725', 1.1769, -1.0882, '2026-02-07'),
+('PROD-161725', 1.1892, -1.0367, '2026-02-08'),
+('PROD-161725', 1.1952, -0.5040, '2026-02-09'),
+('PROD-161725', 1.2004, -0.4340, '2026-02-10'),
+('PROD-161725', 1.1983, 0.1738, '2026-02-11'),
+('PROD-161725', 1.1992, -0.0760, '2026-02-12'),
+('PROD-161725', 1.2142, -1.2379, '2026-02-13'),
+('PROD-161725', 1.2207, -0.5364, '2026-02-14'),
+('PROD-161725', 1.2195, 0.0946, '2026-02-15'),
+('PROD-161725', 1.2146, 0.3999, '2026-02-16'),
+('PROD-161725', 1.2172, -0.2118, '2026-02-17'),
+('PROD-161725', 1.2314, -1.1553, '2026-02-18'),
+('PROD-161725', 1.2184, 1.0711, '2026-02-19'),
+('PROD-161725', 1.2101, 0.6890, '2026-02-20'),
+('PROD-161725', 1.1946, 1.2981, '2026-02-21'),
+('PROD-161725', 1.1960, -0.1153, '2026-02-22'),
+('PROD-161725', 1.1991, -0.2579, '2026-02-23'),
+('PROD-161725', 1.1987, 0.0305, '2026-02-24'),
+('PROD-161725', 1.1927, 0.4995, '2026-02-25'),
+('PROD-161725', 1.1810, 0.9917, '2026-02-26'),
+('PROD-161725', 1.1748, 0.5235, '2026-02-27'),
+('PROD-161725', 1.1672, 0.6541, '2026-02-28'),
+('PROD-161725', 1.1537, 1.1707, '2026-03-01'),
+('PROD-161725', 1.1541, -0.0307, '2026-03-02'),
+('PROD-161725', 1.1554, -0.1086, '2026-03-03'),
+('PROD-161725', 1.1596, -0.3663, '2026-03-04'),
+('PROD-161725', 1.1761, -1.4052, '2026-03-05'),
+('PROD-161725', 1.1924, -1.3710, '2026-03-06'),
+('PROD-161725', 1.1926, -0.0164, '2026-03-07'),
+('PROD-161725', 1.1839, 0.7334, '2026-03-08'),
+('PROD-161725', 1.1999, -1.3320, '2026-03-09'),
+('PROD-161725', 1.2037, -0.3194, '2026-03-10'),
+('PROD-161725', 1.2016, 0.1743, '2026-03-11'),
+('PROD-161725', 1.2007, 0.0741, '2026-03-12'),
+('PROD-161725', 1.2155, -1.2185, '2026-03-13'),
+('PROD-161725', 1.2232, -0.6260, '2026-03-14'),
+('PROD-161725', 1.2156, 0.6227, '2026-03-15'),
+('PROD-161725', 1.2282, -1.0259, '2026-03-16'),
+('PROD-161725', 1.2362, -0.6463, '2026-03-17'),
+('PROD-161725', 1.2232, 1.0619, '2026-03-18'),
+('PROD-161725', 1.2398, -1.3399, '2026-03-19'),
+('PROD-161725', 1.2553, -1.2356, '2026-03-20'),
+('PROD-161725', 1.2629, -0.6009, '2026-03-21'),
+('PROD-161725', 1.2735, -0.8362, '2026-03-22'),
+('PROD-161725', 1.2649, 0.6796, '2026-03-23'),
+('PROD-161725', 1.2709, -0.4736, '2026-03-24'),
+('PROD-161725', 1.2773, -0.5029, '2026-03-25'),
+('PROD-161725', 1.2873, -0.7792, '2026-03-26'),
+('PROD-161725', 1.2800, 0.5741, '2026-03-27'),
+('PROD-161725', 1.2890, -0.6952, '2026-03-28'),
+('PROD-161725', 1.3034, -1.1062, '2026-03-29'),
+('PROD-161725', 1.2904, 1.0110, '2026-03-30'),
+('PROD-161725', 1.2918, -0.1120, '2026-03-31'),
+('PROD-161725', 1.2906, 0.0918, '2026-04-01'),
+('PROD-161725', 1.3081, -1.3372, '2026-04-02'),
+('PROD-161725', 1.3203, -0.9245, '2026-04-03'),
+('PROD-161725', 1.3072, 0.9989, '2026-04-04'),
+('PROD-161725', 1.3145, -0.5580, '2026-04-05'),
+('PROD-161725', 1.3140, 0.0344, '2026-04-06'),
+('PROD-161725', 1.2986, 1.1822, '2026-04-07'),
+('PROD-161725', 1.3090, -0.7976, '2026-04-08'),
+('PROD-161725', 1.3015, 0.5777, '2026-04-09'),
+('PROD-161725', 1.2969, 0.3569, '2026-04-10'),
+('PROD-161725', 1.2808, 1.2600, '2026-04-11'),
+('PROD-161725', 1.2906, -0.7629, '2026-04-12'),
+('PROD-161725', 1.2929, -0.1770, '2026-04-13'),
+('PROD-161725', 1.2948, -0.1472, '2026-04-14'),
+('PROD-161725', 1.3054, -0.8105, '2026-04-15'),
+('PROD-161725', 1.3181, -0.9625, '2026-04-16'),
+('PROD-161725', 1.3375, -1.4481, '2026-04-17'),
+('PROD-161725', 1.3193, 1.3823, '2026-04-18'),
+('PROD-161725', 1.3056, 1.0467, '2026-04-19'),
+('PROD-161725', 1.3197, -1.0686, '2026-04-20'),
+('PROD-161725', 1.3029, 1.2906, '2026-04-21'),
+('PROD-161725', 1.3217, -1.4199, '2026-04-22'),
+('PROD-161725', 1.3327, -0.8256, '2026-04-23'),
+('PROD-161725', 1.3313, 0.1063, '2026-04-24'),
+('PROD-161725', 1.3347, -0.2545, '2026-04-25'),
+('PROD-161725', 1.3278, 0.5203, '2026-04-26'),
+('PROD-161725', 1.3310, -0.2416, '2026-04-27'),
+('PROD-161725', 1.3444, -0.9933, '2026-04-28'),
+('PROD-161725', 1.3405, 0.2925, '2026-04-29'),
+('PROD-161725', 1.3467, -0.4570, '2026-04-30'),
+('PROD-161725', 1.3391, 0.5696, '2026-05-01'),
+('PROD-161725', 1.3255, 1.0266, '2026-05-02'),
+('PROD-161725', 1.3437, -1.3535, '2026-05-03'),
+('PROD-161725', 1.3324, 0.8457, '2026-05-04'),
+('PROD-161725', 1.3144, 1.3730, '2026-05-05'),
+('PROD-161725', 1.3171, -0.2032, '2026-05-06'),
+('PROD-161725', 1.3296, -0.9372, '2026-05-07'),
+('PROD-161725', 1.3168, 0.9755, '2026-05-08'),
+('PROD-161725', 1.3201, -0.2500, '2026-05-09'),
+('PROD-161725', 1.3093, 0.8278, '2026-05-10'),
+('PROD-161725', 1.3190, -0.7369, '2026-05-11'),
+('PROD-161725', 1.3320, -0.9763, '2026-05-12'),
+('PROD-161725', 1.3323, -0.0232, '2026-05-13'),
+('PROD-161725', 1.3405, -0.6099, '2026-05-14'),
+('PROD-161725', 1.3476, -0.5258, '2026-05-15'),
+('PROD-161725', 1.3577, -0.7443, '2026-05-16'),
+('PROD-161725', 1.3516, 0.4490, '2026-05-17'),
+('PROD-161725', 1.3372, 1.0758, '2026-05-18'),
+('PROD-161725', 1.3414, -0.3167, '2026-05-19'),
+('PROD-161725', 1.3228, 1.4029, '2026-05-20'),
+('PROD-161725', 1.3282, -0.4090, '2026-05-21'),
+('PROD-161725', 1.3092, 1.4491, '2026-05-22'),
+('PROD-161725', 1.3214, -0.9237, '2026-05-23'),
+('PROD-161725', 1.3119, 0.7213, '2026-05-24'),
+('PROD-161725', 1.2956, 1.2577, '2026-05-25'),
+('PROD-161725', 1.2832, 0.9675, '2026-05-26'),
+('PROD-161725', 1.2996, -1.2625, '2026-05-27'),
+('PROD-161725', 1.3145, -1.1364, '2026-05-28'),
+('PROD-161725', 1.3025, 0.9226, '2026-05-29'),
+('PROD-161725', 1.2861, 1.2780, '2026-05-30'),
+('PROD-161725', 1.2950, -0.6873, '2026-05-31'),
+('PROD-161725', 1.3125, -1.3317, '2026-06-01'),
+('PROD-161725', 1.2949, 1.3581, '2026-06-02'),
+('PROD-161725', 1.3084, -1.0339, '2026-06-03'),
+('PROD-161725', 1.3228, -1.0919, '2026-06-04'),
+('PROD-161725', 1.3077, 1.1575, '2026-06-05'),
+('PROD-161725', 1.3175, -0.7475, '2026-06-06'),
+('PROD-161725', 1.3185, -0.0767, '2026-06-07'),
+('PROD-161725', 1.3187, -0.0124, '2026-06-08'),
+('PROD-161725', 1.3146, 0.3109, '2026-06-09'),
+('PROD-161725', 1.3197, -0.3863, '2026-06-10'),
+('PROD-161725', 1.3296, -0.7476, '2026-06-11'),
+('PROD-161725', 1.3108, 1.4329, '2026-06-12'),
+('PROD-161725', 1.3035, 0.5621, '2026-06-13'),
+('PROD-161725', 1.2903, 1.0216, '2026-06-14'),
+('PROD-161725', 1.2913, -0.0746, '2026-06-15'),
+('PROD-161725', 1.3019, -0.8159, '2026-06-16'),
+('PROD-161725', 1.3124, -0.7982, '2026-06-17'),
+('PROD-161725', 1.3317, -1.4528, '2026-06-18'),
+('PROD-161725', 1.3180, 1.0406, '2026-06-19'),
+('PROD-161725', 1.3097, 0.6350, '2026-06-20'),
+('PROD-161725', 1.3001, 0.7377, '2026-06-21'),
+('PROD-161725', 1.2924, 0.5937, '2026-06-22'),
+('PROD-161725', 1.2837, 0.6804, '2026-06-23'),
+('PROD-161725', 1.2854, -0.1298, '2026-06-24'),
+('PROD-161725', 1.2740, 0.8914, '2026-06-25'),
+('PROD-161725', 1.2741, -0.0059, '2026-06-26'),
+('PROD-161725', 1.2876, -1.0497, '2026-06-27'),
+('PROD-161725', 1.2794, 0.6373, '2026-06-28'),
+('PROD-161725', 1.2846, -0.4050, '2026-06-29'),
+('PROD-161725', 1.2742, 0.8150, '2026-06-30'),
+('PROD-161725', 1.2800, -0.4535, '2026-07-01'),
+('PROD-161725', 1.2714, 0.6767, '2026-07-02'),
+('PROD-161725', 1.2725, -0.0835, '2026-07-03'),
+('PROD-161725', 1.2722, 0.0227, '2026-07-04'),
+('PROD-161725', 1.2588, 1.0676, '2026-07-05'),
+('PROD-161725', 1.2575, 0.1061, '2026-07-06'),
+('PROD-161725', 1.2588, -0.1038, '2026-07-07'),
+('PROD-161725', 1.2483, 0.8420, '2026-07-08'),
+('PROD-161725', 1.2535, -0.4143, '2026-07-09'),
+('PROD-161725', 1.2518, 0.1366, '2026-07-10'),
+('PROD-161725', 1.2573, -0.4347, '2026-07-11'),
+('PROD-161725', 1.2680, -0.8459, '2026-07-12'),
+('PROD-161725', 1.2603, 0.6124, '2026-07-13'),
+('PROD-161725', 1.2427, 1.4194, '2026-07-14'),
+('PROD-161725', 1.2308, 0.9654, '2026-07-15'),
+('PROD-161725', 1.2213, 0.7784, '2026-07-16'),
+('PROD-161725', 1.2178, 0.2897, '2026-07-17'),
+('PROD-161725', 1.2339, -1.3073, '2026-07-18'),
+('PROD-161725', 1.2287, 0.4223, '2026-07-19'),
+('PROD-161725', 1.2273, 0.1117, '2026-07-20'),
+('PROD-161725', 1.2250, 0.1888, '2026-07-21'),
+('PROD-161725', 1.2288, -0.3054, '2026-07-22'),
+('PROD-161725', 1.2299, -0.0897, '2026-07-23'),
+('PROD-161725', 1.2191, 0.8877, '2026-07-24'),
+('PROD-161725', 1.2159, 0.2605, '2026-07-25'),
+('PROD-161725', 1.2043, 0.9604, '2026-07-26'),
+('PROD-161725', 1.2132, -0.7316, '2026-07-27'),
+('PROD-161725', 1.2106, 0.2113, '2026-07-28'),
+('PROD-161725', 1.2060, 0.3846, '2026-07-29'),
+('PROD-161725', 1.1987, 0.6108, '2026-07-30'),
+('PROD-161725', 1.2116, -1.0609, '2026-07-31'),
+('PROD-161725', 1.2064, 0.4310, '2026-08-01'),
+('PROD-161725', 1.2030, 0.2790, '2026-08-02'),
+('PROD-161725', 1.1991, 0.3252, '2026-08-03'),
+('PROD-161725', 1.1841, 1.2693, '2026-08-04'),
+('PROD-161725', 1.1693, 1.2671, '2026-08-05'),
+('PROD-161725', 1.1702, -0.0791, '2026-08-06'),
+('PROD-161725', 1.1791, -0.7580, '2026-08-07'),
+('PROD-161725', 1.1821, -0.2510, '2026-08-08'),
+('PROD-161725', 1.1733, 0.7490, '2026-08-09'),
+('PROD-161725', 1.1727, 0.0542, '2026-08-10'),
+('PROD-161725', 1.1743, -0.1346, '2026-08-11'),
+('PROD-161725', 1.1574, 1.4569, '2026-08-12'),
+('PROD-161725', 1.1696, -1.0460, '2026-08-13'),
+('PROD-161725', 1.1831, -1.1376, '2026-08-14'),
+('PROD-161725', 1.1723, 0.9186, '2026-08-15'),
+('PROD-161725', 1.1754, -0.2648, '2026-08-16'),
+('PROD-161725', 1.1920, -1.3902, '2026-08-17'),
+('PROD-161725', 1.2037, -0.9749, '2026-08-18'),
+('PROD-161725', 1.1867, 1.4342, '2026-08-19'),
+('PROD-161725', 1.1946, -0.6581, '2026-08-20'),
+('PROD-161725', 1.2085, -1.1513, '2026-08-21'),
+('PROD-161725', 1.2255, -1.3881, '2026-08-22'),
+('PROD-161725', 1.2357, -0.8290, '2026-08-23'),
+('PROD-161725', 1.2380, -0.1846, '2026-08-24'),
+('PROD-161725', 1.2529, -1.1881, '2026-08-25'),
+('PROD-161725', 1.2449, 0.6445, '2026-08-26'),
+('PROD-161725', 1.2304, 1.1754, '2026-08-27'),
+('PROD-161725', 1.2314, -0.0803, '2026-08-28'),
+('PROD-161725', 1.2238, 0.6181, '2026-08-29'),
+('PROD-161725', 1.2064, 1.4440, '2026-08-30'),
+('PROD-161725', 1.1954, 0.9233, '2026-08-31'),
+('PROD-161725', 1.1965, -0.0948, '2026-09-01'),
+('PROD-161725', 1.2101, -1.1217, '2026-09-02'),
+('PROD-161725', 1.1936, 1.3788, '2026-09-03'),
+('PROD-161726', 1.0443, 0.5498, '2025-09-05'),
+('PROD-161726', 1.0293, 1.4613, '2025-09-06'),
+('PROD-161726', 1.0332, -0.3816, '2025-09-07'),
+('PROD-161726', 1.0465, -1.2688, '2025-09-08'),
+('PROD-161726', 1.0363, 0.9830, '2025-09-09'),
+('PROD-161726', 1.0323, 0.3911, '2025-09-10'),
+('PROD-161726', 1.0445, -1.1699, '2025-09-11'),
+('PROD-161726', 1.0554, -1.0317, '2025-09-12'),
+('PROD-161726', 1.0667, -1.0583, '2025-09-13'),
+('PROD-161726', 1.0531, 1.2870, '2025-09-14'),
+('PROD-161726', 1.0585, -0.5089, '2025-09-15'),
+('PROD-161726', 1.0553, 0.2999, '2025-09-16'),
+('PROD-161726', 1.0495, 0.5526, '2025-09-17'),
+('PROD-161726', 1.0546, -0.4836, '2025-09-18'),
+('PROD-161726', 1.0621, -0.7031, '2025-09-19'),
+('PROD-161726', 1.0667, -0.4314, '2025-09-20'),
+('PROD-161726', 1.0678, -0.1005, '2025-09-21'),
+('PROD-161726', 1.0740, -0.5808, '2025-09-22'),
+('PROD-161726', 1.0852, -1.0286, '2025-09-23'),
+('PROD-161726', 1.0734, 1.1039, '2025-09-24'),
+('PROD-161726', 1.0609, 1.1766, '2025-09-25'),
+('PROD-161726', 1.0580, 0.2702, '2025-09-26'),
+('PROD-161726', 1.0666, -0.8021, '2025-09-27'),
+('PROD-161726', 1.0662, 0.0360, '2025-09-28'),
+('PROD-161726', 1.0697, -0.3265, '2025-09-29'),
+('PROD-161726', 1.0597, 0.9401, '2025-09-30'),
+('PROD-161726', 1.0478, 1.1385, '2025-10-01'),
+('PROD-161726', 1.0603, -1.1757, '2025-10-02'),
+('PROD-161726', 1.0618, -0.1420, '2025-10-03'),
+('PROD-161726', 1.0620, -0.0159, '2025-10-04'),
+('PROD-161726', 1.0694, -0.6950, '2025-10-05'),
+('PROD-161726', 1.0797, -0.9573, '2025-10-06'),
+('PROD-161726', 1.0886, -0.8143, '2025-10-07'),
+('PROD-161726', 1.0975, -0.8133, '2025-10-08'),
+('PROD-161726', 1.0996, -0.1901, '2025-10-09'),
+('PROD-161726', 1.1084, -0.7960, '2025-10-10'),
+('PROD-161726', 1.1091, -0.0596, '2025-10-11'),
+('PROD-161726', 1.1103, -0.1085, '2025-10-12'),
+('PROD-161726', 1.1076, 0.2438, '2025-10-13'),
+('PROD-161726', 1.1044, 0.2936, '2025-10-14'),
+('PROD-161726', 1.0961, 0.7531, '2025-10-15'),
+('PROD-161726', 1.1046, -0.7701, '2025-10-16'),
+('PROD-161726', 1.1159, -1.0164, '2025-10-17'),
+('PROD-161726', 1.1247, -0.7838, '2025-10-18'),
+('PROD-161726', 1.1220, 0.2445, '2025-10-19'),
+('PROD-161726', 1.1233, -0.1171, '2025-10-20'),
+('PROD-161726', 1.1259, -0.2319, '2025-10-21'),
+('PROD-161726', 1.1109, 1.3472, '2025-10-22'),
+('PROD-161726', 1.1087, 0.2007, '2025-10-23'),
+('PROD-161726', 1.1199, -0.9998, '2025-10-24'),
+('PROD-161726', 1.1268, -0.6105, '2025-10-25'),
+('PROD-161726', 1.1382, -0.9975, '2025-10-26'),
+('PROD-161726', 1.1404, -0.1934, '2025-10-27'),
+('PROD-161726', 1.1364, 0.3533, '2025-10-28'),
+('PROD-161726', 1.1471, -0.9358, '2025-10-29'),
+('PROD-161726', 1.1517, -0.4023, '2025-10-30'),
+('PROD-161726', 1.1643, -1.0805, '2025-10-31'),
+('PROD-161726', 1.1619, 0.2040, '2025-11-01'),
+('PROD-161726', 1.1758, -1.1822, '2025-11-02'),
+('PROD-161726', 1.1858, -0.8447, '2025-11-03'),
+('PROD-161726', 1.2018, -1.3341, '2025-11-04'),
+('PROD-161726', 1.2104, -0.7118, '2025-11-05'),
+('PROD-161726', 1.1981, 1.0240, '2025-11-06'),
+('PROD-161726', 1.1826, 1.3068, '2025-11-07'),
+('PROD-161726', 1.1726, 0.8546, '2025-11-08'),
+('PROD-161726', 1.1557, 1.4603, '2025-11-09'),
+('PROD-161726', 1.1463, 0.8219, '2025-11-10'),
+('PROD-161726', 1.1442, 0.1799, '2025-11-11'),
+('PROD-161726', 1.1581, -1.1974, '2025-11-12'),
+('PROD-161726', 1.1635, -0.4667, '2025-11-13'),
+('PROD-161726', 1.1654, -0.1672, '2025-11-14'),
+('PROD-161726', 1.1524, 1.1321, '2025-11-15'),
+('PROD-161726', 1.1564, -0.3471, '2025-11-16'),
+('PROD-161726', 1.1540, 0.2070, '2025-11-17'),
+('PROD-161726', 1.1511, 0.2522, '2025-11-18'),
+('PROD-161726', 1.1573, -0.5315, '2025-11-19'),
+('PROD-161726', 1.1589, -0.1360, '2025-11-20'),
+('PROD-161726', 1.1644, -0.4751, '2025-11-21'),
+('PROD-161726', 1.1558, 0.7464, '2025-11-22'),
+('PROD-161726', 1.1647, -0.7651, '2025-11-23'),
+('PROD-161726', 1.1489, 1.3729, '2025-11-24'),
+('PROD-161726', 1.1576, -0.7511, '2025-11-25'),
+('PROD-161726', 1.1545, 0.2691, '2025-11-26'),
+('PROD-161726', 1.1491, 0.4678, '2025-11-27'),
+('PROD-161726', 1.1592, -0.8714, '2025-11-28'),
+('PROD-161726', 1.1599, -0.0602, '2025-11-29'),
+('PROD-161726', 1.1744, -1.2381, '2025-11-30'),
+('PROD-161726', 1.1662, 0.7008, '2025-12-01'),
+('PROD-161726', 1.1543, 1.0330, '2025-12-02'),
+('PROD-161726', 1.1622, -0.6792, '2025-12-03'),
+('PROD-161726', 1.1565, 0.4894, '2025-12-04'),
+('PROD-161726', 1.1408, 1.3735, '2025-12-05'),
+('PROD-161726', 1.1366, 0.3731, '2025-12-06'),
+('PROD-161726', 1.1240, 1.1248, '2025-12-07'),
+('PROD-161726', 1.1146, 0.8389, '2025-12-08'),
+('PROD-161726', 1.1135, 0.0953, '2025-12-09'),
+('PROD-161726', 1.1297, -1.4303, '2025-12-10'),
+('PROD-161726', 1.1297, 0.0023, '2025-12-11'),
+('PROD-161726', 1.1403, -0.9325, '2025-12-12'),
+('PROD-161726', 1.1437, -0.2973, '2025-12-13'),
+('PROD-161726', 1.1588, -1.3045, '2025-12-14'),
+('PROD-161726', 1.1486, 0.8885, '2025-12-15'),
+('PROD-161726', 1.1342, 1.2707, '2025-12-16'),
+('PROD-161726', 1.1496, -1.3366, '2025-12-17'),
+('PROD-161726', 1.1566, -0.6019, '2025-12-18'),
+('PROD-161726', 1.1486, 0.6942, '2025-12-19'),
+('PROD-161726', 1.1453, 0.2902, '2025-12-20'),
+('PROD-161726', 1.1288, 1.4574, '2025-12-21'),
+('PROD-161726', 1.1421, -1.1620, '2025-12-22'),
+('PROD-161726', 1.1406, 0.1341, '2025-12-23'),
+('PROD-161726', 1.1266, 1.2384, '2025-12-24'),
+('PROD-161726', 1.1131, 1.2132, '2025-12-25'),
+('PROD-161726', 1.0977, 1.4053, '2025-12-26'),
+('PROD-161726', 1.1130, -1.3748, '2025-12-27'),
+('PROD-161726', 1.1048, 0.7451, '2025-12-28'),
+('PROD-161726', 1.0978, 0.6402, '2025-12-29'),
+('PROD-161726', 1.0996, -0.1676, '2025-12-30'),
+('PROD-161726', 1.1131, -1.2092, '2025-12-31'),
+('PROD-161726', 1.1163, -0.2824, '2026-01-01'),
+('PROD-161726', 1.1157, 0.0512, '2026-01-02'),
+('PROD-161726', 1.1153, 0.0394, '2026-01-03'),
+('PROD-161726', 1.1037, 1.0490, '2026-01-04'),
+('PROD-161726', 1.1087, -0.4473, '2026-01-05'),
+('PROD-161726', 1.1113, -0.2382, '2026-01-06'),
+('PROD-161726', 1.1203, -0.8007, '2026-01-07'),
+('PROD-161726', 1.1215, -0.1103, '2026-01-08'),
+('PROD-161726', 1.1194, 0.1847, '2026-01-09'),
+('PROD-161726', 1.1105, 0.8056, '2026-01-10'),
+('PROD-161726', 1.1044, 0.5548, '2026-01-11'),
+('PROD-161726', 1.0883, 1.4814, '2026-01-12'),
+('PROD-161726', 1.1032, -1.3482, '2026-01-13'),
+('PROD-161726', 1.0943, 0.8176, '2026-01-14'),
+('PROD-161726', 1.0809, 1.2373, '2026-01-15'),
+('PROD-161726', 1.0826, -0.1549, '2026-01-16'),
+('PROD-161726', 1.0728, 0.9141, '2026-01-17'),
+('PROD-161726', 1.0657, 0.6707, '2026-01-18'),
+('PROD-161726', 1.0722, -0.6070, '2026-01-19'),
+('PROD-161726', 1.0713, 0.0825, '2026-01-20'),
+('PROD-161726', 1.0757, -0.4097, '2026-01-21'),
+('PROD-161726', 1.0871, -1.0484, '2026-01-22'),
+('PROD-161726', 1.0790, 0.7464, '2026-01-23'),
+('PROD-161726', 1.0870, -0.7323, '2026-01-24'),
+('PROD-161726', 1.0864, 0.0570, '2026-01-25'),
+('PROD-161726', 1.0713, 1.4122, '2026-01-26'),
+('PROD-161726', 1.0610, 0.9715, '2026-01-27'),
+('PROD-161726', 1.0703, -0.8685, '2026-01-28'),
+('PROD-161726', 1.0849, -1.3501, '2026-01-29'),
+('PROD-161726', 1.0884, -0.3215, '2026-01-30'),
+('PROD-161726', 1.0875, 0.0845, '2026-01-31'),
+('PROD-161726', 1.0850, 0.2306, '2026-02-01'),
+('PROD-161726', 1.0991, -1.2850, '2026-02-02'),
+('PROD-161726', 1.1042, -0.4576, '2026-02-03'),
+('PROD-161726', 1.0906, 1.2483, '2026-02-04'),
+('PROD-161726', 1.0983, -0.7035, '2026-02-05'),
+('PROD-161726', 1.0982, 0.0064, '2026-02-06'),
+('PROD-161726', 1.0879, 0.9432, '2026-02-07'),
+('PROD-161726', 1.0860, 0.1750, '2026-02-08'),
+('PROD-161726', 1.0943, -0.7590, '2026-02-09'),
+('PROD-161726', 1.0936, 0.0611, '2026-02-10'),
+('PROD-161726', 1.0837, 0.9180, '2026-02-11'),
+('PROD-161726', 1.0982, -1.3209, '2026-02-12'),
+('PROD-161726', 1.1036, -0.4913, '2026-02-13'),
+('PROD-161726', 1.1122, -0.7758, '2026-02-14'),
+('PROD-161726', 1.1104, 0.1589, '2026-02-15'),
+('PROD-161726', 1.0959, 1.3196, '2026-02-16'),
+('PROD-161726', 1.1045, -0.7792, '2026-02-17'),
+('PROD-161726', 1.0914, 1.1987, '2026-02-18'),
+('PROD-161726', 1.0836, 0.7208, '2026-02-19'),
+('PROD-161726', 1.0761, 0.6985, '2026-02-20'),
+('PROD-161726', 1.0717, 0.4107, '2026-02-21'),
+('PROD-161726', 1.0583, 1.2639, '2026-02-22'),
+('PROD-161726', 1.0587, -0.0361, '2026-02-23'),
+('PROD-161726', 1.0514, 0.6983, '2026-02-24'),
+('PROD-161726', 1.0365, 1.4389, '2026-02-25'),
+('PROD-161726', 1.0409, -0.4199, '2026-02-26'),
+('PROD-161726', 1.0365, 0.4206, '2026-02-27'),
+('PROD-161726', 1.0440, -0.7169, '2026-02-28'),
+('PROD-161726', 1.0450, -0.0943, '2026-03-01'),
+('PROD-161726', 1.0503, -0.5045, '2026-03-02'),
+('PROD-161726', 1.0425, 0.7508, '2026-03-03');
+
+INSERT INTO core_product_nav (product_id, nav, daily_chg_pct, nav_date) VALUES
+('PROD-161726', 1.0300, 1.2100, '2026-03-04'),
+('PROD-161726', 1.0430, -1.2499, '2026-03-05'),
+('PROD-161726', 1.0431, -0.0093, '2026-03-06'),
+('PROD-161726', 1.0297, 1.3000, '2026-03-07'),
+('PROD-161726', 1.0451, -1.4769, '2026-03-08'),
+('PROD-161726', 1.0449, 0.0221, '2026-03-09'),
+('PROD-161726', 1.0563, -1.0755, '2026-03-10'),
+('PROD-161726', 1.0480, 0.7952, '2026-03-11'),
+('PROD-161726', 1.0507, -0.2541, '2026-03-12'),
+('PROD-161726', 1.0653, -1.3718, '2026-03-13'),
+('PROD-161726', 1.0679, -0.2417, '2026-03-14'),
+('PROD-161726', 1.0611, 0.6429, '2026-03-15'),
+('PROD-161726', 1.0643, -0.3036, '2026-03-16'),
+('PROD-161726', 1.0519, 1.1789, '2026-03-17'),
+('PROD-161726', 1.0559, -0.3780, '2026-03-18'),
+('PROD-161726', 1.0521, 0.3585, '2026-03-19'),
+('PROD-161726', 1.0677, -1.4614, '2026-03-20'),
+('PROD-161726', 1.0676, 0.0101, '2026-03-21'),
+('PROD-161726', 1.0660, 0.1546, '2026-03-22'),
+('PROD-161726', 1.0743, -0.7764, '2026-03-23'),
+('PROD-161726', 1.0759, -0.1500, '2026-03-24'),
+('PROD-161726', 1.0758, 0.0074, '2026-03-25'),
+('PROD-161726', 1.0670, 0.8280, '2026-03-26'),
+('PROD-161726', 1.0782, -1.0344, '2026-03-27'),
+('PROD-161726', 1.0714, 0.6329, '2026-03-28'),
+('PROD-161726', 1.0713, 0.0065, '2026-03-29'),
+('PROD-161726', 1.0821, -0.9974, '2026-03-30'),
+('PROD-161726', 1.0815, 0.0595, '2026-03-31'),
+('PROD-161726', 1.0944, -1.1783, '2026-04-01'),
+('PROD-161726', 1.0989, -0.4117, '2026-04-02'),
+('PROD-161726', 1.0940, 0.4466, '2026-04-03'),
+('PROD-161726', 1.0963, -0.2075, '2026-04-04'),
+('PROD-161726', 1.1100, -1.2298, '2026-04-05'),
+('PROD-161726', 1.1172, -0.6457, '2026-04-06'),
+('PROD-161726', 1.1016, 1.4187, '2026-04-07'),
+('PROD-161726', 1.1145, -1.1566, '2026-04-08'),
+('PROD-161726', 1.1291, -1.2895, '2026-04-09'),
+('PROD-161726', 1.1288, 0.0290, '2026-04-10'),
+('PROD-161726', 1.1162, 1.1292, '2026-04-11'),
+('PROD-161726', 1.1163, -0.0076, '2026-04-12'),
+('PROD-161726', 1.1183, -0.1747, '2026-04-13'),
+('PROD-161726', 1.1327, -1.2711, '2026-04-14'),
+('PROD-161726', 1.1269, 0.5147, '2026-04-15'),
+('PROD-161726', 1.1242, 0.2390, '2026-04-16'),
+('PROD-161726', 1.1352, -0.9676, '2026-04-17'),
+('PROD-161726', 1.1312, 0.3564, '2026-04-18'),
+('PROD-161726', 1.1370, -0.5094, '2026-04-19'),
+('PROD-161726', 1.1372, -0.0206, '2026-04-20'),
+('PROD-161726', 1.1538, -1.4347, '2026-04-21'),
+('PROD-161726', 1.1555, -0.1497, '2026-04-22'),
+('PROD-161726', 1.1530, 0.2171, '2026-04-23'),
+('PROD-161726', 1.1585, -0.4785, '2026-04-24'),
+('PROD-161726', 1.1627, -0.3581, '2026-04-25'),
+('PROD-161726', 1.1583, 0.3819, '2026-04-26'),
+('PROD-161726', 1.1570, 0.1166, '2026-04-27'),
+('PROD-161726', 1.1576, -0.0515, '2026-04-28'),
+('PROD-161726', 1.1670, -0.8058, '2026-04-29'),
+('PROD-161726', 1.1599, 0.6082, '2026-04-30'),
+('PROD-161726', 1.1603, -0.0316, '2026-05-01'),
+('PROD-161726', 1.1539, 0.5583, '2026-05-02'),
+('PROD-161726', 1.1393, 1.2817, '2026-05-03'),
+('PROD-161726', 1.1345, 0.4260, '2026-05-04'),
+('PROD-161726', 1.1273, 0.6361, '2026-05-05'),
+('PROD-161726', 1.1387, -1.0032, '2026-05-06'),
+('PROD-161726', 1.1543, -1.3546, '2026-05-07'),
+('PROD-161726', 1.1535, 0.0704, '2026-05-08'),
+('PROD-161726', 1.1569, -0.2900, '2026-05-09'),
+('PROD-161726', 1.1611, -0.3587, '2026-05-10'),
+('PROD-161726', 1.1538, 0.6319, '2026-05-11'),
+('PROD-161726', 1.1434, 0.9061, '2026-05-12'),
+('PROD-161726', 1.1502, -0.5911, '2026-05-13'),
+('PROD-161726', 1.1604, -0.8810, '2026-05-14'),
+('PROD-161726', 1.1463, 1.2302, '2026-05-15'),
+('PROD-161726', 1.1438, 0.2163, '2026-05-16'),
+('PROD-161726', 1.1371, 0.5903, '2026-05-17'),
+('PROD-161726', 1.1208, 1.4586, '2026-05-18'),
+('PROD-161726', 1.1168, 0.3548, '2026-05-19'),
+('PROD-161726', 1.1026, 1.2880, '2026-05-20'),
+('PROD-161726', 1.1030, -0.0328, '2026-05-21'),
+('PROD-161726', 1.0906, 1.1366, '2026-05-22'),
+('PROD-161726', 1.0786, 1.1079, '2026-05-23'),
+('PROD-161726', 1.0943, -1.4314, '2026-05-24'),
+('PROD-161726', 1.0849, 0.8653, '2026-05-25'),
+('PROD-161726', 1.0713, 1.2665, '2026-05-26'),
+('PROD-161726', 1.0876, -1.4946, '2026-05-27'),
+('PROD-161726', 1.0877, -0.0083, '2026-05-28'),
+('PROD-161726', 1.0816, 0.5681, '2026-05-29'),
+('PROD-161726', 1.0832, -0.1495, '2026-05-30'),
+('PROD-161726', 1.0885, -0.4894, '2026-05-31'),
+('PROD-161726', 1.0823, 0.5737, '2026-06-01'),
+('PROD-161726', 1.0754, 0.6425, '2026-06-02'),
+('PROD-161726', 1.0610, 1.3525, '2026-06-03'),
+('PROD-161726', 1.0763, -1.4231, '2026-06-04'),
+('PROD-161726', 1.0926, -1.4882, '2026-06-05'),
+('PROD-161726', 1.0879, 0.4319, '2026-06-06'),
+('PROD-161726', 1.0775, 0.9628, '2026-06-07'),
+('PROD-161726', 1.0650, 1.1774, '2026-06-08'),
+('PROD-161726', 1.0751, -0.9418, '2026-06-09'),
+('PROD-161726', 1.0606, 1.3649, '2026-06-10'),
+('PROD-161726', 1.0758, -1.4102, '2026-06-11'),
+('PROD-161726', 1.0855, -0.8979, '2026-06-12'),
+('PROD-161726', 1.0961, -0.9708, '2026-06-13'),
+('PROD-161726', 1.0990, -0.2595, '2026-06-14'),
+('PROD-161726', 1.1086, -0.8677, '2026-06-15'),
+('PROD-161726', 1.1092, -0.0565, '2026-06-16'),
+('PROD-161726', 1.0988, 0.9426, '2026-06-17'),
+('PROD-161726', 1.1069, -0.7287, '2026-06-18'),
+('PROD-161726', 1.1219, -1.3390, '2026-06-19'),
+('PROD-161726', 1.1123, 0.8661, '2026-06-20'),
+('PROD-161726', 1.0962, 1.4709, '2026-06-21'),
+('PROD-161726', 1.1034, -0.6481, '2026-06-22'),
+('PROD-161726', 1.1145, -0.9916, '2026-06-23'),
+('PROD-161726', 1.1134, 0.1007, '2026-06-24'),
+('PROD-161726', 1.1122, 0.1081, '2026-06-25'),
+('PROD-161726', 1.1270, -1.3143, '2026-06-26'),
+('PROD-161726', 1.1304, -0.3014, '2026-06-27'),
+('PROD-161726', 1.1181, 1.0981, '2026-06-28'),
+('PROD-161726', 1.1026, 1.4015, '2026-06-29'),
+('PROD-161726', 1.1004, 0.2004, '2026-06-30'),
+('PROD-161726', 1.1104, -0.9018, '2026-07-01'),
+('PROD-161726', 1.0980, 1.1306, '2026-07-02'),
+('PROD-161726', 1.1053, -0.6640, '2026-07-03'),
+('PROD-161726', 1.1074, -0.1925, '2026-07-04'),
+('PROD-161726', 1.1118, -0.3970, '2026-07-05'),
+('PROD-161726', 1.1244, -1.1178, '2026-07-06'),
+('PROD-161726', 1.1220, 0.2169, '2026-07-07'),
+('PROD-161726', 1.1067, 1.3860, '2026-07-08'),
+('PROD-161726', 1.1115, -0.4340, '2026-07-09'),
+('PROD-161726', 1.1224, -0.9698, '2026-07-10'),
+('PROD-161726', 1.1068, 1.4119, '2026-07-11'),
+('PROD-161726', 1.1102, -0.3050, '2026-07-12'),
+('PROD-161726', 1.1139, -0.3298, '2026-07-13'),
+('PROD-161726', 1.1018, 1.0948, '2026-07-14'),
+('PROD-161726', 1.0906, 1.0280, '2026-07-15'),
+('PROD-161726', 1.0773, 1.2315, '2026-07-16'),
+('PROD-161726', 1.0658, 1.0836, '2026-07-17'),
+('PROD-161726', 1.0819, -1.4868, '2026-07-18'),
+('PROD-161726', 1.0911, -0.8470, '2026-07-19'),
+('PROD-161726', 1.0824, 0.8067, '2026-07-20'),
+('PROD-161726', 1.0809, 0.1361, '2026-07-21'),
+('PROD-161726', 1.0911, -0.9323, '2026-07-22'),
+('PROD-161726', 1.1041, -1.1760, '2026-07-23'),
+('PROD-161726', 1.1150, -0.9817, '2026-07-24'),
+('PROD-161726', 1.1318, -1.4810, '2026-07-25'),
+('PROD-161726', 1.1422, -0.9106, '2026-07-26'),
+('PROD-161726', 1.1329, 0.8166, '2026-07-27'),
+('PROD-161726', 1.1308, 0.1879, '2026-07-28'),
+('PROD-161726', 1.1420, -0.9788, '2026-07-29'),
+('PROD-161726', 1.1565, -1.2509, '2026-07-30'),
+('PROD-161726', 1.1400, 1.4452, '2026-07-31'),
+('PROD-161726', 1.1318, 0.7205, '2026-08-01'),
+('PROD-161726', 1.1179, 1.2417, '2026-08-02'),
+('PROD-161726', 1.1324, -1.2817, '2026-08-03'),
+('PROD-161726', 1.1183, 1.2572, '2026-08-04'),
+('PROD-161726', 1.1226, -0.3803, '2026-08-05'),
+('PROD-161726', 1.1069, 1.4218, '2026-08-06'),
+('PROD-161726', 1.1088, -0.1709, '2026-08-07'),
+('PROD-161726', 1.0969, 1.0858, '2026-08-08'),
+('PROD-161726', 1.0818, 1.3969, '2026-08-09'),
+('PROD-161726', 1.0961, -1.3043, '2026-08-10'),
+('PROD-161726', 1.0853, 0.9979, '2026-08-11'),
+('PROD-161726', 1.0817, 0.3331, '2026-08-12'),
+('PROD-161726', 1.0730, 0.8096, '2026-08-13'),
+('PROD-161726', 1.0751, -0.1961, '2026-08-14'),
+('PROD-161726', 1.0759, -0.0780, '2026-08-15'),
+('PROD-161726', 1.0609, 1.4162, '2026-08-16'),
+('PROD-161726', 1.0714, -0.9802, '2026-08-17'),
+('PROD-161726', 1.0842, -1.1813, '2026-08-18'),
+('PROD-161726', 1.0903, -0.5561, '2026-08-19'),
+('PROD-161726', 1.0747, 1.4521, '2026-08-20'),
+('PROD-161726', 1.0598, 1.4036, '2026-08-21'),
+('PROD-161726', 1.0665, -0.6294, '2026-08-22'),
+('PROD-161726', 1.0637, 0.2674, '2026-08-23'),
+('PROD-161726', 1.0509, 1.2179, '2026-08-24'),
+('PROD-161726', 1.0518, -0.0869, '2026-08-25'),
+('PROD-161726', 1.0649, -1.2332, '2026-08-26'),
+('PROD-161726', 1.0671, -0.2089, '2026-08-27'),
+('PROD-161726', 1.0670, 0.0135, '2026-08-28'),
+('PROD-161726', 1.0615, 0.5182, '2026-08-29'),
+('PROD-161726', 1.0743, -1.1876, '2026-08-30'),
+('PROD-161726', 1.0686, 0.5327, '2026-08-31'),
+('PROD-161726', 1.0726, -0.3727, '2026-09-01'),
+('PROD-161726', 1.0665, 0.5725, '2026-09-02'),
+('PROD-161726', 1.0746, -0.7533, '2026-09-03'),
+('PROD-003095', 0.9450, 0.5277, '2025-09-05'),
+('PROD-003095', 0.9394, 0.5963, '2025-09-06'),
+('PROD-003095', 0.9321, 0.7851, '2025-09-07'),
+('PROD-003095', 0.9206, 1.2449, '2025-09-08'),
+('PROD-003095', 0.9124, 0.9040, '2025-09-09'),
+('PROD-003095', 0.9100, 0.2652, '2025-09-10'),
+('PROD-003095', 0.9184, -0.9102, '2025-09-11'),
+('PROD-003095', 0.9263, -0.8518, '2025-09-12'),
+('PROD-003095', 0.9285, -0.2400, '2025-09-13'),
+('PROD-003095', 0.9181, 1.1375, '2025-09-14'),
+('PROD-003095', 0.9083, 1.0764, '2025-09-15'),
+('PROD-003095', 0.9070, 0.1417, '2025-09-16'),
+('PROD-003095', 0.8977, 1.0405, '2025-09-17'),
+('PROD-003095', 0.9069, -1.0131, '2025-09-18'),
+('PROD-003095', 0.8966, 1.1533, '2025-09-19'),
+('PROD-003095', 0.9087, -1.3365, '2025-09-20'),
+('PROD-003095', 0.9025, 0.6919, '2025-09-21'),
+('PROD-003095', 0.8939, 0.9648, '2025-09-22'),
+('PROD-003095', 0.8910, 0.3284, '2025-09-23'),
+('PROD-003095', 0.9039, -1.4271, '2025-09-24'),
+('PROD-003095', 0.9037, 0.0239, '2025-09-25'),
+('PROD-003095', 0.8986, 0.5650, '2025-09-26'),
+('PROD-003095', 0.8986, -0.0048, '2025-09-27'),
+('PROD-003095', 0.8941, 0.5009, '2025-09-28'),
+('PROD-003095', 0.8917, 0.2673, '2025-09-29'),
+('PROD-003095', 0.9029, -1.2429, '2025-09-30'),
+('PROD-003095', 0.9024, 0.0519, '2025-10-01'),
+('PROD-003095', 0.8998, 0.2892, '2025-10-02'),
+('PROD-003095', 0.9073, -0.8284, '2025-10-03'),
+('PROD-003095', 0.9151, -0.8514, '2025-10-04'),
+('PROD-003095', 0.9193, -0.4589, '2025-10-05'),
+('PROD-003095', 0.9297, -1.1200, '2025-10-06'),
+('PROD-003095', 0.9318, -0.2241, '2025-10-07'),
+('PROD-003095', 0.9189, 1.4038, '2025-10-08'),
+('PROD-003095', 0.9255, -0.7112, '2025-10-09'),
+('PROD-003095', 0.9304, -0.5310, '2025-10-10'),
+('PROD-003095', 0.9348, -0.4709, '2025-10-11'),
+('PROD-003095', 0.9426, -0.8239, '2025-10-12'),
+('PROD-003095', 0.9457, -0.3261, '2025-10-13'),
+('PROD-003095', 0.9324, 1.4211, '2025-10-14'),
+('PROD-003095', 0.9233, 0.9838, '2025-10-15'),
+('PROD-003095', 0.9247, -0.1564, '2025-10-16'),
+('PROD-003095', 0.9139, 1.1861, '2025-10-17'),
+('PROD-003095', 0.9189, -0.5417, '2025-10-18'),
+('PROD-003095', 0.9115, 0.8110, '2025-10-19'),
+('PROD-003095', 0.9215, -1.0902, '2025-10-20'),
+('PROD-003095', 0.9314, -1.0613, '2025-10-21'),
+('PROD-003095', 0.9442, -1.3527, '2025-10-22'),
+('PROD-003095', 0.9333, 1.1640, '2025-10-23'),
+('PROD-003095', 0.9405, -0.7669, '2025-10-24'),
+('PROD-003095', 0.9439, -0.3651, '2025-10-25'),
+('PROD-003095', 0.9460, -0.2211, '2025-10-26'),
+('PROD-003095', 0.9512, -0.5503, '2025-10-27'),
+('PROD-003095', 0.9393, 1.2642, '2025-10-28'),
+('PROD-003095', 0.9481, -0.9315, '2025-10-29'),
+('PROD-003095', 0.9484, -0.0286, '2025-10-30'),
+('PROD-003095', 0.9548, -0.6666, '2025-10-31'),
+('PROD-003095', 0.9413, 1.4297, '2025-11-01'),
+('PROD-003095', 0.9462, -0.5227, '2025-11-02'),
+('PROD-003095', 0.9371, 0.9743, '2025-11-03'),
+('PROD-003095', 0.9261, 1.1830, '2025-11-04'),
+('PROD-003095', 0.9153, 1.1835, '2025-11-05'),
+('PROD-003095', 0.9085, 0.7529, '2025-11-06'),
+('PROD-003095', 0.9212, -1.3774, '2025-11-07'),
+('PROD-003095', 0.9180, 0.3441, '2025-11-08'),
+('PROD-003095', 0.9064, 1.2793, '2025-11-09'),
+('PROD-003095', 0.9165, -1.0997, '2025-11-10'),
+('PROD-003095', 0.9153, 0.1318, '2025-11-11'),
+('PROD-003095', 0.9058, 1.0492, '2025-11-12'),
+('PROD-003095', 0.9111, -0.5849, '2025-11-13'),
+('PROD-003095', 0.9036, 0.8291, '2025-11-14'),
+('PROD-003095', 0.8988, 0.5304, '2025-11-15'),
+('PROD-003095', 0.8864, 1.4007, '2025-11-16'),
+('PROD-003095', 0.8948, -0.9388, '2025-11-17'),
+('PROD-003095', 0.8887, 0.6841, '2025-11-18'),
+('PROD-003095', 0.8788, 1.1220, '2025-11-19'),
+('PROD-003095', 0.8871, -0.9328, '2025-11-20'),
+('PROD-003095', 0.8978, -1.1935, '2025-11-21'),
+('PROD-003095', 0.8991, -0.1466, '2025-11-22'),
+('PROD-003095', 0.8935, 0.6282, '2025-11-23'),
+('PROD-003095', 0.8900, 0.3941, '2025-11-24'),
+('PROD-003095', 0.8781, 1.3519, '2025-11-25'),
+('PROD-003095', 0.8720, 0.7011, '2025-11-26'),
+('PROD-003095', 0.8608, 1.2980, '2025-11-27'),
+('PROD-003095', 0.8537, 0.8262, '2025-11-28'),
+('PROD-003095', 0.8593, -0.6468, '2025-11-29'),
+('PROD-003095', 0.8665, -0.8346, '2025-11-30'),
+('PROD-003095', 0.8590, 0.8720, '2025-12-01'),
+('PROD-003095', 0.8585, 0.0615, '2025-12-02'),
+('PROD-003095', 0.8514, 0.8366, '2025-12-03'),
+('PROD-003095', 0.8556, -0.4953, '2025-12-04'),
+('PROD-003095', 0.8568, -0.1415, '2025-12-05'),
+('PROD-003095', 0.8678, -1.2700, '2025-12-06'),
+('PROD-003095', 0.8606, 0.8394, '2025-12-07'),
+('PROD-003095', 0.8582, 0.2852, '2025-12-08'),
+('PROD-003095', 0.8688, -1.2235, '2025-12-09'),
+('PROD-003095', 0.8727, -0.4518, '2025-12-10'),
+('PROD-003095', 0.8608, 1.3766, '2025-12-11'),
+('PROD-003095', 0.8709, -1.1557, '2025-12-12'),
+('PROD-003095', 0.8821, -1.2655, '2025-12-13'),
+('PROD-003095', 0.8762, 0.6684, '2025-12-14'),
+('PROD-003095', 0.8874, -1.2570, '2025-12-15'),
+('PROD-003095', 0.9000, -1.3974, '2025-12-16'),
+('PROD-003095', 0.8978, 0.2430, '2025-12-17'),
+('PROD-003095', 0.8895, 0.9281, '2025-12-18'),
+('PROD-003095', 0.8765, 1.4814, '2025-12-19'),
+('PROD-003095', 0.8658, 1.2385, '2025-12-20'),
+('PROD-003095', 0.8763, -1.2023, '2025-12-21'),
+('PROD-003095', 0.8782, -0.2133, '2025-12-22'),
+('PROD-003095', 0.8874, -1.0385, '2025-12-23'),
+('PROD-003095', 0.8990, -1.2873, '2025-12-24'),
+('PROD-003095', 0.8956, 0.3850, '2025-12-25'),
+('PROD-003095', 0.8912, 0.4989, '2025-12-26'),
+('PROD-003095', 0.8987, -0.8382, '2025-12-27'),
+('PROD-003095', 0.9038, -0.5689, '2025-12-28'),
+('PROD-003095', 0.9139, -1.1093, '2025-12-29'),
+('PROD-003095', 0.9049, 0.9996, '2025-12-30'),
+('PROD-003095', 0.9088, -0.4320, '2025-12-31'),
+('PROD-003095', 0.8986, 1.1352, '2026-01-01'),
+('PROD-003095', 0.9092, -1.1642, '2026-01-02'),
+('PROD-003095', 0.8994, 1.0856, '2026-01-03'),
+('PROD-003095', 0.9080, -0.9427, '2026-01-04'),
+('PROD-003095', 0.8946, 1.4944, '2026-01-05'),
+('PROD-003095', 0.8874, 0.8131, '2026-01-06'),
+('PROD-003095', 0.8929, -0.6133, '2026-01-07'),
+('PROD-003095', 0.8810, 1.3514, '2026-01-08'),
+('PROD-003095', 0.8770, 0.4515, '2026-01-09'),
+('PROD-003095', 0.8824, -0.6130, '2026-01-10'),
+('PROD-003095', 0.8909, -0.9519, '2026-01-11'),
+('PROD-003095', 0.9000, -1.0062, '2026-01-12'),
+('PROD-003095', 0.9029, -0.3183, '2026-01-13'),
+('PROD-003095', 0.8925, 1.1625, '2026-01-14'),
+('PROD-003095', 0.8822, 1.1691, '2026-01-15'),
+('PROD-003095', 0.8863, -0.4638, '2026-01-16'),
+('PROD-003095', 0.8983, -1.3400, '2026-01-17'),
+('PROD-003095', 0.9117, -1.4716, '2026-01-18'),
+('PROD-003095', 0.9180, -0.6902, '2026-01-19'),
+('PROD-003095', 0.9066, 1.2574, '2026-01-20'),
+('PROD-003095', 0.8991, 0.8336, '2026-01-21'),
+('PROD-003095', 0.9021, -0.3346, '2026-01-22'),
+('PROD-003095', 0.8901, 1.3460, '2026-01-23'),
+('PROD-003095', 0.8876, 0.2800, '2026-01-24'),
+('PROD-003095', 0.8773, 1.1726, '2026-01-25'),
+('PROD-003095', 0.8723, 0.5713, '2026-01-26'),
+('PROD-003095', 0.8797, -0.8362, '2026-01-27'),
+('PROD-003095', 0.8768, 0.3347, '2026-01-28'),
+('PROD-003095', 0.8676, 1.0610, '2026-01-29'),
+('PROD-003095', 0.8753, -0.8749, '2026-01-30'),
+('PROD-003095', 0.8797, -0.4953, '2026-01-31'),
+('PROD-003095', 0.8924, -1.4263, '2026-02-01'),
+('PROD-003095', 0.8935, -0.1265, '2026-02-02'),
+('PROD-003095', 0.9050, -1.2715, '2026-02-03'),
+('PROD-003095', 0.8997, 0.5946, '2026-02-04'),
+('PROD-003095', 0.9074, -0.8438, '2026-02-05'),
+('PROD-003095', 0.8976, 1.0903, '2026-02-06'),
+('PROD-003095', 0.8929, 0.5255, '2026-02-07'),
+('PROD-003095', 0.8884, 0.5103, '2026-02-08'),
+('PROD-003095', 0.8775, 1.2464, '2026-02-09'),
+('PROD-003095', 0.8754, 0.2427, '2026-02-10'),
+('PROD-003095', 0.8681, 0.8412, '2026-02-11'),
+('PROD-003095', 0.8560, 1.4123, '2026-02-12'),
+('PROD-003095', 0.8490, 0.8210, '2026-02-13'),
+('PROD-003095', 0.8522, -0.3741, '2026-02-14'),
+('PROD-003095', 0.8650, -1.4853, '2026-02-15'),
+('PROD-003095', 0.8708, -0.6705, '2026-02-16'),
+('PROD-003095', 0.8685, 0.2595, '2026-02-17'),
+('PROD-003095', 0.8721, -0.4106, '2026-02-18'),
+('PROD-003095', 0.8836, -1.3003, '2026-02-19'),
+('PROD-003095', 0.8861, -0.2826, '2026-02-20'),
+('PROD-003095', 0.8842, 0.2150, '2026-02-21'),
+('PROD-003095', 0.8890, -0.5451, '2026-02-22'),
+('PROD-003095', 0.8959, -0.7658, '2026-02-23'),
+('PROD-003095', 0.8832, 1.4412, '2026-02-24'),
+('PROD-003095', 0.8760, 0.8176, '2026-02-25'),
+('PROD-003095', 0.8634, 1.4571, '2026-02-26'),
+('PROD-003095', 0.8657, -0.2673, '2026-02-27'),
+('PROD-003095', 0.8783, -1.4299, '2026-02-28'),
+('PROD-003095', 0.8670, 1.2976, '2026-03-01'),
+('PROD-003095', 0.8627, 0.4979, '2026-03-02'),
+('PROD-003095', 0.8564, 0.7348, '2026-03-03'),
+('PROD-003095', 0.8443, 1.4368, '2026-03-04'),
+('PROD-003095', 0.8352, 1.0837, '2026-03-05'),
+('PROD-003095', 0.8446, -1.1130, '2026-03-06'),
+('PROD-003095', 0.8528, -0.9558, '2026-03-07'),
+('PROD-003095', 0.8539, -0.1262, '2026-03-08'),
+('PROD-003095', 0.8628, -1.0310, '2026-03-09'),
+('PROD-003095', 0.8592, 0.4247, '2026-03-10'),
+('PROD-003095', 0.8524, 0.7934, '2026-03-11'),
+('PROD-003095', 0.8531, -0.0837, '2026-03-12'),
+('PROD-003095', 0.8605, -0.8606, '2026-03-13'),
+('PROD-003095', 0.8512, 1.0924, '2026-03-14'),
+('PROD-003095', 0.8520, -0.0977, '2026-03-15'),
+('PROD-003095', 0.8597, -0.8991, '2026-03-16'),
+('PROD-003095', 0.8554, 0.5026, '2026-03-17'),
+('PROD-003095', 0.8656, -1.1799, '2026-03-18'),
+('PROD-003095', 0.8707, -0.5850, '2026-03-19'),
+('PROD-003095', 0.8815, -1.2196, '2026-03-20'),
+('PROD-003095', 0.8689, 1.4497, '2026-03-21'),
+('PROD-003095', 0.8667, 0.2542, '2026-03-22'),
+('PROD-003095', 0.8665, 0.0243, '2026-03-23'),
+('PROD-003095', 0.8659, 0.0688, '2026-03-24'),
+('PROD-003095', 0.8645, 0.1598, '2026-03-25'),
+('PROD-003095', 0.8609, 0.4140, '2026-03-26'),
+('PROD-003095', 0.8664, -0.6361, '2026-03-27'),
+('PROD-003095', 0.8639, 0.2878, '2026-03-28'),
+('PROD-003095', 0.8732, -1.0659, '2026-03-29'),
+('PROD-003095', 0.8813, -0.9225, '2026-03-30'),
+('PROD-003095', 0.8769, 0.5053, '2026-03-31'),
+('PROD-003095', 0.8651, 1.3687, '2026-04-01'),
+('PROD-003095', 0.8610, 0.4710, '2026-04-02'),
+('PROD-003095', 0.8551, 0.6920, '2026-04-03'),
+('PROD-003095', 0.8662, -1.2851, '2026-04-04'),
+('PROD-003095', 0.8634, 0.3230, '2026-04-05'),
+('PROD-003095', 0.8573, 0.7082, '2026-04-06'),
+('PROD-003095', 0.8692, -1.3643, '2026-04-07'),
+('PROD-003095', 0.8783, -1.0397, '2026-04-08'),
+('PROD-003095', 0.8833, -0.5655, '2026-04-09'),
+('PROD-003095', 0.8920, -0.9760, '2026-04-10'),
+('PROD-003095', 0.8837, 0.9411, '2026-04-11'),
+('PROD-003095', 0.8743, 1.0798, '2026-04-12'),
+('PROD-003095', 0.8724, 0.2201, '2026-04-13'),
+('PROD-003095', 0.8648, 0.8818, '2026-04-14'),
+('PROD-003095', 0.8711, -0.7257, '2026-04-15'),
+('PROD-003095', 0.8642, 0.7977, '2026-04-16'),
+('PROD-003095', 0.8739, -1.1062, '2026-04-17'),
+('PROD-003095', 0.8836, -1.0971, '2026-04-18'),
+('PROD-003095', 0.8913, -0.8599, '2026-04-19'),
+('PROD-003095', 0.8811, 1.1566, '2026-04-20'),
+('PROD-003095', 0.8685, 1.4498, '2026-04-21'),
+('PROD-003095', 0.8694, -0.1067, '2026-04-22'),
+('PROD-003095', 0.8678, 0.1799, '2026-04-23'),
+('PROD-003095', 0.8631, 0.5435, '2026-04-24'),
+('PROD-003095', 0.8649, -0.2057, '2026-04-25'),
+('PROD-003095', 0.8725, -0.8667, '2026-04-26'),
+('PROD-003095', 0.8781, -0.6419, '2026-04-27'),
+('PROD-003095', 0.8764, 0.1903, '2026-04-28'),
+('PROD-003095', 0.8699, 0.7418, '2026-04-29'),
+('PROD-003095', 0.8804, -1.1897, '2026-04-30'),
+('PROD-003095', 0.8877, -0.8271, '2026-05-01'),
+('PROD-003095', 0.8818, 0.6737, '2026-05-02'),
+('PROD-003095', 0.8778, 0.4584, '2026-05-03'),
+('PROD-003095', 0.8699, 0.9073, '2026-05-04'),
+('PROD-003095', 0.8736, -0.4256, '2026-05-05'),
+('PROD-003095', 0.8635, 1.1748, '2026-05-06'),
+('PROD-003095', 0.8662, -0.3125, '2026-05-07'),
+('PROD-003095', 0.8671, -0.1060, '2026-05-08'),
+('PROD-003095', 0.8689, -0.2122, '2026-05-09'),
+('PROD-003095', 0.8792, -1.1692, '2026-05-10'),
+('PROD-003095', 0.8679, 1.3074, '2026-05-11'),
+('PROD-003095', 0.8592, 1.0094, '2026-05-12'),
+('PROD-003095', 0.8557, 0.4107, '2026-05-13'),
+('PROD-003095', 0.8519, 0.4458, '2026-05-14'),
+('PROD-003095', 0.8512, 0.0853, '2026-05-15'),
+('PROD-003095', 0.8528, -0.1865, '2026-05-16'),
+('PROD-003095', 0.8433, 1.1306, '2026-05-17'),
+('PROD-003095', 0.8465, -0.3828, '2026-05-18'),
+('PROD-003095', 0.8572, -1.2459, '2026-05-19'),
+('PROD-003095', 0.8540, 0.3803, '2026-05-20'),
+('PROD-003095', 0.8568, -0.3296, '2026-05-21'),
+('PROD-003095', 0.8605, -0.4287, '2026-05-22'),
+('PROD-003095', 0.8531, 0.8701, '2026-05-23'),
+('PROD-003095', 0.8519, 0.1390, '2026-05-24'),
+('PROD-003095', 0.8642, -1.4241, '2026-05-25'),
+('PROD-003095', 0.8646, -0.0441, '2026-05-26'),
+('PROD-003095', 0.8739, -1.0633, '2026-05-27'),
+('PROD-003095', 0.8843, -1.1792, '2026-05-28'),
+('PROD-003095', 0.8761, 0.9393, '2026-05-29'),
+('PROD-003095', 0.8830, -0.7819, '2026-05-30'),
+('PROD-003095', 0.8876, -0.5196, '2026-05-31'),
+('PROD-003095', 0.8877, -0.0100, '2026-06-01'),
+('PROD-003095', 0.8972, -1.0643, '2026-06-02'),
+('PROD-003095', 0.8855, 1.3258, '2026-06-03'),
+('PROD-003095', 0.8803, 0.5934, '2026-06-04'),
+('PROD-003095', 0.8747, 0.6345, '2026-06-05'),
+('PROD-003095', 0.8765, -0.1997, '2026-06-06'),
+('PROD-003095', 0.8637, 1.4819, '2026-06-07'),
+('PROD-003095', 0.8586, 0.5900, '2026-06-08'),
+('PROD-003095', 0.8592, -0.0643, '2026-06-09'),
+('PROD-003095', 0.8624, -0.3659, '2026-06-10'),
+('PROD-003095', 0.8554, 0.8235, '2026-06-11'),
+('PROD-003095', 0.8491, 0.7434, '2026-06-12'),
+('PROD-003095', 0.8370, 1.4512, '2026-06-13'),
+('PROD-003095', 0.8403, -0.3982, '2026-06-14'),
+('PROD-003095', 0.8489, -1.0183, '2026-06-15'),
+('PROD-003095', 0.8602, -1.3095, '2026-06-16'),
+('PROD-003095', 0.8618, -0.1885, '2026-06-17'),
+('PROD-003095', 0.8659, -0.4741, '2026-06-18'),
+('PROD-003095', 0.8790, -1.4861, '2026-06-19'),
+('PROD-003095', 0.8818, -0.3221, '2026-06-20'),
+('PROD-003095', 0.8731, 0.9948, '2026-06-21'),
+('PROD-003095', 0.8780, -0.5530, '2026-06-22'),
+('PROD-003095', 0.8737, 0.4888, '2026-06-23'),
+('PROD-003095', 0.8628, 1.2687, '2026-06-24'),
+('PROD-003095', 0.8559, 0.8054, '2026-06-25'),
+('PROD-003095', 0.8674, -1.3252, '2026-06-26'),
+('PROD-003095', 0.8723, -0.5639, '2026-06-27'),
+('PROD-003095', 0.8801, -0.8827, '2026-06-28'),
+('PROD-003095', 0.8918, -1.3146, '2026-06-29'),
+('PROD-003095', 0.8950, -0.3543, '2026-06-30'),
+('PROD-003095', 0.8862, 0.9980, '2026-07-01'),
+('PROD-003095', 0.8981, -1.3198, '2026-07-02'),
+('PROD-003095', 0.8921, 0.6675, '2026-07-03'),
+('PROD-003095', 0.8867, 0.6085, '2026-07-04'),
+('PROD-003095', 0.8746, 1.3889, '2026-07-05'),
+('PROD-003095', 0.8756, -0.1194, '2026-07-06'),
+('PROD-003095', 0.8826, -0.7898, '2026-07-07'),
+('PROD-003095', 0.8929, -1.1512, '2026-07-08'),
+('PROD-003095', 0.8993, -0.7128, '2026-07-09'),
+('PROD-003095', 0.8866, 1.4340, '2026-07-10'),
+('PROD-003095', 0.8922, -0.6236, '2026-07-11'),
+('PROD-003095', 0.8944, -0.2487, '2026-07-12'),
+('PROD-003095', 0.8837, 1.2109, '2026-07-13'),
+('PROD-003095', 0.8720, 1.3449, '2026-07-14'),
+('PROD-003095', 0.8732, -0.1330, '2026-07-15'),
+('PROD-003095', 0.8661, 0.8245, '2026-07-16'),
+('PROD-003095', 0.8542, 1.3963, '2026-07-17');
+
+INSERT INTO core_product_nav (product_id, nav, daily_chg_pct, nav_date) VALUES
+('PROD-003095', 0.8607, -0.7594, '2026-07-18'),
+('PROD-003095', 0.8727, -1.3713, '2026-07-19'),
+('PROD-003095', 0.8678, 0.5670, '2026-07-20'),
+('PROD-003095', 0.8756, -0.8876, '2026-07-21'),
+('PROD-003095', 0.8734, 0.2471, '2026-07-22'),
+('PROD-003095', 0.8724, 0.1123, '2026-07-23'),
+('PROD-003095', 0.8823, -1.1192, '2026-07-24'),
+('PROD-003095', 0.8792, 0.3570, '2026-07-25'),
+('PROD-003095', 0.8792, 0.0010, '2026-07-26'),
+('PROD-003095', 0.8680, 1.2948, '2026-07-27'),
+('PROD-003095', 0.8681, -0.0137, '2026-07-28'),
+('PROD-003095', 0.8694, -0.1551, '2026-07-29'),
+('PROD-003095', 0.8716, -0.2469, '2026-07-30'),
+('PROD-003095', 0.8745, -0.3262, '2026-07-31'),
+('PROD-003095', 0.8828, -0.9356, '2026-08-01'),
+('PROD-003095', 0.8771, 0.6507, '2026-08-02'),
+('PROD-003095', 0.8870, -1.1130, '2026-08-03'),
+('PROD-003095', 0.8769, 1.1556, '2026-08-04'),
+('PROD-003095', 0.8708, 0.7042, '2026-08-05'),
+('PROD-003095', 0.8679, 0.3398, '2026-08-06'),
+('PROD-003095', 0.8618, 0.7033, '2026-08-07'),
+('PROD-003095', 0.8582, 0.4217, '2026-08-08'),
+('PROD-003095', 0.8616, -0.3926, '2026-08-09'),
+('PROD-003095', 0.8571, 0.5251, '2026-08-10'),
+('PROD-003095', 0.8549, 0.2552, '2026-08-11'),
+('PROD-003095', 0.8633, -0.9758, '2026-08-12'),
+('PROD-003095', 0.8540, 1.0838, '2026-08-13'),
+('PROD-003095', 0.8466, 0.8712, '2026-08-14'),
+('PROD-003095', 0.8546, -0.9329, '2026-08-15'),
+('PROD-003095', 0.8675, -1.4922, '2026-08-16'),
+('PROD-003095', 0.8648, 0.3162, '2026-08-17'),
+('PROD-003095', 0.8592, 0.6509, '2026-08-18'),
+('PROD-003095', 0.8551, 0.4842, '2026-08-19'),
+('PROD-003095', 0.8653, -1.1833, '2026-08-20'),
+('PROD-003095', 0.8564, 1.0400, '2026-08-21'),
+('PROD-003095', 0.8539, 0.2903, '2026-08-22'),
+('PROD-003095', 0.8619, -0.9316, '2026-08-23'),
+('PROD-003095', 0.8650, -0.3542, '2026-08-24'),
+('PROD-003095', 0.8770, -1.3727, '2026-08-25'),
+('PROD-003095', 0.8845, -0.8462, '2026-08-26'),
+('PROD-003095', 0.8918, -0.8148, '2026-08-27'),
+('PROD-003095', 0.9036, -1.3105, '2026-08-28'),
+('PROD-003095', 0.9034, 0.0243, '2026-08-29'),
+('PROD-003095', 0.8936, 1.0995, '2026-08-30'),
+('PROD-003095', 0.8979, -0.4831, '2026-08-31'),
+('PROD-003095', 0.9099, -1.3165, '2026-09-01'),
+('PROD-003095', 0.9142, -0.4662, '2026-09-02'),
+('PROD-003095', 0.9118, 0.2655, '2026-09-03'),
+('PROD-510300', 1.0329, -0.2763, '2025-09-05'),
+('PROD-510300', 1.0387, -0.5628, '2025-09-06'),
+('PROD-510300', 1.0508, -1.1533, '2025-09-07'),
+('PROD-510300', 1.0594, -0.8073, '2025-09-08'),
+('PROD-510300', 1.0619, -0.2310, '2025-09-09'),
+('PROD-510300', 1.0691, -0.6699, '2025-09-10'),
+('PROD-510300', 1.0827, -1.2554, '2025-09-11'),
+('PROD-510300', 1.0728, 0.9261, '2025-09-12'),
+('PROD-510300', 1.0790, -0.5727, '2025-09-13'),
+('PROD-510300', 1.0816, -0.2367, '2025-09-14'),
+('PROD-510300', 1.0796, 0.1831, '2025-09-15'),
+('PROD-510300', 1.0699, 0.9083, '2025-09-16'),
+('PROD-510300', 1.0698, 0.0105, '2025-09-17'),
+('PROD-510300', 1.0827, -1.1899, '2025-09-18'),
+('PROD-510300', 1.0877, -0.4598, '2025-09-19'),
+('PROD-510300', 1.0958, -0.7406, '2025-09-20'),
+('PROD-510300', 1.0917, 0.3795, '2025-09-21'),
+('PROD-510300', 1.0821, 0.8826, '2025-09-22'),
+('PROD-510300', 1.0950, -1.1752, '2025-09-23'),
+('PROD-510300', 1.0865, 0.7864, '2025-09-24'),
+('PROD-510300', 1.0868, -0.0256, '2025-09-25'),
+('PROD-510300', 1.0853, 0.1383, '2025-09-26'),
+('PROD-510300', 1.0943, -0.8235, '2025-09-27'),
+('PROD-510300', 1.0836, 0.9882, '2025-09-28'),
+('PROD-510300', 1.0984, -1.3517, '2025-09-29'),
+('PROD-510300', 1.0837, 1.3607, '2025-09-30'),
+('PROD-510300', 1.0765, 0.6710, '2025-10-01'),
+('PROD-510300', 1.0805, -0.3747, '2025-10-02'),
+('PROD-510300', 1.0948, -1.3079, '2025-10-03'),
+('PROD-510300', 1.0846, 0.9381, '2025-10-04'),
+('PROD-510300', 1.0914, -0.6189, '2025-10-05'),
+('PROD-510300', 1.0815, 0.9112, '2025-10-06'),
+('PROD-510300', 1.0888, -0.6720, '2025-10-07'),
+('PROD-510300', 1.0854, 0.3093, '2025-10-08'),
+('PROD-510300', 1.0888, -0.3157, '2025-10-09'),
+('PROD-510300', 1.0900, -0.1073, '2025-10-10'),
+('PROD-510300', 1.0746, 1.4357, '2025-10-11'),
+('PROD-510300', 1.0607, 1.3077, '2025-10-12'),
+('PROD-510300', 1.0581, 0.2455, '2025-10-13'),
+('PROD-510300', 1.0617, -0.3392, '2025-10-14'),
+('PROD-510300', 1.0589, 0.2622, '2025-10-15'),
+('PROD-510300', 1.0611, -0.2087, '2025-10-16'),
+('PROD-510300', 1.0668, -0.5329, '2025-10-17'),
+('PROD-510300', 1.0716, -0.4503, '2025-10-18'),
+('PROD-510300', 1.0827, -1.0250, '2025-10-19'),
+('PROD-510300', 1.0971, -1.3116, '2025-10-20'),
+('PROD-510300', 1.0959, 0.1105, '2025-10-21'),
+('PROD-510300', 1.1122, -1.4658, '2025-10-22'),
+('PROD-510300', 1.1207, -0.7620, '2025-10-23'),
+('PROD-510300', 1.1044, 1.4745, '2025-10-24'),
+('PROD-510300', 1.1061, -0.1561, '2025-10-25'),
+('PROD-510300', 1.1189, -1.1413, '2025-10-26'),
+('PROD-510300', 1.1292, -0.9080, '2025-10-27'),
+('PROD-510300', 1.1408, -1.0155, '2025-10-28'),
+('PROD-510300', 1.1481, -0.6343, '2025-10-29'),
+('PROD-510300', 1.1333, 1.3033, '2025-10-30'),
+('PROD-510300', 1.1202, 1.1690, '2025-10-31'),
+('PROD-510300', 1.1114, 0.7876, '2025-11-01'),
+('PROD-510300', 1.1244, -1.1600, '2025-11-02'),
+('PROD-510300', 1.1157, 0.7794, '2025-11-03'),
+('PROD-510300', 1.1274, -1.0355, '2025-11-04'),
+('PROD-510300', 1.1248, 0.2299, '2025-11-05'),
+('PROD-510300', 1.1312, -0.5678, '2025-11-06'),
+('PROD-510300', 1.1162, 1.3442, '2025-11-07'),
+('PROD-510300', 1.1205, -0.3820, '2025-11-08'),
+('PROD-510300', 1.1246, -0.3689, '2025-11-09'),
+('PROD-510300', 1.1145, 0.9028, '2025-11-10'),
+('PROD-510300', 1.1204, -0.5306, '2025-11-11'),
+('PROD-510300', 1.1288, -0.7429, '2025-11-12'),
+('PROD-510300', 1.1250, 0.3413, '2025-11-13'),
+('PROD-510300', 1.1138, 1.0011, '2025-11-14'),
+('PROD-510300', 1.1043, 0.8607, '2025-11-15'),
+('PROD-510300', 1.1206, -1.4534, '2025-11-16'),
+('PROD-510300', 1.1204, 0.0202, '2025-11-17'),
+('PROD-510300', 1.1364, -1.4092, '2025-11-18'),
+('PROD-510300', 1.1483, -1.0387, '2025-11-19'),
+('PROD-510300', 1.1427, 0.4900, '2025-11-20'),
+('PROD-510300', 1.1515, -0.7674, '2025-11-21'),
+('PROD-510300', 1.1409, 0.9260, '2025-11-22'),
+('PROD-510300', 1.1266, 1.2689, '2025-11-23'),
+('PROD-510300', 1.1342, -0.6695, '2025-11-24'),
+('PROD-510300', 1.1400, -0.5072, '2025-11-25'),
+('PROD-510300', 1.1467, -0.5872, '2025-11-26'),
+('PROD-510300', 1.1344, 1.0885, '2025-11-27'),
+('PROD-510300', 1.1437, -0.8145, '2025-11-28'),
+('PROD-510300', 1.1351, 0.7554, '2025-11-29'),
+('PROD-510300', 1.1300, 0.4519, '2025-11-30'),
+('PROD-510300', 1.1236, 0.5682, '2025-12-01'),
+('PROD-510300', 1.1081, 1.3978, '2025-12-02'),
+('PROD-510300', 1.1123, -0.3751, '2025-12-03'),
+('PROD-510300', 1.1095, 0.2492, '2025-12-04'),
+('PROD-510300', 1.1034, 0.5547, '2025-12-05'),
+('PROD-510300', 1.1118, -0.7590, '2025-12-06'),
+('PROD-510300', 1.1153, -0.3153, '2025-12-07'),
+('PROD-510300', 1.1321, -1.4800, '2025-12-08'),
+('PROD-510300', 1.1376, -0.4863, '2025-12-09'),
+('PROD-510300', 1.1334, 0.3731, '2025-12-10'),
+('PROD-510300', 1.1314, 0.1728, '2025-12-11'),
+('PROD-510300', 1.1295, 0.1669, '2025-12-12'),
+('PROD-510300', 1.1239, 0.4975, '2025-12-13'),
+('PROD-510300', 1.1171, 0.6053, '2025-12-14'),
+('PROD-510300', 1.1080, 0.8255, '2025-12-15'),
+('PROD-510300', 1.1152, -0.6433, '2025-12-16'),
+('PROD-510300', 1.1254, -0.9068, '2025-12-17'),
+('PROD-510300', 1.1325, -0.6261, '2025-12-18'),
+('PROD-510300', 1.1458, -1.1567, '2025-12-19'),
+('PROD-510300', 1.1407, 0.4450, '2025-12-20'),
+('PROD-510300', 1.1430, -0.1977, '2025-12-21'),
+('PROD-510300', 1.1311, 1.0525, '2025-12-22'),
+('PROD-510300', 1.1353, -0.3703, '2025-12-23'),
+('PROD-510300', 1.1229, 1.1064, '2025-12-24'),
+('PROD-510300', 1.1289, -0.5295, '2025-12-25'),
+('PROD-510300', 1.1235, 0.4835, '2025-12-26'),
+('PROD-510300', 1.1177, 0.5168, '2025-12-27'),
+('PROD-510300', 1.1239, -0.5487, '2025-12-28'),
+('PROD-510300', 1.1200, 0.3525, '2025-12-29'),
+('PROD-510300', 1.1055, 1.3124, '2025-12-30'),
+('PROD-510300', 1.1120, -0.5878, '2025-12-31'),
+('PROD-510300', 1.0961, 1.4520, '2026-01-01'),
+('PROD-510300', 1.1117, -1.4051, '2026-01-02'),
+('PROD-510300', 1.1068, 0.4459, '2026-01-03'),
+('PROD-510300', 1.1229, -1.4303, '2026-01-04'),
+('PROD-510300', 1.1383, -1.3505, '2026-01-05'),
+('PROD-510300', 1.1506, -1.0696, '2026-01-06'),
+('PROD-510300', 1.1603, -0.8326, '2026-01-07'),
+('PROD-510300', 1.1478, 1.0869, '2026-01-08'),
+('PROD-510300', 1.1357, 1.0670, '2026-01-09'),
+('PROD-510300', 1.1518, -1.3942, '2026-01-10'),
+('PROD-510300', 1.1605, -0.7507, '2026-01-11'),
+('PROD-510300', 1.1585, 0.1710, '2026-01-12'),
+('PROD-510300', 1.1696, -0.9519, '2026-01-13'),
+('PROD-510300', 1.1638, 0.5007, '2026-01-14'),
+('PROD-510300', 1.1776, -1.1684, '2026-01-15'),
+('PROD-510300', 1.1797, -0.1754, '2026-01-16'),
+('PROD-510300', 1.1672, 1.0729, '2026-01-17'),
+('PROD-510300', 1.1686, -0.1195, '2026-01-18'),
+('PROD-510300', 1.1625, 0.5225, '2026-01-19'),
+('PROD-510300', 1.1711, -0.7354, '2026-01-20'),
+('PROD-510300', 1.1722, -0.0903, '2026-01-21'),
+('PROD-510300', 1.1579, 1.2369, '2026-01-22'),
+('PROD-510300', 1.1539, 0.3488, '2026-01-23'),
+('PROD-510300', 1.1681, -1.2143, '2026-01-24'),
+('PROD-510300', 1.1524, 1.3597, '2026-01-25'),
+('PROD-510300', 1.1523, 0.0100, '2026-01-26'),
+('PROD-510300', 1.1565, -0.3590, '2026-01-27'),
+('PROD-510300', 1.1508, 0.4993, '2026-01-28'),
+('PROD-510300', 1.1542, -0.2920, '2026-01-29'),
+('PROD-510300', 1.1525, 0.1491, '2026-01-30'),
+('PROD-510300', 1.1409, 1.0177, '2026-01-31'),
+('PROD-510300', 1.1441, -0.2763, '2026-02-01'),
+('PROD-510300', 1.1534, -0.8101, '2026-02-02'),
+('PROD-510300', 1.1683, -1.2783, '2026-02-03'),
+('PROD-510300', 1.1733, -0.4260, '2026-02-04'),
+('PROD-510300', 1.1851, -0.9924, '2026-02-05'),
+('PROD-510300', 1.1746, 0.8912, '2026-02-06'),
+('PROD-510300', 1.1841, -0.8026, '2026-02-07'),
+('PROD-510300', 1.1775, 0.5606, '2026-02-08'),
+('PROD-510300', 1.1788, -0.1096, '2026-02-09'),
+('PROD-510300', 1.1786, 0.0148, '2026-02-10'),
+('PROD-510300', 1.1950, -1.3761, '2026-02-11'),
+('PROD-510300', 1.1907, 0.3589, '2026-02-12'),
+('PROD-510300', 1.1979, -0.5980, '2026-02-13'),
+('PROD-510300', 1.1823, 1.3198, '2026-02-14'),
+('PROD-510300', 1.1816, 0.0621, '2026-02-15'),
+('PROD-510300', 1.1848, -0.2676, '2026-02-16'),
+('PROD-510300', 1.1933, -0.7120, '2026-02-17'),
+('PROD-510300', 1.1846, 0.7356, '2026-02-18'),
+('PROD-510300', 1.1841, 0.0393, '2026-02-19'),
+('PROD-510300', 1.1999, -1.3145, '2026-02-20'),
+('PROD-510300', 1.1884, 0.9676, '2026-02-21'),
+('PROD-510300', 1.1889, -0.0403, '2026-02-22'),
+('PROD-510300', 1.2038, -1.2393, '2026-02-23'),
+('PROD-510300', 1.2167, -1.0628, '2026-02-24'),
+('PROD-510300', 1.2221, -0.4382, '2026-02-25'),
+('PROD-510300', 1.2191, 0.2455, '2026-02-26'),
+('PROD-510300', 1.2277, -0.7008, '2026-02-27'),
+('PROD-510300', 1.2384, -0.8630, '2026-02-28'),
+('PROD-510300', 1.2333, 0.4121, '2026-03-01'),
+('PROD-510300', 1.2307, 0.2124, '2026-03-02'),
+('PROD-510300', 1.2151, 1.2826, '2026-03-03'),
+('PROD-510300', 1.2033, 0.9799, '2026-03-04'),
+('PROD-510300', 1.1883, 1.2657, '2026-03-05'),
+('PROD-510300', 1.2005, -1.0141, '2026-03-06'),
+('PROD-510300', 1.1837, 1.4221, '2026-03-07'),
+('PROD-510300', 1.1723, 0.9707, '2026-03-08'),
+('PROD-510300', 1.1778, -0.4679, '2026-03-09'),
+('PROD-510300', 1.1851, -0.6138, '2026-03-10'),
+('PROD-510300', 1.1790, 0.5156, '2026-03-11'),
+('PROD-510300', 1.1817, -0.2284, '2026-03-12'),
+('PROD-510300', 1.1693, 1.0602, '2026-03-13'),
+('PROD-510300', 1.1554, 1.2007, '2026-03-14'),
+('PROD-510300', 1.1474, 0.6987, '2026-03-15'),
+('PROD-510300', 1.1565, -0.7890, '2026-03-16'),
+('PROD-510300', 1.1561, 0.0333, '2026-03-17'),
+('PROD-510300', 1.1624, -0.5447, '2026-03-18'),
+('PROD-510300', 1.1737, -0.9615, '2026-03-19'),
+('PROD-510300', 1.1662, 0.6392, '2026-03-20'),
+('PROD-510300', 1.1728, -0.5623, '2026-03-21'),
+('PROD-510300', 1.1574, 1.3309, '2026-03-22'),
+('PROD-510300', 1.1447, 1.1138, '2026-03-23'),
+('PROD-510300', 1.1422, 0.2223, '2026-03-24'),
+('PROD-510300', 1.1384, 0.3315, '2026-03-25'),
+('PROD-510300', 1.1292, 0.8148, '2026-03-26'),
+('PROD-510300', 1.1390, -0.8627, '2026-03-27'),
+('PROD-510300', 1.1453, -0.5478, '2026-03-28'),
+('PROD-510300', 1.1290, 1.4468, '2026-03-29'),
+('PROD-510300', 1.1320, -0.2689, '2026-03-30'),
+('PROD-510300', 1.1424, -0.9136, '2026-03-31'),
+('PROD-510300', 1.1455, -0.2741, '2026-04-01'),
+('PROD-510300', 1.1495, -0.3495, '2026-04-02'),
+('PROD-510300', 1.1523, -0.2434, '2026-04-03'),
+('PROD-510300', 1.1678, -1.3253, '2026-04-04'),
+('PROD-510300', 1.1843, -1.3959, '2026-04-05'),
+('PROD-510300', 1.1833, 0.0845, '2026-04-06'),
+('PROD-510300', 1.1702, 1.1215, '2026-04-07'),
+('PROD-510300', 1.1742, -0.3429, '2026-04-08'),
+('PROD-510300', 1.1712, 0.2555, '2026-04-09'),
+('PROD-510300', 1.1626, 0.7404, '2026-04-10'),
+('PROD-510300', 1.1653, -0.2326, '2026-04-11'),
+('PROD-510300', 1.1527, 1.0896, '2026-04-12'),
+('PROD-510300', 1.1439, 0.7674, '2026-04-13'),
+('PROD-510300', 1.1506, -0.5857, '2026-04-14'),
+('PROD-510300', 1.1612, -0.9093, '2026-04-15'),
+('PROD-510300', 1.1487, 1.0911, '2026-04-16'),
+('PROD-510300', 1.1577, -0.7732, '2026-04-17'),
+('PROD-510300', 1.1733, -1.3331, '2026-04-18'),
+('PROD-510300', 1.1764, -0.2622, '2026-04-19'),
+('PROD-510300', 1.1813, -0.4133, '2026-04-20'),
+('PROD-510300', 1.1898, -0.7160, '2026-04-21'),
+('PROD-510300', 1.2016, -0.9844, '2026-04-22'),
+('PROD-510300', 1.1949, 0.5644, '2026-04-23'),
+('PROD-510300', 1.1824, 1.0534, '2026-04-24'),
+('PROD-510300', 1.1738, 0.7299, '2026-04-25'),
+('PROD-510300', 1.1701, 0.3175, '2026-04-26'),
+('PROD-510300', 1.1727, -0.2255, '2026-04-27'),
+('PROD-510300', 1.1902, -1.4709, '2026-04-28'),
+('PROD-510300', 1.2073, -1.4190, '2026-04-29'),
+('PROD-510300', 1.1936, 1.1491, '2026-04-30'),
+('PROD-510300', 1.2111, -1.4445, '2026-05-01'),
+('PROD-510300', 1.1950, 1.3476, '2026-05-02'),
+('PROD-510300', 1.1855, 0.7972, '2026-05-03'),
+('PROD-510300', 1.1786, 0.5877, '2026-05-04'),
+('PROD-510300', 1.1904, -0.9931, '2026-05-05'),
+('PROD-510300', 1.2030, -1.0493, '2026-05-06'),
+('PROD-510300', 1.2003, 0.2266, '2026-05-07'),
+('PROD-510300', 1.2151, -1.2191, '2026-05-08'),
+('PROD-510300', 1.2294, -1.1593, '2026-05-09'),
+('PROD-510300', 1.2443, -1.1985, '2026-05-10'),
+('PROD-510300', 1.2334, 0.8822, '2026-05-11'),
+('PROD-510300', 1.2303, 0.2543, '2026-05-12'),
+('PROD-510300', 1.2413, -0.8891, '2026-05-13'),
+('PROD-510300', 1.2323, 0.7325, '2026-05-14'),
+('PROD-510300', 1.2163, 1.3191, '2026-05-15'),
+('PROD-510300', 1.2299, -1.1047, '2026-05-16'),
+('PROD-510300', 1.2439, -1.1288, '2026-05-17'),
+('PROD-510300', 1.2441, -0.0133, '2026-05-18'),
+('PROD-510300', 1.2444, -0.0233, '2026-05-19'),
+('PROD-510300', 1.2437, 0.0534, '2026-05-20'),
+('PROD-510300', 1.2369, 0.5528, '2026-05-21'),
+('PROD-510300', 1.2453, -0.6715, '2026-05-22'),
+('PROD-510300', 1.2541, -0.7001, '2026-05-23'),
+('PROD-510300', 1.2437, 0.8350, '2026-05-24'),
+('PROD-510300', 1.2406, 0.2459, '2026-05-25'),
+('PROD-510300', 1.2382, 0.1962, '2026-05-26'),
+('PROD-510300', 1.2449, -0.5415, '2026-05-27'),
+('PROD-510300', 1.2319, 1.0577, '2026-05-28'),
+('PROD-510300', 1.2244, 0.6115, '2026-05-29'),
+('PROD-510300', 1.2312, -0.5495, '2026-05-30'),
+('PROD-510300', 1.2234, 0.6383, '2026-05-31'),
+('PROD-510300', 1.2271, -0.2993, '2026-06-01'),
+('PROD-510300', 1.2109, 1.3365, '2026-06-02'),
+('PROD-510300', 1.1946, 1.3637, '2026-06-03'),
+('PROD-510300', 1.1898, 0.4029, '2026-06-04'),
+('PROD-510300', 1.1870, 0.2364, '2026-06-05'),
+('PROD-510300', 1.1896, -0.2168, '2026-06-06'),
+('PROD-510300', 1.1833, 0.5303, '2026-06-07'),
+('PROD-510300', 1.1930, -0.8113, '2026-06-08'),
+('PROD-510300', 1.1948, -0.1478, '2026-06-09'),
+('PROD-510300', 1.1866, 0.6893, '2026-06-10'),
+('PROD-510300', 1.1817, 0.4152, '2026-06-11'),
+('PROD-510300', 1.1895, -0.6556, '2026-06-12'),
+('PROD-510300', 1.1845, 0.4259, '2026-06-13'),
+('PROD-510300', 1.1754, 0.7733, '2026-06-14'),
+('PROD-510300', 1.1606, 1.2772, '2026-06-15'),
+('PROD-510300', 1.1561, 0.3851, '2026-06-16'),
+('PROD-510300', 1.1480, 0.7095, '2026-06-17'),
+('PROD-510300', 1.1502, -0.1941, '2026-06-18'),
+('PROD-510300', 1.1523, -0.1791, '2026-06-19'),
+('PROD-510300', 1.1429, 0.8181, '2026-06-20'),
+('PROD-510300', 1.1505, -0.6631, '2026-06-21'),
+('PROD-510300', 1.1632, -1.0920, '2026-06-22'),
+('PROD-510300', 1.1504, 1.1168, '2026-06-23'),
+('PROD-510300', 1.1523, -0.1645, '2026-06-24'),
+('PROD-510300', 1.1678, -1.3245, '2026-06-25'),
+('PROD-510300', 1.1679, -0.0108, '2026-06-26'),
+('PROD-510300', 1.1799, -1.0130, '2026-06-27'),
+('PROD-510300', 1.1689, 0.9434, '2026-06-28'),
+('PROD-510300', 1.1538, 1.3119, '2026-06-29'),
+('PROD-510300', 1.1505, 0.2868, '2026-06-30'),
+('PROD-510300', 1.1642, -1.1799, '2026-07-01'),
+('PROD-510300', 1.1587, 0.4760, '2026-07-02'),
+('PROD-510300', 1.1583, 0.0368, '2026-07-03'),
+('PROD-510300', 1.1534, 0.4214, '2026-07-04'),
+('PROD-510300', 1.1561, -0.2307, '2026-07-05'),
+('PROD-510300', 1.1479, 0.7119, '2026-07-06'),
+('PROD-510300', 1.1625, -1.2589, '2026-07-07'),
+('PROD-510300', 1.1618, 0.0584, '2026-07-08'),
+('PROD-510300', 1.1564, 0.4684, '2026-07-09'),
+('PROD-510300', 1.1481, 0.7228, '2026-07-10'),
+('PROD-510300', 1.1370, 0.9799, '2026-07-11'),
+('PROD-510300', 1.1299, 0.6261, '2026-07-12'),
+('PROD-510300', 1.1197, 0.9067, '2026-07-13'),
+('PROD-510300', 1.1196, 0.0132, '2026-07-14'),
+('PROD-510300', 1.1184, 0.1057, '2026-07-15'),
+('PROD-510300', 1.1304, -1.0645, '2026-07-16'),
+('PROD-510300', 1.1284, 0.1776, '2026-07-17'),
+('PROD-510300', 1.1451, -1.4620, '2026-07-18'),
+('PROD-510300', 1.1531, -0.6973, '2026-07-19'),
+('PROD-510300', 1.1578, -0.4095, '2026-07-20'),
+('PROD-510300', 1.1455, 1.0734, '2026-07-21'),
+('PROD-510300', 1.1290, 1.4605, '2026-07-22'),
+('PROD-510300', 1.1439, -1.3029, '2026-07-23'),
+('PROD-510300', 1.1598, -1.3676, '2026-07-24'),
+('PROD-510300', 1.1511, 0.7528, '2026-07-25'),
+('PROD-510300', 1.1547, -0.3094, '2026-07-26'),
+('PROD-510300', 1.1496, 0.4403, '2026-07-27'),
+('PROD-510300', 1.1615, -1.0221, '2026-07-28'),
+('PROD-510300', 1.1631, -0.1403, '2026-07-29'),
+('PROD-510300', 1.1461, 1.4830, '2026-07-30'),
+('PROD-510300', 1.1427, 0.2971, '2026-07-31'),
+('PROD-510300', 1.1452, -0.2221, '2026-08-01'),
+('PROD-510300', 1.1401, 0.4506, '2026-08-02'),
+('PROD-510300', 1.1333, 0.5956, '2026-08-03'),
+('PROD-510300', 1.1501, -1.4592, '2026-08-04'),
+('PROD-510300', 1.1423, 0.6806, '2026-08-05'),
+('PROD-510300', 1.1392, 0.2681, '2026-08-06'),
+('PROD-510300', 1.1421, -0.2540, '2026-08-07'),
+('PROD-510300', 1.1361, 0.5251, '2026-08-08'),
+('PROD-510300', 1.1404, -0.3739, '2026-08-09'),
+('PROD-510300', 1.1306, 0.8651, '2026-08-10'),
+('PROD-510300', 1.1191, 1.0246, '2026-08-11'),
+('PROD-510300', 1.1287, -0.8492, '2026-08-12'),
+('PROD-510300', 1.1224, 0.5608, '2026-08-13'),
+('PROD-510300', 1.1274, -0.4464, '2026-08-14'),
+('PROD-510300', 1.1428, -1.3506, '2026-08-15'),
+('PROD-510300', 1.1472, -0.3822, '2026-08-16'),
+('PROD-510300', 1.1372, 0.8832, '2026-08-17'),
+('PROD-510300', 1.1341, 0.2760, '2026-08-18'),
+('PROD-510300', 1.1497, -1.3539, '2026-08-19'),
+('PROD-510300', 1.1357, 1.2353, '2026-08-20'),
+('PROD-510300', 1.1263, 0.8322, '2026-08-21'),
+('PROD-510300', 1.1272, -0.0766, '2026-08-22'),
+('PROD-510300', 1.1284, -0.1035, '2026-08-23'),
+('PROD-510300', 1.1240, 0.3873, '2026-08-24'),
+('PROD-510300', 1.1143, 0.8678, '2026-08-25'),
+('PROD-510300', 1.1194, -0.4555, '2026-08-26'),
+('PROD-510300', 1.1189, 0.0467, '2026-08-27'),
+('PROD-510300', 1.1034, 1.4020, '2026-08-28'),
+('PROD-510300', 1.0892, 1.3003, '2026-08-29'),
+('PROD-510300', 1.0992, -0.9098, '2026-08-30'),
+('PROD-510300', 1.0864, 1.1794, '2026-08-31'),
+('PROD-510300', 1.0772, 0.8531, '2026-09-01'),
+('PROD-510300', 1.0916, -1.3195, '2026-09-02'),
+('PROD-510300', 1.0884, 0.2956, '2026-09-03'),
+('PROD-510500', 0.9845, -0.4603, '2025-09-05'),
+('PROD-510500', 0.9745, 1.0312, '2025-09-06'),
+('PROD-510500', 0.9768, -0.2392, '2025-09-07'),
+('PROD-510500', 0.9766, 0.0180, '2025-09-08'),
+('PROD-510500', 0.9681, 0.8733, '2025-09-09'),
+('PROD-510500', 0.9773, -0.9371, '2025-09-10'),
+('PROD-510500', 0.9748, 0.2597, '2025-09-11'),
+('PROD-510500', 0.9715, 0.3393, '2025-09-12'),
+('PROD-510500', 0.9592, 1.2821, '2025-09-13'),
+('PROD-510500', 0.9491, 1.0611, '2025-09-14'),
+('PROD-510500', 0.9542, -0.5324, '2025-09-15'),
+('PROD-510500', 0.9653, -1.1525, '2025-09-16'),
+('PROD-510500', 0.9595, 0.6009, '2025-09-17'),
+('PROD-510500', 0.9630, -0.3590, '2025-09-18'),
+('PROD-510500', 0.9510, 1.2657, '2025-09-19'),
+('PROD-510500', 0.9613, -1.0729, '2025-09-20'),
+('PROD-510500', 0.9687, -0.7611, '2025-09-21'),
+('PROD-510500', 0.9737, -0.5142, '2025-09-22'),
+('PROD-510500', 0.9629, 1.1248, '2025-09-23'),
+('PROD-510500', 0.9706, -0.7939, '2025-09-24'),
+('PROD-510500', 0.9654, 0.5353, '2025-09-25'),
+('PROD-510500', 0.9727, -0.7550, '2025-09-26'),
+('PROD-510500', 0.9859, -1.3395, '2025-09-27'),
+('PROD-510500', 0.9911, -0.5209, '2025-09-28'),
+('PROD-510500', 1.0010, -0.9892, '2025-09-29'),
+('PROD-510500', 0.9976, 0.3456, '2025-09-30'),
+('PROD-510500', 0.9935, 0.4143, '2025-10-01'),
+('PROD-510500', 1.0067, -1.3066, '2025-10-02'),
+('PROD-510500', 0.9994, 0.7340, '2025-10-03'),
+('PROD-510500', 0.9957, 0.3704, '2025-10-04'),
+('PROD-510500', 0.9946, 0.1116, '2025-10-05'),
+('PROD-510500', 0.9854, 0.9330, '2025-10-06'),
+('PROD-510500', 0.9895, -0.4140, '2025-10-07'),
+('PROD-510500', 0.9787, 1.1057, '2025-10-08'),
+('PROD-510500', 0.9657, 1.3474, '2025-10-09'),
+('PROD-510500', 0.9550, 1.1202, '2025-10-10'),
+('PROD-510500', 0.9670, -1.2429, '2025-10-11'),
+('PROD-510500', 0.9742, -0.7378, '2025-10-12'),
+('PROD-510500', 0.9635, 1.1144, '2025-10-13'),
+('PROD-510500', 0.9582, 0.5483, '2025-10-14'),
+('PROD-510500', 0.9661, -0.8156, '2025-10-15'),
+('PROD-510500', 0.9618, 0.4464, '2025-10-16'),
+('PROD-510500', 0.9541, 0.8083, '2025-10-17'),
+('PROD-510500', 0.9549, -0.0803, '2025-10-18'),
+('PROD-510500', 0.9471, 0.8200, '2025-10-19'),
+('PROD-510500', 0.9554, -0.8637, '2025-10-20'),
+('PROD-510500', 0.9499, 0.5790, '2025-10-21'),
+('PROD-510500', 0.9610, -1.1511, '2025-10-22'),
+('PROD-510500', 0.9676, -0.6841, '2025-10-23'),
+('PROD-510500', 0.9817, -1.4348, '2025-10-24'),
+('PROD-510500', 0.9840, -0.2337, '2025-10-25'),
+('PROD-510500', 0.9785, 0.5633, '2025-10-26'),
+('PROD-510500', 0.9843, -0.5894, '2025-10-27'),
+('PROD-510500', 0.9933, -0.9106, '2025-10-28'),
+('PROD-510500', 0.9867, 0.6643, '2025-10-29'),
+('PROD-510500', 0.9828, 0.4005, '2025-10-30'),
+('PROD-510500', 0.9687, 1.4539, '2025-10-31'),
+('PROD-510500', 0.9614, 0.7553, '2025-11-01'),
+('PROD-510500', 0.9524, 0.9440, '2025-11-02'),
+('PROD-510500', 0.9488, 0.3754, '2025-11-03'),
+('PROD-510500', 0.9509, -0.2211, '2025-11-04'),
+('PROD-510500', 0.9545, -0.3743, '2025-11-05'),
+('PROD-510500', 0.9544, 0.0142, '2025-11-06'),
+('PROD-510500', 0.9444, 1.0628, '2025-11-07'),
+('PROD-510500', 0.9325, 1.2717, '2025-11-08'),
+('PROD-510500', 0.9309, 0.1705, '2025-11-09'),
+('PROD-510500', 0.9283, 0.2771, '2025-11-10'),
+('PROD-510500', 0.9343, -0.6463, '2025-11-11'),
+('PROD-510500', 0.9213, 1.4060, '2025-11-12'),
+('PROD-510500', 0.9240, -0.2958, '2025-11-13'),
+('PROD-510500', 0.9104, 1.4976, '2025-11-14'),
+('PROD-510500', 0.9043, 0.6797, '2025-11-15'),
+('PROD-510500', 0.8910, 1.4919, '2025-11-16'),
+('PROD-510500', 0.8843, 0.7544, '2025-11-17'),
+('PROD-510500', 0.8938, -1.0614, '2025-11-18'),
+('PROD-510500', 0.9052, -1.2618, '2025-11-19'),
+('PROD-510500', 0.9023, 0.3238, '2025-11-20'),
+('PROD-510500', 0.8961, 0.6923, '2025-11-21'),
+('PROD-510500', 0.8962, -0.0131, '2025-11-22'),
+('PROD-510500', 0.8876, 0.9664, '2025-11-23'),
+('PROD-510500', 0.8949, -0.8142, '2025-11-24'),
+('PROD-510500', 0.8908, 0.4567, '2025-11-25'),
+('PROD-510500', 0.9026, -1.3107, '2025-11-26'),
+('PROD-510500', 0.8917, 1.2280, '2025-11-27'),
+('PROD-510500', 0.8867, 0.5652, '2025-11-28'),
+('PROD-510500', 0.8774, 1.0561, '2025-11-29'),
+('PROD-510500', 0.8723, 0.5842, '2025-11-30'),
+('PROD-510500', 0.8815, -1.0474, '2025-12-01');
+
+INSERT INTO core_product_nav (product_id, nav, daily_chg_pct, nav_date) VALUES
+('PROD-510500', 0.8782, 0.3736, '2025-12-02'),
+('PROD-510500', 0.8778, 0.0501, '2025-12-03'),
+('PROD-510500', 0.8900, -1.3658, '2025-12-04'),
+('PROD-510500', 0.8969, -0.7661, '2025-12-05'),
+('PROD-510500', 0.8898, 0.8017, '2025-12-06'),
+('PROD-510500', 0.8927, -0.3218, '2025-12-07'),
+('PROD-510500', 0.9056, -1.4240, '2025-12-08'),
+('PROD-510500', 0.9167, -1.2079, '2025-12-09'),
+('PROD-510500', 0.9117, 0.5454, '2025-12-10'),
+('PROD-510500', 0.9096, 0.2293, '2025-12-11'),
+('PROD-510500', 0.9178, -0.8915, '2025-12-12'),
+('PROD-510500', 0.9122, 0.6135, '2025-12-13'),
+('PROD-510500', 0.9174, -0.5616, '2025-12-14'),
+('PROD-510500', 0.9141, 0.3593, '2025-12-15'),
+('PROD-510500', 0.9212, -0.7672, '2025-12-16'),
+('PROD-510500', 0.9164, 0.5280, '2025-12-17'),
+('PROD-510500', 0.9277, -1.2152, '2025-12-18'),
+('PROD-510500', 0.9350, -0.7785, '2025-12-19'),
+('PROD-510500', 0.9331, 0.2005, '2025-12-20'),
+('PROD-510500', 0.9215, 1.2543, '2025-12-21'),
+('PROD-510500', 0.9238, -0.2488, '2025-12-22'),
+('PROD-510500', 0.9173, 0.7136, '2025-12-23'),
+('PROD-510500', 0.9064, 1.2042, '2025-12-24'),
+('PROD-510500', 0.9016, 0.5322, '2025-12-25'),
+('PROD-510500', 0.9135, -1.2973, '2025-12-26'),
+('PROD-510500', 0.9067, 0.7485, '2025-12-27'),
+('PROD-510500', 0.8992, 0.8308, '2025-12-28'),
+('PROD-510500', 0.8930, 0.6985, '2025-12-29'),
+('PROD-510500', 0.8850, 0.8995, '2025-12-30'),
+('PROD-510500', 0.8734, 1.3250, '2025-12-31'),
+('PROD-510500', 0.8639, 1.1054, '2026-01-01'),
+('PROD-510500', 0.8578, 0.7095, '2026-01-02'),
+('PROD-510500', 0.8545, 0.3887, '2026-01-03'),
+('PROD-510500', 0.8518, 0.3152, '2026-01-04'),
+('PROD-510500', 0.8481, 0.4366, '2026-01-05'),
+('PROD-510500', 0.8603, -1.4127, '2026-01-06'),
+('PROD-510500', 0.8654, -0.5946, '2026-01-07'),
+('PROD-510500', 0.8541, 1.3273, '2026-01-08'),
+('PROD-510500', 0.8565, -0.2810, '2026-01-09'),
+('PROD-510500', 0.8599, -0.3919, '2026-01-10'),
+('PROD-510500', 0.8711, -1.2866, '2026-01-11'),
+('PROD-510500', 0.8641, 0.8088, '2026-01-12'),
+('PROD-510500', 0.8691, -0.5800, '2026-01-13'),
+('PROD-510500', 0.8753, -0.7112, '2026-01-14'),
+('PROD-510500', 0.8724, 0.3313, '2026-01-15'),
+('PROD-510500', 0.8707, 0.1902, '2026-01-16'),
+('PROD-510500', 0.8690, 0.1942, '2026-01-17'),
+('PROD-510500', 0.8593, 1.1310, '2026-01-18'),
+('PROD-510500', 0.8503, 1.0569, '2026-01-19'),
+('PROD-510500', 0.8409, 1.1162, '2026-01-20'),
+('PROD-510500', 0.8312, 1.1719, '2026-01-21'),
+('PROD-510500', 0.8426, -1.3494, '2026-01-22'),
+('PROD-510500', 0.8462, -0.4263, '2026-01-23'),
+('PROD-510500', 0.8417, 0.5400, '2026-01-24'),
+('PROD-510500', 0.8359, 0.6926, '2026-01-25'),
+('PROD-510500', 0.8282, 0.9356, '2026-01-26'),
+('PROD-510500', 0.8345, -0.7596, '2026-01-27'),
+('PROD-510500', 0.8454, -1.2853, '2026-01-28'),
+('PROD-510500', 0.8385, 0.8254, '2026-01-29'),
+('PROD-510500', 0.8415, -0.3571, '2026-01-30'),
+('PROD-510500', 0.8415, 0.0010, '2026-01-31'),
+('PROD-510500', 0.8475, -0.7130, '2026-02-01'),
+('PROD-510500', 0.8530, -0.6416, '2026-02-02'),
+('PROD-510500', 0.8536, -0.0722, '2026-02-03'),
+('PROD-510500', 0.8506, 0.3536, '2026-02-04'),
+('PROD-510500', 0.8434, 0.8559, '2026-02-05'),
+('PROD-510500', 0.8406, 0.3389, '2026-02-06'),
+('PROD-510500', 0.8435, -0.3380, '2026-02-07'),
+('PROD-510500', 0.8335, 1.1968, '2026-02-08'),
+('PROD-510500', 0.8228, 1.3041, '2026-02-09'),
+('PROD-510500', 0.8176, 0.6301, '2026-02-10'),
+('PROD-510500', 0.8109, 0.8241, '2026-02-11'),
+('PROD-510500', 0.8096, 0.1625, '2026-02-12'),
+('PROD-510500', 0.7980, 1.4518, '2026-02-13'),
+('PROD-510500', 0.8000, -0.2463, '2026-02-14'),
+('PROD-510500', 0.8033, -0.4073, '2026-02-15'),
+('PROD-510500', 0.8067, -0.4236, '2026-02-16'),
+('PROD-510500', 0.8147, -0.9817, '2026-02-17'),
+('PROD-510500', 0.8125, 0.2732, '2026-02-18'),
+('PROD-510500', 0.8167, -0.5194, '2026-02-19'),
+('PROD-510500', 0.8163, 0.0521, '2026-02-20'),
+('PROD-510500', 0.8043, 1.4859, '2026-02-21'),
+('PROD-510500', 0.7952, 1.1496, '2026-02-22'),
+('PROD-510500', 0.7892, 0.7558, '2026-02-23'),
+('PROD-510500', 0.7989, -1.2132, '2026-02-24'),
+('PROD-510500', 0.7954, 0.4391, '2026-02-25'),
+('PROD-510500', 0.7939, 0.1858, '2026-02-26'),
+('PROD-510500', 0.8058, -1.4735, '2026-02-27'),
+('PROD-510500', 0.7967, 1.1401, '2026-02-28'),
+('PROD-510500', 0.7942, 0.3149, '2026-03-01'),
+('PROD-510500', 0.7943, -0.0149, '2026-03-02'),
+('PROD-510500', 0.8045, -1.2729, '2026-03-03'),
+('PROD-510500', 0.7975, 0.8822, '2026-03-04'),
+('PROD-510500', 0.8062, -1.0762, '2026-03-05'),
+('PROD-510500', 0.8101, -0.4801, '2026-03-06'),
+('PROD-510500', 0.8049, 0.6440, '2026-03-07'),
+('PROD-510500', 0.8136, -1.0704, '2026-03-08'),
+('PROD-510500', 0.8085, 0.6285, '2026-03-09'),
+('PROD-510500', 0.8169, -1.0316, '2026-03-10'),
+('PROD-510500', 0.8261, -1.1184, '2026-03-11'),
+('PROD-510500', 0.8376, -1.3697, '2026-03-12'),
+('PROD-510500', 0.8286, 1.0855, '2026-03-13'),
+('PROD-510500', 0.8173, 1.3795, '2026-03-14'),
+('PROD-510500', 0.8196, -0.2835, '2026-03-15'),
+('PROD-510500', 0.8093, 1.2672, '2026-03-16'),
+('PROD-510500', 0.8159, -0.8104, '2026-03-17'),
+('PROD-510500', 0.8242, -1.0093, '2026-03-18'),
+('PROD-510500', 0.8340, -1.1781, '2026-03-19'),
+('PROD-510500', 0.8423, -0.9891, '2026-03-20'),
+('PROD-510500', 0.8468, -0.5354, '2026-03-21'),
+('PROD-510500', 0.8558, -1.0534, '2026-03-22'),
+('PROD-510500', 0.8538, 0.2353, '2026-03-23'),
+('PROD-510500', 0.8657, -1.3800, '2026-03-24'),
+('PROD-510500', 0.8559, 1.1391, '2026-03-25'),
+('PROD-510500', 0.8471, 1.0340, '2026-03-26'),
+('PROD-510500', 0.8533, -0.7258, '2026-03-27'),
+('PROD-510500', 0.8620, -1.0115, '2026-03-28'),
+('PROD-510500', 0.8546, 0.8656, '2026-03-29'),
+('PROD-510500', 0.8656, -1.2700, '2026-03-30'),
+('PROD-510500', 0.8748, -1.0538, '2026-03-31'),
+('PROD-510500', 0.8802, -0.6119, '2026-04-01'),
+('PROD-510500', 0.8799, 0.0293, '2026-04-02'),
+('PROD-510500', 0.8795, 0.0493, '2026-04-03'),
+('PROD-510500', 0.8672, 1.4175, '2026-04-04'),
+('PROD-510500', 0.8693, -0.2418, '2026-04-05'),
+('PROD-510500', 0.8686, 0.0754, '2026-04-06'),
+('PROD-510500', 0.8619, 0.7729, '2026-04-07'),
+('PROD-510500', 0.8590, 0.3397, '2026-04-08'),
+('PROD-510500', 0.8481, 1.2875, '2026-04-09'),
+('PROD-510500', 0.8528, -0.5553, '2026-04-10'),
+('PROD-510500', 0.8526, 0.0177, '2026-04-11'),
+('PROD-510500', 0.8470, 0.6616, '2026-04-12'),
+('PROD-510500', 0.8424, 0.5468, '2026-04-13'),
+('PROD-510500', 0.8308, 1.3927, '2026-04-14'),
+('PROD-510500', 0.8339, -0.3726, '2026-04-15'),
+('PROD-510500', 0.8311, 0.3310, '2026-04-16'),
+('PROD-510500', 0.8404, -1.1052, '2026-04-17'),
+('PROD-510500', 0.8386, 0.2151, '2026-04-18'),
+('PROD-510500', 0.8319, 0.8037, '2026-04-19'),
+('PROD-510500', 0.8260, 0.7144, '2026-04-20'),
+('PROD-510500', 0.8286, -0.3189, '2026-04-21'),
+('PROD-510500', 0.8371, -1.0203, '2026-04-22'),
+('PROD-510500', 0.8453, -0.9679, '2026-04-23'),
+('PROD-510500', 0.8530, -0.9014, '2026-04-24'),
+('PROD-510500', 0.8514, 0.1884, '2026-04-25'),
+('PROD-510500', 0.8402, 1.3388, '2026-04-26'),
+('PROD-510500', 0.8516, -1.3360, '2026-04-27'),
+('PROD-510500', 0.8399, 1.3923, '2026-04-28'),
+('PROD-510500', 0.8309, 1.0816, '2026-04-29'),
+('PROD-510500', 0.8196, 1.3801, '2026-04-30'),
+('PROD-510500', 0.8089, 1.3243, '2026-05-01'),
+('PROD-510500', 0.8177, -1.0818, '2026-05-02'),
+('PROD-510500', 0.8214, -0.4546, '2026-05-03'),
+('PROD-510500', 0.8133, 0.9996, '2026-05-04'),
+('PROD-510500', 0.8250, -1.4213, '2026-05-05'),
+('PROD-510500', 0.8255, -0.0600, '2026-05-06'),
+('PROD-510500', 0.8209, 0.5645, '2026-05-07'),
+('PROD-510500', 0.8176, 0.3999, '2026-05-08'),
+('PROD-510500', 0.8214, -0.4671, '2026-05-09'),
+('PROD-510500', 0.8280, -0.7993, '2026-05-10'),
+('PROD-510500', 0.8372, -1.0939, '2026-05-11'),
+('PROD-510500', 0.8371, 0.0104, '2026-05-12'),
+('PROD-510500', 0.8273, 1.1804, '2026-05-13'),
+('PROD-510500', 0.8180, 1.1402, '2026-05-14'),
+('PROD-510500', 0.8175, 0.0665, '2026-05-15'),
+('PROD-510500', 0.8099, 0.9348, '2026-05-16'),
+('PROD-510500', 0.8105, -0.0772, '2026-05-17'),
+('PROD-510500', 0.8001, 1.3025, '2026-05-18'),
+('PROD-510500', 0.7966, 0.4358, '2026-05-19'),
+('PROD-510500', 0.8082, -1.4319, '2026-05-20'),
+('PROD-510500', 0.7988, 1.1826, '2026-05-21'),
+('PROD-510500', 0.7989, -0.0132, '2026-05-22'),
+('PROD-510500', 0.7924, 0.8225, '2026-05-23'),
+('PROD-510500', 0.7923, 0.0110, '2026-05-24'),
+('PROD-510500', 0.7937, -0.1819, '2026-05-25'),
+('PROD-510500', 0.7916, 0.2649, '2026-05-26'),
+('PROD-510500', 0.7879, 0.4676, '2026-05-27'),
+('PROD-510500', 0.7805, 0.9455, '2026-05-28'),
+('PROD-510500', 0.7718, 1.1334, '2026-05-29'),
+('PROD-510500', 0.7740, -0.2798, '2026-05-30'),
+('PROD-510500', 0.7847, -1.3672, '2026-05-31'),
+('PROD-510500', 0.7934, -1.0994, '2026-06-01'),
+('PROD-510500', 0.7868, 0.8433, '2026-06-02'),
+('PROD-510500', 0.7772, 1.2371, '2026-06-03'),
+('PROD-510500', 0.7719, 0.6927, '2026-06-04'),
+('PROD-510500', 0.7740, -0.2753, '2026-06-05'),
+('PROD-510500', 0.7637, 1.3422, '2026-06-06'),
+('PROD-510500', 0.7611, 0.3474, '2026-06-07'),
+('PROD-510500', 0.7526, 1.1229, '2026-06-08'),
+('PROD-510500', 0.7612, -1.1340, '2026-06-09'),
+('PROD-510500', 0.7547, 0.8664, '2026-06-10'),
+('PROD-510500', 0.7635, -1.1476, '2026-06-11'),
+('PROD-510500', 0.7677, -0.5468, '2026-06-12'),
+('PROD-510500', 0.7770, -1.1987, '2026-06-13'),
+('PROD-510500', 0.7790, -0.2609, '2026-06-14'),
+('PROD-510500', 0.7770, 0.2510, '2026-06-15'),
+('PROD-510500', 0.7779, -0.1154, '2026-06-16'),
+('PROD-510500', 0.7741, 0.4892, '2026-06-17'),
+('PROD-510500', 0.7757, -0.2001, '2026-06-18'),
+('PROD-510500', 0.7706, 0.6561, '2026-06-19'),
+('PROD-510500', 0.7703, 0.0343, '2026-06-20'),
+('PROD-510500', 0.7683, 0.2590, '2026-06-21'),
+('PROD-510500', 0.7590, 1.2311, '2026-06-22'),
+('PROD-510500', 0.7693, -1.3342, '2026-06-23'),
+('PROD-510500', 0.7690, 0.0434, '2026-06-24'),
+('PROD-510500', 0.7689, 0.0186, '2026-06-25'),
+('PROD-510500', 0.7643, 0.6014, '2026-06-26'),
+('PROD-510500', 0.7742, -1.2824, '2026-06-27'),
+('PROD-510500', 0.7831, -1.1378, '2026-06-28'),
+('PROD-510500', 0.7947, -1.4580, '2026-06-29'),
+('PROD-510500', 0.7911, 0.4499, '2026-06-30'),
+('PROD-510500', 0.7916, -0.0598, '2026-07-01'),
+('PROD-510500', 0.7934, -0.2253, '2026-07-02'),
+('PROD-510500', 0.7973, -0.4841, '2026-07-03'),
+('PROD-510500', 0.7925, 0.6027, '2026-07-04'),
+('PROD-510500', 0.8044, -1.4756, '2026-07-05'),
+('PROD-510500', 0.8081, -0.4558, '2026-07-06'),
+('PROD-510500', 0.8004, 0.9640, '2026-07-07'),
+('PROD-510500', 0.7950, 0.6756, '2026-07-08'),
+('PROD-510500', 0.8050, -1.2383, '2026-07-09'),
+('PROD-510500', 0.8161, -1.3643, '2026-07-10'),
+('PROD-510500', 0.8041, 1.4911, '2026-07-11'),
+('PROD-510500', 0.7946, 1.1995, '2026-07-12'),
+('PROD-510500', 0.7878, 0.8634, '2026-07-13'),
+('PROD-510500', 0.7771, 1.3795, '2026-07-14'),
+('PROD-510500', 0.7803, -0.4103, '2026-07-15'),
+('PROD-510500', 0.7708, 1.2371, '2026-07-16'),
+('PROD-510500', 0.7747, -0.4995, '2026-07-17'),
+('PROD-510500', 0.7848, -1.2894, '2026-07-18'),
+('PROD-510500', 0.7833, 0.1888, '2026-07-19'),
+('PROD-510500', 0.7739, 1.2190, '2026-07-20'),
+('PROD-510500', 0.7795, -0.7204, '2026-07-21'),
+('PROD-510500', 0.7778, 0.2230, '2026-07-22'),
+('PROD-510500', 0.7812, -0.4401, '2026-07-23'),
+('PROD-510500', 0.7785, 0.3515, '2026-07-24'),
+('PROD-510500', 0.7773, 0.1554, '2026-07-25'),
+('PROD-510500', 0.7874, -1.2768, '2026-07-26'),
+('PROD-510500', 0.7815, 0.7571, '2026-07-27'),
+('PROD-510500', 0.7919, -1.3120, '2026-07-28'),
+('PROD-510500', 0.7903, 0.2074, '2026-07-29'),
+('PROD-510500', 0.7813, 1.1521, '2026-07-30'),
+('PROD-510500', 0.7744, 0.8973, '2026-07-31'),
+('PROD-510500', 0.7695, 0.6426, '2026-08-01'),
+('PROD-510500', 0.7772, -0.9966, '2026-08-02'),
+('PROD-510500', 0.7660, 1.4584, '2026-08-03'),
+('PROD-510500', 0.7585, 0.9873, '2026-08-04'),
+('PROD-510500', 0.7604, -0.2548, '2026-08-05'),
+('PROD-510500', 0.7578, 0.3480, '2026-08-06'),
+('PROD-510500', 0.7683, -1.3679, '2026-08-07'),
+('PROD-510500', 0.7697, -0.1815, '2026-08-08'),
+('PROD-510500', 0.7713, -0.2127, '2026-08-09'),
+('PROD-510500', 0.7602, 1.4586, '2026-08-10'),
+('PROD-510500', 0.7498, 1.3877, '2026-08-11'),
+('PROD-510500', 0.7577, -1.0444, '2026-08-12'),
+('PROD-510500', 0.7574, 0.0341, '2026-08-13'),
+('PROD-510500', 0.7516, 0.7690, '2026-08-14'),
+('PROD-510500', 0.7602, -1.1355, '2026-08-15'),
+('PROD-510500', 0.7574, 0.3710, '2026-08-16'),
+('PROD-510500', 0.7649, -0.9850, '2026-08-17'),
+('PROD-510500', 0.7610, 0.5180, '2026-08-18'),
+('PROD-510500', 0.7658, -0.6240, '2026-08-19'),
+('PROD-510500', 0.7709, -0.6583, '2026-08-20'),
+('PROD-510500', 0.7822, -1.4452, '2026-08-21'),
+('PROD-510500', 0.7933, -1.3977, '2026-08-22'),
+('PROD-510500', 0.7874, 0.7545, '2026-08-23'),
+('PROD-510500', 0.7823, 0.6460, '2026-08-24'),
+('PROD-510500', 0.7901, -0.9879, '2026-08-25'),
+('PROD-510500', 0.7916, -0.1937, '2026-08-26'),
+('PROD-510500', 0.7990, -0.9314, '2026-08-27'),
+('PROD-510500', 0.7940, 0.6313, '2026-08-28'),
+('PROD-510500', 0.7933, 0.0836, '2026-08-29'),
+('PROD-510500', 0.7930, 0.0359, '2026-08-30'),
+('PROD-510500', 0.7878, 0.6571, '2026-08-31'),
+('PROD-510500', 0.7869, 0.1084, '2026-09-01'),
+('PROD-510500', 0.7887, -0.2261, '2026-09-02'),
+('PROD-510500', 0.7792, 1.2136, '2026-09-03'),
+('PROD-XYZ999', 0.8930, 0.7840, '2025-09-05'),
+('PROD-XYZ999', 0.8885, 0.5038, '2025-09-06'),
+('PROD-XYZ999', 0.8895, -0.1129, '2025-09-07'),
+('PROD-XYZ999', 0.9015, -1.3262, '2025-09-08'),
+('PROD-XYZ999', 0.9020, -0.0602, '2025-09-09'),
+('PROD-XYZ999', 0.9052, -0.3481, '2025-09-10'),
+('PROD-XYZ999', 0.8944, 1.2029, '2025-09-11'),
+('PROD-XYZ999', 0.8953, -0.1021, '2025-09-12'),
+('PROD-XYZ999', 0.8933, 0.2234, '2025-09-13'),
+('PROD-XYZ999', 0.8814, 1.3539, '2025-09-14'),
+('PROD-XYZ999', 0.8819, -0.0513, '2025-09-15'),
+('PROD-XYZ999', 0.8863, -0.4999, '2025-09-16'),
+('PROD-XYZ999', 0.8914, -0.5777, '2025-09-17'),
+('PROD-XYZ999', 0.9016, -1.1287, '2025-09-18'),
+('PROD-XYZ999', 0.8971, 0.5025, '2025-09-19'),
+('PROD-XYZ999', 0.8891, 0.9028, '2025-09-20'),
+('PROD-XYZ999', 0.8848, 0.4804, '2025-09-21'),
+('PROD-XYZ999', 0.8798, 0.5646, '2025-09-22'),
+('PROD-XYZ999', 0.8742, 0.6370, '2025-09-23'),
+('PROD-XYZ999', 0.8751, -0.1025, '2025-09-24'),
+('PROD-XYZ999', 0.8753, -0.0216, '2025-09-25'),
+('PROD-XYZ999', 0.8630, 1.4266, '2025-09-26'),
+('PROD-XYZ999', 0.8627, 0.0323, '2025-09-27'),
+('PROD-XYZ999', 0.8612, 0.1693, '2025-09-28'),
+('PROD-XYZ999', 0.8524, 1.0312, '2025-09-29'),
+('PROD-XYZ999', 0.8653, -1.4941, '2025-09-30'),
+('PROD-XYZ999', 0.8752, -1.1353, '2025-10-01'),
+('PROD-XYZ999', 0.8639, 1.3138, '2025-10-02'),
+('PROD-XYZ999', 0.8530, 1.2794, '2025-10-03'),
+('PROD-XYZ999', 0.8413, 1.3891, '2025-10-04'),
+('PROD-XYZ999', 0.8530, -1.3734, '2025-10-05'),
+('PROD-XYZ999', 0.8599, -0.8030, '2025-10-06'),
+('PROD-XYZ999', 0.8510, 1.0440, '2025-10-07'),
+('PROD-XYZ999', 0.8523, -0.1532, '2025-10-08'),
+('PROD-XYZ999', 0.8633, -1.2710, '2025-10-09'),
+('PROD-XYZ999', 0.8590, 0.5038, '2025-10-10'),
+('PROD-XYZ999', 0.8570, 0.2296, '2025-10-11'),
+('PROD-XYZ999', 0.8673, -1.1865, '2025-10-12'),
+('PROD-XYZ999', 0.8575, 1.1390, '2025-10-13'),
+('PROD-XYZ999', 0.8551, 0.2761, '2025-10-14'),
+('PROD-XYZ999', 0.8444, 1.2614, '2025-10-15'),
+('PROD-XYZ999', 0.8502, -0.6773, '2025-10-16'),
+('PROD-XYZ999', 0.8477, 0.2941, '2025-10-17'),
+('PROD-XYZ999', 0.8425, 0.6173, '2025-10-18'),
+('PROD-XYZ999', 0.8499, -0.8702, '2025-10-19'),
+('PROD-XYZ999', 0.8489, 0.1210, '2025-10-20'),
+('PROD-XYZ999', 0.8601, -1.3069, '2025-10-21'),
+('PROD-XYZ999', 0.8725, -1.4252, '2025-10-22'),
+('PROD-XYZ999', 0.8598, 1.4737, '2025-10-23'),
+('PROD-XYZ999', 0.8719, -1.3879, '2025-10-24'),
+('PROD-XYZ999', 0.8737, -0.2091, '2025-10-25'),
+('PROD-XYZ999', 0.8637, 1.1587, '2025-10-26'),
+('PROD-XYZ999', 0.8701, -0.7380, '2025-10-27'),
+('PROD-XYZ999', 0.8632, 0.8003, '2025-10-28'),
+('PROD-XYZ999', 0.8685, -0.6128, '2025-10-29'),
+('PROD-XYZ999', 0.8711, -0.2988, '2025-10-30'),
+('PROD-XYZ999', 0.8630, 0.9437, '2025-10-31'),
+('PROD-XYZ999', 0.8761, -1.4921, '2025-11-01'),
+('PROD-XYZ999', 0.8634, 1.4749, '2025-11-02'),
+('PROD-XYZ999', 0.8541, 1.0946, '2025-11-03'),
+('PROD-XYZ999', 0.8435, 1.2524, '2025-11-04'),
+('PROD-XYZ999', 0.8402, 0.3945, '2025-11-05'),
+('PROD-XYZ999', 0.8341, 0.7329, '2025-11-06'),
+('PROD-XYZ999', 0.8304, 0.4456, '2025-11-07'),
+('PROD-XYZ999', 0.8282, 0.2652, '2025-11-08'),
+('PROD-XYZ999', 0.8262, 0.2458, '2025-11-09'),
+('PROD-XYZ999', 0.8214, 0.5808, '2025-11-10'),
+('PROD-XYZ999', 0.8233, -0.2356, '2025-11-11'),
+('PROD-XYZ999', 0.8273, -0.4832, '2025-11-12'),
+('PROD-XYZ999', 0.8154, 1.4644, '2025-11-13'),
+('PROD-XYZ999', 0.8240, -1.0426, '2025-11-14'),
+('PROD-XYZ999', 0.8193, 0.5771, '2025-11-15'),
+('PROD-XYZ999', 0.8113, 0.9873, '2025-11-16'),
+('PROD-XYZ999', 0.8044, 0.8597, '2025-11-17'),
+('PROD-XYZ999', 0.7978, 0.8240, '2025-11-18'),
+('PROD-XYZ999', 0.8014, -0.4444, '2025-11-19'),
+('PROD-XYZ999', 0.8036, -0.2706, '2025-11-20'),
+('PROD-XYZ999', 0.7924, 1.4117, '2025-11-21'),
+('PROD-XYZ999', 0.7892, 0.4055, '2025-11-22'),
+('PROD-XYZ999', 0.7937, -0.5617, '2025-11-23'),
+('PROD-XYZ999', 0.7963, -0.3214, '2025-11-24'),
+('PROD-XYZ999', 0.8016, -0.6635, '2025-11-25'),
+('PROD-XYZ999', 0.7930, 1.0796, '2025-11-26'),
+('PROD-XYZ999', 0.8027, -1.2046, '2025-11-27'),
+('PROD-XYZ999', 0.8097, -0.8693, '2025-11-28'),
+('PROD-XYZ999', 0.8047, 0.6199, '2025-11-29'),
+('PROD-XYZ999', 0.8084, -0.4544, '2025-11-30'),
+('PROD-XYZ999', 0.7982, 1.2787, '2025-12-01'),
+('PROD-XYZ999', 0.7958, 0.2987, '2025-12-02'),
+('PROD-XYZ999', 0.8026, -0.8437, '2025-12-03'),
+('PROD-XYZ999', 0.7998, 0.3507, '2025-12-04'),
+('PROD-XYZ999', 0.7883, 1.4580, '2025-12-05'),
+('PROD-XYZ999', 0.7984, -1.2701, '2025-12-06'),
+('PROD-XYZ999', 0.8025, -0.5157, '2025-12-07'),
+('PROD-XYZ999', 0.8051, -0.3273, '2025-12-08'),
+('PROD-XYZ999', 0.8138, -1.0647, '2025-12-09'),
+('PROD-XYZ999', 0.8028, 1.3713, '2025-12-10'),
+('PROD-XYZ999', 0.8135, -1.3196, '2025-12-11'),
+('PROD-XYZ999', 0.8147, -0.1449, '2025-12-12'),
+('PROD-XYZ999', 0.8049, 1.2114, '2025-12-13'),
+('PROD-XYZ999', 0.8123, -0.9140, '2025-12-14'),
+('PROD-XYZ999', 0.8202, -0.9579, '2025-12-15'),
+('PROD-XYZ999', 0.8142, 0.7395, '2025-12-16'),
+('PROD-XYZ999', 0.8177, -0.4235, '2025-12-17'),
+('PROD-XYZ999', 0.8176, 0.0161, '2025-12-18'),
+('PROD-XYZ999', 0.8117, 0.7214, '2025-12-19'),
+('PROD-XYZ999', 0.8067, 0.6197, '2025-12-20'),
+('PROD-XYZ999', 0.7957, 1.3867, '2025-12-21'),
+('PROD-XYZ999', 0.7995, -0.4785, '2025-12-22'),
+('PROD-XYZ999', 0.7878, 1.4812, '2025-12-23'),
+('PROD-XYZ999', 0.7814, 0.8163, '2025-12-24'),
+('PROD-XYZ999', 0.7778, 0.4598, '2025-12-25'),
+('PROD-XYZ999', 0.7814, -0.4598, '2025-12-26'),
+('PROD-XYZ999', 0.7732, 1.0665, '2025-12-27'),
+('PROD-XYZ999', 0.7708, 0.3139, '2025-12-28'),
+('PROD-XYZ999', 0.7671, 0.4776, '2025-12-29'),
+('PROD-XYZ999', 0.7639, 0.4155, '2025-12-30'),
+('PROD-XYZ999', 0.7610, 0.3821, '2025-12-31'),
+('PROD-XYZ999', 0.7668, -0.7554, '2026-01-01'),
+('PROD-XYZ999', 0.7604, 0.8376, '2026-01-02'),
+('PROD-XYZ999', 0.7601, 0.0455, '2026-01-03'),
+('PROD-XYZ999', 0.7691, -1.1715, '2026-01-04'),
+('PROD-XYZ999', 0.7657, 0.4446, '2026-01-05'),
+('PROD-XYZ999', 0.7727, -0.9031, '2026-01-06'),
+('PROD-XYZ999', 0.7820, -1.1872, '2026-01-07'),
+('PROD-XYZ999', 0.7866, -0.5876, '2026-01-08'),
+('PROD-XYZ999', 0.7960, -1.1795, '2026-01-09'),
+('PROD-XYZ999', 0.7958, 0.0262, '2026-01-10'),
+('PROD-XYZ999', 0.8063, -1.3062, '2026-01-11'),
+('PROD-XYZ999', 0.7978, 1.0686, '2026-01-12'),
+('PROD-XYZ999', 0.8038, -0.7423, '2026-01-13'),
+('PROD-XYZ999', 0.8067, -0.3585, '2026-01-14'),
+('PROD-XYZ999', 0.8103, -0.4408, '2026-01-15'),
+('PROD-XYZ999', 0.8015, 1.0955, '2026-01-16'),
+('PROD-XYZ999', 0.8093, -0.9659, '2026-01-17'),
+('PROD-XYZ999', 0.8055, 0.4738, '2026-01-18'),
+('PROD-XYZ999', 0.8178, -1.4989, '2026-01-19'),
+('PROD-XYZ999', 0.8078, 1.2436, '2026-01-20'),
+('PROD-XYZ999', 0.7980, 1.2251, '2026-01-21'),
+('PROD-XYZ999', 0.7982, -0.0249, '2026-01-22'),
+('PROD-XYZ999', 0.7866, 1.4697, '2026-01-23'),
+('PROD-XYZ999', 0.7928, -0.7788, '2026-01-24'),
+('PROD-XYZ999', 0.7814, 1.4646, '2026-01-25'),
+('PROD-XYZ999', 0.7701, 1.4644, '2026-01-26'),
+('PROD-XYZ999', 0.7607, 1.2397, '2026-01-27'),
+('PROD-XYZ999', 0.7707, -1.2918, '2026-01-28'),
+('PROD-XYZ999', 0.7652, 0.7223, '2026-01-29'),
+('PROD-XYZ999', 0.7580, 0.9541, '2026-01-30'),
+('PROD-XYZ999', 0.7473, 1.4344, '2026-01-31'),
+('PROD-XYZ999', 0.7422, 0.6928, '2026-02-01'),
+('PROD-XYZ999', 0.7412, 0.1347, '2026-02-02'),
+('PROD-XYZ999', 0.7377, 0.4685, '2026-02-03'),
+('PROD-XYZ999', 0.7382, -0.0618, '2026-02-04'),
+('PROD-XYZ999', 0.7309, 0.9968, '2026-02-05'),
+('PROD-XYZ999', 0.7269, 0.5476, '2026-02-06'),
+('PROD-XYZ999', 0.7262, 0.1004, '2026-02-07'),
+('PROD-XYZ999', 0.7248, 0.1982, '2026-02-08'),
+('PROD-XYZ999', 0.7317, -0.9482, '2026-02-09'),
+('PROD-XYZ999', 0.7375, -0.7891, '2026-02-10'),
+('PROD-XYZ999', 0.7465, -1.2037, '2026-02-11'),
+('PROD-XYZ999', 0.7448, 0.2339, '2026-02-12'),
+('PROD-XYZ999', 0.7492, -0.5899, '2026-02-13'),
+('PROD-XYZ999', 0.7503, -0.1441, '2026-02-14'),
+('PROD-XYZ999', 0.7556, -0.7051, '2026-02-15'),
+('PROD-XYZ999', 0.7580, -0.3153, '2026-02-16'),
+('PROD-XYZ999', 0.7625, -0.5964, '2026-02-17'),
+('PROD-XYZ999', 0.7648, -0.3008, '2026-02-18'),
+('PROD-XYZ999', 0.7739, -1.1743, '2026-02-19'),
+('PROD-XYZ999', 0.7790, -0.6536, '2026-02-20'),
+('PROD-XYZ999', 0.7764, 0.3293, '2026-02-21'),
+('PROD-XYZ999', 0.7656, 1.4066, '2026-02-22'),
+('PROD-XYZ999', 0.7645, 0.1444, '2026-02-23'),
+('PROD-XYZ999', 0.7712, -0.8658, '2026-02-24'),
+('PROD-XYZ999', 0.7659, 0.6922, '2026-02-25'),
+('PROD-XYZ999', 0.7647, 0.1576, '2026-02-26'),
+('PROD-XYZ999', 0.7737, -1.1619, '2026-02-27'),
+('PROD-XYZ999', 0.7661, 0.9884, '2026-02-28'),
+('PROD-XYZ999', 0.7582, 1.0417, '2026-03-01'),
+('PROD-XYZ999', 0.7518, 0.8494, '2026-03-02'),
+('PROD-XYZ999', 0.7626, -1.4130, '2026-03-03'),
+('PROD-XYZ999', 0.7635, -0.1153, '2026-03-04'),
+('PROD-XYZ999', 0.7622, 0.1665, '2026-03-05'),
+('PROD-XYZ999', 0.7512, 1.4655, '2026-03-06'),
+('PROD-XYZ999', 0.7499, 0.1774, '2026-03-07'),
+('PROD-XYZ999', 0.7420, 1.0669, '2026-03-08'),
+('PROD-XYZ999', 0.7468, -0.6464, '2026-03-09'),
+('PROD-XYZ999', 0.7372, 1.2984, '2026-03-10'),
+('PROD-XYZ999', 0.7332, 0.5469, '2026-03-11'),
+('PROD-XYZ999', 0.7259, 0.9991, '2026-03-12'),
+('PROD-XYZ999', 0.7227, 0.4493, '2026-03-13'),
+('PROD-XYZ999', 0.7303, -1.0359, '2026-03-14'),
+('PROD-XYZ999', 0.7301, 0.0217, '2026-03-15'),
+('PROD-XYZ999', 0.7202, 1.3791, '2026-03-16'),
+('PROD-XYZ999', 0.7250, -0.6595, '2026-03-17'),
+('PROD-XYZ999', 0.7220, 0.4112, '2026-03-18'),
+('PROD-XYZ999', 0.7276, -0.7744, '2026-03-19'),
+('PROD-XYZ999', 0.7227, 0.6838, '2026-03-20'),
+('PROD-XYZ999', 0.7279, -0.7171, '2026-03-21'),
+('PROD-XYZ999', 0.7249, 0.4096, '2026-03-22'),
+('PROD-XYZ999', 0.7223, 0.3607, '2026-03-23'),
+('PROD-XYZ999', 0.7258, -0.4754, '2026-03-24'),
+('PROD-XYZ999', 0.7307, -0.6678, '2026-03-25'),
+('PROD-XYZ999', 0.7243, 0.8787, '2026-03-26'),
+('PROD-XYZ999', 0.7242, 0.0143, '2026-03-27'),
+('PROD-XYZ999', 0.7191, 0.7135, '2026-03-28'),
+('PROD-XYZ999', 0.7123, 0.9591, '2026-03-29'),
+('PROD-XYZ999', 0.7053, 0.9903, '2026-03-30'),
+('PROD-XYZ999', 0.6989, 0.9224, '2026-03-31'),
+('PROD-XYZ999', 0.6908, 1.1713, '2026-04-01'),
+('PROD-XYZ999', 0.6813, 1.3972, '2026-04-02'),
+('PROD-XYZ999', 0.6808, 0.0796, '2026-04-03'),
+('PROD-XYZ999', 0.6763, 0.6602, '2026-04-04'),
+('PROD-XYZ999', 0.6822, -0.8701, '2026-04-05'),
+('PROD-XYZ999', 0.6836, -0.2004, '2026-04-06'),
+('PROD-XYZ999', 0.6822, 0.2023, '2026-04-07'),
+('PROD-XYZ999', 0.6826, -0.0559, '2026-04-08'),
+('PROD-XYZ999', 0.6912, -1.2479, '2026-04-09'),
+('PROD-XYZ999', 0.6883, 0.4193, '2026-04-10'),
+('PROD-XYZ999', 0.6933, -0.7161, '2026-04-11'),
+('PROD-XYZ999', 0.6889, 0.6323, '2026-04-12'),
+('PROD-XYZ999', 0.6837, 0.7539, '2026-04-13'),
+('PROD-XYZ999', 0.6825, 0.1732, '2026-04-14'),
+('PROD-XYZ999', 0.6797, 0.4059, '2026-04-15'),
+('PROD-XYZ999', 0.6852, -0.7961, '2026-04-16');
+
+INSERT INTO core_product_nav (product_id, nav, daily_chg_pct, nav_date) VALUES
+('PROD-XYZ999', 0.6786, 0.9799, '2026-04-17'),
+('PROD-XYZ999', 0.6794, -0.1142, '2026-04-18'),
+('PROD-XYZ999', 0.6739, 0.8165, '2026-04-19'),
+('PROD-XYZ999', 0.6799, -0.8804, '2026-04-20'),
+('PROD-XYZ999', 0.6855, -0.8111, '2026-04-21'),
+('PROD-XYZ999', 0.6906, -0.7344, '2026-04-22'),
+('PROD-XYZ999', 0.6808, 1.4384, '2026-04-23'),
+('PROD-XYZ999', 0.6891, -1.2061, '2026-04-24'),
+('PROD-XYZ999', 0.6892, -0.0151, '2026-04-25'),
+('PROD-XYZ999', 0.6964, -1.0311, '2026-04-26'),
+('PROD-XYZ999', 0.6863, 1.4740, '2026-04-27'),
+('PROD-XYZ999', 0.6767, 1.4213, '2026-04-28'),
+('PROD-XYZ999', 0.6756, 0.1654, '2026-04-29'),
+('PROD-XYZ999', 0.6774, -0.2715, '2026-04-30'),
+('PROD-XYZ999', 0.6850, -1.1149, '2026-05-01'),
+('PROD-XYZ999', 0.6867, -0.2428, '2026-05-02'),
+('PROD-XYZ999', 0.6940, -1.0466, '2026-05-03'),
+('PROD-XYZ999', 0.6992, -0.7465, '2026-05-04'),
+('PROD-XYZ999', 0.6974, 0.2615, '2026-05-05'),
+('PROD-XYZ999', 0.6936, 0.5463, '2026-05-06'),
+('PROD-XYZ999', 0.6873, 0.9143, '2026-05-07'),
+('PROD-XYZ999', 0.6889, -0.2293, '2026-05-08'),
+('PROD-XYZ999', 0.6933, -0.6300, '2026-05-09'),
+('PROD-XYZ999', 0.6932, 0.0212, '2026-05-10'),
+('PROD-XYZ999', 0.6951, -0.2777, '2026-05-11'),
+('PROD-XYZ999', 0.7014, -0.8955, '2026-05-12'),
+('PROD-XYZ999', 0.7047, -0.4671, '2026-05-13'),
+('PROD-XYZ999', 0.6980, 0.9561, '2026-05-14'),
+('PROD-XYZ999', 0.6981, -0.0213, '2026-05-15'),
+('PROD-XYZ999', 0.6901, 1.1599, '2026-05-16'),
+('PROD-XYZ999', 0.6970, -0.9842, '2026-05-17'),
+('PROD-XYZ999', 0.6898, 1.0404, '2026-05-18'),
+('PROD-XYZ999', 0.6913, -0.2188, '2026-05-19'),
+('PROD-XYZ999', 0.7003, -1.2829, '2026-05-20'),
+('PROD-XYZ999', 0.6930, 1.0530, '2026-05-21'),
+('PROD-XYZ999', 0.6946, -0.2343, '2026-05-22'),
+('PROD-XYZ999', 0.6998, -0.7497, '2026-05-23'),
+('PROD-XYZ999', 0.7027, -0.4141, '2026-05-24'),
+('PROD-XYZ999', 0.7017, 0.1400, '2026-05-25'),
+('PROD-XYZ999', 0.6990, 0.3902, '2026-05-26'),
+('PROD-XYZ999', 0.7084, -1.3217, '2026-05-27'),
+('PROD-XYZ999', 0.7068, 0.2326, '2026-05-28'),
+('PROD-XYZ999', 0.6995, 1.0388, '2026-05-29'),
+('PROD-XYZ999', 0.7015, -0.2820, '2026-05-30'),
+('PROD-XYZ999', 0.6945, 1.0079, '2026-05-31'),
+('PROD-XYZ999', 0.6902, 0.6271, '2026-06-01'),
+('PROD-XYZ999', 0.6852, 0.7348, '2026-06-02'),
+('PROD-XYZ999', 0.6930, -1.1285, '2026-06-03'),
+('PROD-XYZ999', 0.6954, -0.3510, '2026-06-04'),
+('PROD-XYZ999', 0.7022, -0.9675, '2026-06-05'),
+('PROD-XYZ999', 0.6991, 0.4431, '2026-06-06'),
+('PROD-XYZ999', 0.7095, -1.4712, '2026-06-07'),
+('PROD-XYZ999', 0.7072, 0.3249, '2026-06-08'),
+('PROD-XYZ999', 0.7016, 0.7977, '2026-06-09'),
+('PROD-XYZ999', 0.7036, -0.2813, '2026-06-10'),
+('PROD-XYZ999', 0.7026, 0.1448, '2026-06-11'),
+('PROD-XYZ999', 0.6963, 0.9101, '2026-06-12'),
+('PROD-XYZ999', 0.6936, 0.3896, '2026-06-13'),
+('PROD-XYZ999', 0.6984, -0.6876, '2026-06-14'),
+('PROD-XYZ999', 0.6980, 0.0594, '2026-06-15'),
+('PROD-XYZ999', 0.6881, 1.4387, '2026-06-16'),
+('PROD-XYZ999', 0.6790, 1.3399, '2026-06-17'),
+('PROD-XYZ999', 0.6789, 0.0201, '2026-06-18'),
+('PROD-XYZ999', 0.6775, 0.2096, '2026-06-19'),
+('PROD-XYZ999', 0.6866, -1.3297, '2026-06-20'),
+('PROD-XYZ999', 0.6881, -0.2177, '2026-06-21'),
+('PROD-XYZ999', 0.6922, -0.5973, '2026-06-22'),
+('PROD-XYZ999', 0.6938, -0.2317, '2026-06-23'),
+('PROD-XYZ999', 0.6916, 0.3189, '2026-06-24'),
+('PROD-XYZ999', 0.6971, -0.7822, '2026-06-25'),
+('PROD-XYZ999', 0.6961, 0.1419, '2026-06-26'),
+('PROD-XYZ999', 0.6885, 1.1034, '2026-06-27'),
+('PROD-XYZ999', 0.6854, 0.4495, '2026-06-28'),
+('PROD-XYZ999', 0.6880, -0.3816, '2026-06-29'),
+('PROD-XYZ999', 0.6867, 0.1950, '2026-06-30'),
+('PROD-XYZ999', 0.6869, -0.0295, '2026-07-01'),
+('PROD-XYZ999', 0.6773, 1.4237, '2026-07-02'),
+('PROD-XYZ999', 0.6694, 1.1853, '2026-07-03'),
+('PROD-XYZ999', 0.6724, -0.4497, '2026-07-04'),
+('PROD-XYZ999', 0.6633, 1.3650, '2026-07-05'),
+('PROD-XYZ999', 0.6658, -0.3760, '2026-07-06'),
+('PROD-XYZ999', 0.6630, 0.4271, '2026-07-07'),
+('PROD-XYZ999', 0.6535, 1.4558, '2026-07-08'),
+('PROD-XYZ999', 0.6571, -0.5475, '2026-07-09'),
+('PROD-XYZ999', 0.6600, -0.4341, '2026-07-10'),
+('PROD-XYZ999', 0.6616, -0.2357, '2026-07-11'),
+('PROD-XYZ999', 0.6559, 0.8757, '2026-07-12'),
+('PROD-XYZ999', 0.6529, 0.4550, '2026-07-13'),
+('PROD-XYZ999', 0.6584, -0.8376, '2026-07-14'),
+('PROD-XYZ999', 0.6598, -0.2079, '2026-07-15'),
+('PROD-XYZ999', 0.6600, -0.0256, '2026-07-16'),
+('PROD-XYZ999', 0.6572, 0.4267, '2026-07-17'),
+('PROD-XYZ999', 0.6571, 0.0151, '2026-07-18'),
+('PROD-XYZ999', 0.6563, 0.1157, '2026-07-19'),
+('PROD-XYZ999', 0.6503, 0.9160, '2026-07-20'),
+('PROD-XYZ999', 0.6453, 0.7698, '2026-07-21'),
+('PROD-XYZ999', 0.6484, -0.4744, '2026-07-22'),
+('PROD-XYZ999', 0.6504, -0.3147, '2026-07-23'),
+('PROD-XYZ999', 0.6415, 1.3905, '2026-07-24'),
+('PROD-XYZ999', 0.6380, 0.5423, '2026-07-25'),
+('PROD-XYZ999', 0.6438, -0.9045, '2026-07-26'),
+('PROD-XYZ999', 0.6417, 0.3206, '2026-07-27'),
+('PROD-XYZ999', 0.6512, -1.4535, '2026-07-28'),
+('PROD-XYZ999', 0.6447, 1.0125, '2026-07-29'),
+('PROD-XYZ999', 0.6403, 0.6849, '2026-07-30'),
+('PROD-XYZ999', 0.6483, -1.2348, '2026-07-31'),
+('PROD-XYZ999', 0.6455, 0.4366, '2026-08-01'),
+('PROD-XYZ999', 0.6473, -0.2819, '2026-08-02'),
+('PROD-XYZ999', 0.6383, 1.4063, '2026-08-03'),
+('PROD-XYZ999', 0.6291, 1.4604, '2026-08-04'),
+('PROD-XYZ999', 0.6199, 1.4773, '2026-08-05'),
+('PROD-XYZ999', 0.6225, -0.4191, '2026-08-06'),
+('PROD-XYZ999', 0.6140, 1.3852, '2026-08-07'),
+('PROD-XYZ999', 0.6225, -1.3671, '2026-08-08'),
+('PROD-XYZ999', 0.6313, -1.3875, '2026-08-09'),
+('PROD-XYZ999', 0.6251, 0.9853, '2026-08-10'),
+('PROD-XYZ999', 0.6181, 1.1293, '2026-08-11'),
+('PROD-XYZ999', 0.6197, -0.2639, '2026-08-12'),
+('PROD-XYZ999', 0.6131, 1.0781, '2026-08-13'),
+('PROD-XYZ999', 0.6100, 0.5125, '2026-08-14'),
+('PROD-XYZ999', 0.6031, 1.1520, '2026-08-15'),
+('PROD-XYZ999', 0.5974, 0.9519, '2026-08-16'),
+('PROD-XYZ999', 0.6011, -0.6190, '2026-08-17'),
+('PROD-XYZ999', 0.5955, 0.9342, '2026-08-18'),
+('PROD-XYZ999', 0.6025, -1.1635, '2026-08-19'),
+('PROD-XYZ999', 0.5987, 0.6322, '2026-08-20'),
+('PROD-XYZ999', 0.6050, -1.0492, '2026-08-21'),
+('PROD-XYZ999', 0.6118, -1.1054, '2026-08-22'),
+('PROD-XYZ999', 0.6077, 0.6820, '2026-08-23'),
+('PROD-XYZ999', 0.6057, 0.3321, '2026-08-24'),
+('PROD-XYZ999', 0.6054, 0.0558, '2026-08-25'),
+('PROD-XYZ999', 0.6107, -0.8754, '2026-08-26'),
+('PROD-XYZ999', 0.6078, 0.4794, '2026-08-27'),
+('PROD-XYZ999', 0.6043, 0.5803, '2026-08-28'),
+('PROD-XYZ999', 0.6131, -1.4425, '2026-08-29'),
+('PROD-XYZ999', 0.6214, -1.3323, '2026-08-30'),
+('PROD-XYZ999', 0.6236, -0.3450, '2026-08-31'),
+('PROD-XYZ999', 0.6224, 0.1984, '2026-09-01'),
+('PROD-XYZ999', 0.6227, -0.0429, '2026-09-02'),
+('PROD-XYZ999', 0.6291, -1.0122, '2026-09-03'),
+('PROD-000001', 1.0006, 0.1393, '2025-09-05'),
+('PROD-000001', 1.0029, -0.2340, '2025-09-06'),
+('PROD-000001', 1.0182, -1.5000, '2025-09-07'),
+('PROD-000001', 1.0304, -1.1863, '2025-09-08'),
+('PROD-000001', 1.0198, 1.0346, '2025-09-09'),
+('PROD-000001', 1.0069, 1.2804, '2025-09-10'),
+('PROD-000001', 1.0083, -0.1401, '2025-09-11'),
+('PROD-000001', 1.0103, -0.2015, '2025-09-12'),
+('PROD-000001', 1.0049, 0.5347, '2025-09-13'),
+('PROD-000001', 1.0022, 0.2648, '2025-09-14'),
+('PROD-000001', 1.0017, 0.0456, '2025-09-15'),
+('PROD-000001', 1.0152, -1.3293, '2025-09-16'),
+('PROD-000001', 1.0021, 1.3113, '2025-09-17'),
+('PROD-000001', 1.0075, -0.5313, '2025-09-18'),
+('PROD-000001', 1.0169, -0.9262, '2025-09-19'),
+('PROD-000001', 1.0310, -1.3720, '2025-09-20'),
+('PROD-000001', 1.0315, -0.0441, '2025-09-21'),
+('PROD-000001', 1.0463, -1.4150, '2025-09-22'),
+('PROD-000001', 1.0497, -0.3284, '2025-09-23'),
+('PROD-000001', 1.0485, 0.1169, '2025-09-24'),
+('PROD-000001', 1.0353, 1.2734, '2025-09-25'),
+('PROD-000001', 1.0239, 1.1107, '2025-09-26'),
+('PROD-000001', 1.0109, 1.2882, '2025-09-27'),
+('PROD-000001', 1.0044, 0.6504, '2025-09-28'),
+('PROD-000001', 1.0156, -1.1005, '2025-09-29'),
+('PROD-000001', 1.0280, -1.2026, '2025-09-30'),
+('PROD-000001', 1.0401, -1.1663, '2025-10-01'),
+('PROD-000001', 1.0372, 0.2833, '2025-10-02'),
+('PROD-000001', 1.0289, 0.8075, '2025-10-03'),
+('PROD-000001', 1.0438, -1.4285, '2025-10-04'),
+('PROD-000001', 1.0317, 1.1686, '2025-10-05'),
+('PROD-000001', 1.0203, 1.1217, '2025-10-06'),
+('PROD-000001', 1.0342, -1.3486, '2025-10-07'),
+('PROD-000001', 1.0316, 0.2508, '2025-10-08'),
+('PROD-000001', 1.0426, -1.0555, '2025-10-09'),
+('PROD-000001', 1.0369, 0.5519, '2025-10-10'),
+('PROD-000001', 1.0355, 0.1349, '2025-10-11'),
+('PROD-000001', 1.0247, 1.0566, '2025-10-12'),
+('PROD-000001', 1.0325, -0.7540, '2025-10-13'),
+('PROD-000001', 1.0176, 1.4649, '2025-10-14'),
+('PROD-000001', 1.0267, -0.8886, '2025-10-15'),
+('PROD-000001', 1.0200, 0.6605, '2025-10-16'),
+('PROD-000001', 1.0351, -1.4549, '2025-10-17'),
+('PROD-000001', 1.0351, -0.0033, '2025-10-18'),
+('PROD-000001', 1.0355, -0.0407, '2025-10-19'),
+('PROD-000001', 1.0326, 0.2784, '2025-10-20'),
+('PROD-000001', 1.0369, -0.4101, '2025-10-21'),
+('PROD-000001', 1.0270, 0.9653, '2025-10-22'),
+('PROD-000001', 1.0404, -1.2853, '2025-10-23'),
+('PROD-000001', 1.0469, -0.6188, '2025-10-24'),
+('PROD-000001', 1.0387, 0.7929, '2025-10-25'),
+('PROD-000001', 1.0372, 0.1488, '2025-10-26'),
+('PROD-000001', 1.0405, -0.3173, '2025-10-27'),
+('PROD-000001', 1.0509, -0.9928, '2025-10-28'),
+('PROD-000001', 1.0482, 0.2621, '2025-10-29'),
+('PROD-000001', 1.0616, -1.2641, '2025-10-30'),
+('PROD-000001', 1.0588, 0.2610, '2025-10-31'),
+('PROD-000001', 1.0730, -1.3257, '2025-11-01'),
+('PROD-000001', 1.0680, 0.4694, '2025-11-02'),
+('PROD-000001', 1.0701, -0.1981, '2025-11-03'),
+('PROD-000001', 1.0666, 0.3242, '2025-11-04'),
+('PROD-000001', 1.0628, 0.3614, '2025-11-05'),
+('PROD-000001', 1.0755, -1.1811, '2025-11-06'),
+('PROD-000001', 1.0726, 0.2657, '2025-11-07'),
+('PROD-000001', 1.0796, -0.6460, '2025-11-08'),
+('PROD-000001', 1.0954, -1.4393, '2025-11-09'),
+('PROD-000001', 1.0817, 1.2666, '2025-11-10'),
+('PROD-000001', 1.0875, -0.5331, '2025-11-11'),
+('PROD-000001', 1.0960, -0.7737, '2025-11-12'),
+('PROD-000001', 1.1031, -0.6445, '2025-11-13'),
+('PROD-000001', 1.1079, -0.4367, '2025-11-14'),
+('PROD-000001', 1.1049, 0.2724, '2025-11-15'),
+('PROD-000001', 1.1045, 0.0320, '2025-11-16'),
+('PROD-000001', 1.1176, -1.1755, '2025-11-17'),
+('PROD-000001', 1.1223, -0.4184, '2025-11-18'),
+('PROD-000001', 1.1355, -1.1619, '2025-11-19'),
+('PROD-000001', 1.1485, -1.1338, '2025-11-20'),
+('PROD-000001', 1.1375, 0.9627, '2025-11-21'),
+('PROD-000001', 1.1446, -0.6225, '2025-11-22'),
+('PROD-000001', 1.1328, 1.0460, '2025-11-23'),
+('PROD-000001', 1.1456, -1.1185, '2025-11-24'),
+('PROD-000001', 1.1369, 0.7665, '2025-11-25'),
+('PROD-000001', 1.1541, -1.4940, '2025-11-26'),
+('PROD-000001', 1.1653, -0.9597, '2025-11-27'),
+('PROD-000001', 1.1803, -1.2684, '2025-11-28'),
+('PROD-000001', 1.1864, -0.5118, '2025-11-29'),
+('PROD-000001', 1.1996, -1.1009, '2025-11-30'),
+('PROD-000001', 1.2145, -1.2305, '2025-12-01'),
+('PROD-000001', 1.2298, -1.2474, '2025-12-02'),
+('PROD-000001', 1.2162, 1.1154, '2025-12-03'),
+('PROD-000001', 1.2305, -1.1593, '2025-12-04'),
+('PROD-000001', 1.2296, 0.0769, '2025-12-05'),
+('PROD-000001', 1.2319, -0.1885, '2025-12-06'),
+('PROD-000001', 1.2388, -0.5590, '2025-12-07'),
+('PROD-000001', 1.2418, -0.2442, '2025-12-08'),
+('PROD-000001', 1.2365, 0.4251, '2025-12-09'),
+('PROD-000001', 1.2256, 0.8885, '2025-12-10'),
+('PROD-000001', 1.2342, -0.7007, '2025-12-11'),
+('PROD-000001', 1.2164, 1.4653, '2025-12-12'),
+('PROD-000001', 1.2292, -1.0403, '2025-12-13'),
+('PROD-000001', 1.2244, 0.3923, '2025-12-14'),
+('PROD-000001', 1.2239, 0.0423, '2025-12-15'),
+('PROD-000001', 1.2278, -0.3151, '2025-12-16'),
+('PROD-000001', 1.2216, 0.5116, '2025-12-17'),
+('PROD-000001', 1.2300, -0.6796, '2025-12-18'),
+('PROD-000001', 1.2326, -0.2147, '2025-12-19'),
+('PROD-000001', 1.2347, -0.1741, '2025-12-20'),
+('PROD-000001', 1.2510, -1.3008, '2025-12-21'),
+('PROD-000001', 1.2537, -0.2140, '2025-12-22'),
+('PROD-000001', 1.2451, 0.6881, '2025-12-23'),
+('PROD-000001', 1.2313, 1.1167, '2025-12-24'),
+('PROD-000001', 1.2154, 1.3049, '2025-12-25'),
+('PROD-000001', 1.2148, 0.0476, '2025-12-26'),
+('PROD-000001', 1.2057, 0.7559, '2025-12-27'),
+('PROD-000001', 1.1952, 0.8809, '2025-12-28'),
+('PROD-000001', 1.2010, -0.4856, '2025-12-29'),
+('PROD-000001', 1.1922, 0.7354, '2025-12-30'),
+('PROD-000001', 1.1761, 1.3731, '2025-12-31'),
+('PROD-000001', 1.1651, 0.9406, '2026-01-01'),
+('PROD-000001', 1.1794, -1.2091, '2026-01-02'),
+('PROD-000001', 1.1953, -1.3282, '2026-01-03'),
+('PROD-000001', 1.1992, -0.3236, '2026-01-04'),
+('PROD-000001', 1.1964, 0.2328, '2026-01-05'),
+('PROD-000001', 1.1808, 1.3200, '2026-01-06'),
+('PROD-000001', 1.1790, 0.1503, '2026-01-07'),
+('PROD-000001', 1.1952, -1.3590, '2026-01-08'),
+('PROD-000001', 1.1927, 0.2124, '2026-01-09'),
+('PROD-000001', 1.1960, -0.2755, '2026-01-10'),
+('PROD-000001', 1.2036, -0.6275, '2026-01-11'),
+('PROD-000001', 1.1887, 1.2565, '2026-01-12'),
+('PROD-000001', 1.2059, -1.4264, '2026-01-13'),
+('PROD-000001', 1.1943, 0.9707, '2026-01-14'),
+('PROD-000001', 1.1978, -0.2885, '2026-01-15'),
+('PROD-000001', 1.1956, 0.1852, '2026-01-16'),
+('PROD-000001', 1.1906, 0.4216, '2026-01-17'),
+('PROD-000001', 1.1870, 0.3015, '2026-01-18'),
+('PROD-000001', 1.1938, -0.5704, '2026-01-19'),
+('PROD-000001', 1.1901, 0.3068, '2026-01-20'),
+('PROD-000001', 1.2043, -1.1764, '2026-01-21'),
+('PROD-000001', 1.2167, -1.0177, '2026-01-22'),
+('PROD-000001', 1.2159, 0.0686, '2026-01-23'),
+('PROD-000001', 1.2065, 0.7755, '2026-01-24'),
+('PROD-000001', 1.2130, -0.5343, '2026-01-25'),
+('PROD-000001', 1.1967, 1.3639, '2026-01-26'),
+('PROD-000001', 1.1971, -0.0331, '2026-01-27'),
+('PROD-000001', 1.2091, -0.9893, '2026-01-28'),
+('PROD-000001', 1.2165, -0.6070, '2026-01-29'),
+('PROD-000001', 1.2147, 0.1441, '2026-01-30'),
+('PROD-000001', 1.2300, -1.2415, '2026-01-31'),
+('PROD-000001', 1.2153, 1.2070, '2026-02-01'),
+('PROD-000001', 1.2047, 0.8838, '2026-02-02'),
+('PROD-000001', 1.2040, 0.0608, '2026-02-03'),
+('PROD-000001', 1.2209, -1.3872, '2026-02-04'),
+('PROD-000001', 1.2058, 1.2557, '2026-02-05'),
+('PROD-000001', 1.2022, 0.3006, '2026-02-06'),
+('PROD-000001', 1.2120, -0.8087, '2026-02-07'),
+('PROD-000001', 1.2017, 0.8571, '2026-02-08'),
+('PROD-000001', 1.1978, 0.3219, '2026-02-09'),
+('PROD-000001', 1.1841, 1.1599, '2026-02-10'),
+('PROD-000001', 1.1739, 0.8712, '2026-02-11'),
+('PROD-000001', 1.1780, -0.3439, '2026-02-12'),
+('PROD-000001', 1.1850, -0.5868, '2026-02-13'),
+('PROD-000001', 1.1878, -0.2372, '2026-02-14'),
+('PROD-000001', 1.1854, 0.1988, '2026-02-15'),
+('PROD-000001', 1.1840, 0.1191, '2026-02-16'),
+('PROD-000001', 1.1850, -0.0815, '2026-02-17'),
+('PROD-000001', 1.1908, -0.4847, '2026-02-18'),
+('PROD-000001', 1.2075, -1.3837, '2026-02-19'),
+('PROD-000001', 1.2141, -0.5452, '2026-02-20'),
+('PROD-000001', 1.2041, 0.8269, '2026-02-21'),
+('PROD-000001', 1.2158, -0.9660, '2026-02-22'),
+('PROD-000001', 1.2187, -0.2373, '2026-02-23'),
+('PROD-000001', 1.2310, -0.9969, '2026-02-24'),
+('PROD-000001', 1.2447, -1.1023, '2026-02-25'),
+('PROD-000001', 1.2390, 0.4572, '2026-02-26'),
+('PROD-000001', 1.2334, 0.4552, '2026-02-27'),
+('PROD-000001', 1.2483, -1.1964, '2026-02-28'),
+('PROD-000001', 1.2420, 0.5054, '2026-03-01'),
+('PROD-000001', 1.2400, 0.1653, '2026-03-02'),
+('PROD-000001', 1.2546, -1.1651, '2026-03-03'),
+('PROD-000001', 1.2594, -0.3849, '2026-03-04'),
+('PROD-000001', 1.2700, -0.8332, '2026-03-05'),
+('PROD-000001', 1.2561, 1.1039, '2026-03-06'),
+('PROD-000001', 1.2531, 0.2380, '2026-03-07'),
+('PROD-000001', 1.2590, -0.4681, '2026-03-08'),
+('PROD-000001', 1.2611, -0.1667, '2026-03-09'),
+('PROD-000001', 1.2688, -0.6070, '2026-03-10'),
+('PROD-000001', 1.2805, -0.9164, '2026-03-11'),
+('PROD-000001', 1.2962, -1.2118, '2026-03-12'),
+('PROD-000001', 1.3026, -0.4892, '2026-03-13'),
+('PROD-000001', 1.2977, 0.3769, '2026-03-14'),
+('PROD-000001', 1.2893, 0.6510, '2026-03-15'),
+('PROD-000001', 1.3018, -0.9575, '2026-03-16'),
+('PROD-000001', 1.2864, 1.1970, '2026-03-17'),
+('PROD-000001', 1.2762, 0.8018, '2026-03-18'),
+('PROD-000001', 1.2684, 0.6119, '2026-03-19'),
+('PROD-000001', 1.2576, 0.8586, '2026-03-20'),
+('PROD-000001', 1.2568, 0.0641, '2026-03-21'),
+('PROD-000001', 1.2483, 0.6787, '2026-03-22'),
+('PROD-000001', 1.2315, 1.3649, '2026-03-23'),
+('PROD-000001', 1.2223, 0.7568, '2026-03-24'),
+('PROD-000001', 1.2405, -1.4650, '2026-03-25'),
+('PROD-000001', 1.2566, -1.2815, '2026-03-26'),
+('PROD-000001', 1.2398, 1.3515, '2026-03-27'),
+('PROD-000001', 1.2556, -1.2600, '2026-03-28'),
+('PROD-000001', 1.2407, 1.1997, '2026-03-29'),
+('PROD-000001', 1.2312, 0.7735, '2026-03-30'),
+('PROD-000001', 1.2201, 0.9105, '2026-03-31'),
+('PROD-000001', 1.2223, -0.1830, '2026-04-01'),
+('PROD-000001', 1.2244, -0.1691, '2026-04-02'),
+('PROD-000001', 1.2132, 0.9215, '2026-04-03'),
+('PROD-000001', 1.2150, -0.1441, '2026-04-04'),
+('PROD-000001', 1.2163, -0.1091, '2026-04-05'),
+('PROD-000001', 1.2241, -0.6374, '2026-04-06'),
+('PROD-000001', 1.2402, -1.2947, '2026-04-07'),
+('PROD-000001', 1.2301, 0.8175, '2026-04-08'),
+('PROD-000001', 1.2394, -0.7485, '2026-04-09'),
+('PROD-000001', 1.2280, 0.9318, '2026-04-10'),
+('PROD-000001', 1.2163, 0.9622, '2026-04-11'),
+('PROD-000001', 1.2186, -0.1877, '2026-04-12'),
+('PROD-000001', 1.2100, 0.7073, '2026-04-13'),
+('PROD-000001', 1.2115, -0.1236, '2026-04-14'),
+('PROD-000001', 1.2111, 0.0319, '2026-04-15'),
+('PROD-000001', 1.1989, 1.0173, '2026-04-16'),
+('PROD-000001', 1.1851, 1.1667, '2026-04-17'),
+('PROD-000001', 1.1833, 0.1488, '2026-04-18'),
+('PROD-000001', 1.1933, -0.8393, '2026-04-19'),
+('PROD-000001', 1.1900, 0.2791, '2026-04-20'),
+('PROD-000001', 1.1839, 0.5193, '2026-04-21'),
+('PROD-000001', 1.1915, -0.6369, '2026-04-22'),
+('PROD-000001', 1.2074, -1.3192, '2026-04-23'),
+('PROD-000001', 1.2198, -1.0184, '2026-04-24'),
+('PROD-000001', 1.2221, -0.1876, '2026-04-25'),
+('PROD-000001', 1.2258, -0.3027, '2026-04-26'),
+('PROD-000001', 1.2166, 0.7594, '2026-04-27'),
+('PROD-000001', 1.2145, 0.1694, '2026-04-28'),
+('PROD-000001', 1.2282, -1.1169, '2026-04-29'),
+('PROD-000001', 1.2248, 0.2782, '2026-04-30'),
+('PROD-000001', 1.2202, 0.3748, '2026-05-01'),
+('PROD-000001', 1.2070, 1.0900, '2026-05-02'),
+('PROD-000001', 1.2007, 0.5262, '2026-05-03'),
+('PROD-000001', 1.1860, 1.2399, '2026-05-04'),
+('PROD-000001', 1.1697, 1.3958, '2026-05-05'),
+('PROD-000001', 1.1816, -1.0107, '2026-05-06'),
+('PROD-000001', 1.1901, -0.7166, '2026-05-07'),
+('PROD-000001', 1.1742, 1.3539, '2026-05-08'),
+('PROD-000001', 1.1836, -0.7967, '2026-05-09'),
+('PROD-000001', 1.1719, 0.9966, '2026-05-10'),
+('PROD-000001', 1.1721, -0.0151, '2026-05-11'),
+('PROD-000001', 1.1787, -0.5565, '2026-05-12'),
+('PROD-000001', 1.1950, -1.3614, '2026-05-13'),
+('PROD-000001', 1.2044, -0.7838, '2026-05-14'),
+('PROD-000001', 1.2222, -1.4525, '2026-05-15'),
+('PROD-000001', 1.2303, -0.6599, '2026-05-16'),
+('PROD-000001', 1.2399, -0.7707, '2026-05-17'),
+('PROD-000001', 1.2471, -0.5753, '2026-05-18'),
+('PROD-000001', 1.2303, 1.3667, '2026-05-19'),
+('PROD-000001', 1.2248, 0.4522, '2026-05-20'),
+('PROD-000001', 1.2286, -0.3059, '2026-05-21'),
+('PROD-000001', 1.2146, 1.1507, '2026-05-22'),
+('PROD-000001', 1.2047, 0.8232, '2026-05-23'),
+('PROD-000001', 1.1897, 1.2636, '2026-05-24'),
+('PROD-000001', 1.1849, 0.4081, '2026-05-25'),
+('PROD-000001', 1.1812, 0.3098, '2026-05-26'),
+('PROD-000001', 1.1947, -1.1289, '2026-05-27'),
+('PROD-000001', 1.2004, -0.4747, '2026-05-28'),
+('PROD-000001', 1.1875, 1.0858, '2026-05-29'),
+('PROD-000001', 1.2025, -1.2447, '2026-05-30'),
+('PROD-000001', 1.2025, 0.0014, '2026-05-31'),
+('PROD-000001', 1.2170, -1.1938, '2026-06-01'),
+('PROD-000001', 1.2267, -0.7896, '2026-06-02'),
+('PROD-000001', 1.2180, 0.7132, '2026-06-03'),
+('PROD-000001', 1.2109, 0.5831, '2026-06-04'),
+('PROD-000001', 1.2088, 0.1722, '2026-06-05'),
+('PROD-000001', 1.2271, -1.4887, '2026-06-06'),
+('PROD-000001', 1.2356, -0.6904, '2026-06-07'),
+('PROD-000001', 1.2315, 0.3310, '2026-06-08'),
+('PROD-000001', 1.2478, -1.3031, '2026-06-09'),
+('PROD-000001', 1.2297, 1.4700, '2026-06-10'),
+('PROD-000001', 1.2322, -0.2030, '2026-06-11'),
+('PROD-000001', 1.2428, -0.8494, '2026-06-12'),
+('PROD-000001', 1.2540, -0.8952, '2026-06-13'),
+('PROD-000001', 1.2544, -0.0354, '2026-06-14'),
+('PROD-000001', 1.2533, 0.0864, '2026-06-15'),
+('PROD-000001', 1.2377, 1.2604, '2026-06-16'),
+('PROD-000001', 1.2439, -0.4974, '2026-06-17'),
+('PROD-000001', 1.2476, -0.2995, '2026-06-18'),
+('PROD-000001', 1.2359, 0.9492, '2026-06-19'),
+('PROD-000001', 1.2477, -0.9496, '2026-06-20'),
+('PROD-000001', 1.2325, 1.2345, '2026-06-21'),
+('PROD-000001', 1.2296, 0.2359, '2026-06-22'),
+('PROD-000001', 1.2449, -1.2303, '2026-06-23'),
+('PROD-000001', 1.2491, -0.3370, '2026-06-24'),
+('PROD-000001', 1.2573, -0.6522, '2026-06-25'),
+('PROD-000001', 1.2690, -0.9242, '2026-06-26'),
+('PROD-000001', 1.2861, -1.3278, '2026-06-27'),
+('PROD-000001', 1.2730, 1.0287, '2026-06-28'),
+('PROD-000001', 1.2753, -0.1815, '2026-06-29'),
+('PROD-000001', 1.2682, 0.5577, '2026-06-30'),
+('PROD-000001', 1.2797, -0.9023, '2026-07-01'),
+('PROD-000001', 1.2656, 1.1143, '2026-07-02'),
+('PROD-000001', 1.2557, 0.7889, '2026-07-03'),
+('PROD-000001', 1.2589, -0.2537, '2026-07-04'),
+('PROD-000001', 1.2576, 0.1049, '2026-07-05'),
+('PROD-000001', 1.2534, 0.3322, '2026-07-06'),
+('PROD-000001', 1.2507, 0.2183, '2026-07-07'),
+('PROD-000001', 1.2550, -0.3455, '2026-07-08'),
+('PROD-000001', 1.2635, -0.6744, '2026-07-09'),
+('PROD-000001', 1.2559, 0.6081, '2026-07-10'),
+('PROD-000001', 1.2625, -0.5194, '2026-07-11'),
+('PROD-000001', 1.2480, 1.1584, '2026-07-12'),
+('PROD-000001', 1.2619, -1.0994, '2026-07-13'),
+('PROD-000001', 1.2553, 0.5279, '2026-07-14'),
+('PROD-000001', 1.2462, 0.7339, '2026-07-15'),
+('PROD-000001', 1.2347, 0.9338, '2026-07-16'),
+('PROD-000001', 1.2301, 0.3772, '2026-07-17'),
+('PROD-000001', 1.2267, 0.2805, '2026-07-18'),
+('PROD-000001', 1.2092, 1.4486, '2026-07-19'),
+('PROD-000001', 1.2055, 0.3095, '2026-07-20'),
+('PROD-000001', 1.2158, -0.8509, '2026-07-21'),
+('PROD-000001', 1.2294, -1.1097, '2026-07-22'),
+('PROD-000001', 1.2205, 0.7329, '2026-07-23'),
+('PROD-000001', 1.2255, -0.4100, '2026-07-24'),
+('PROD-000001', 1.2389, -1.0799, '2026-07-25'),
+('PROD-000001', 1.2492, -0.8226, '2026-07-26'),
+('PROD-000001', 1.2461, 0.2527, '2026-07-27'),
+('PROD-000001', 1.2595, -1.0665, '2026-07-28'),
+('PROD-000001', 1.2776, -1.4200, '2026-07-29'),
+('PROD-000001', 1.2855, -0.6145, '2026-07-30'),
+('PROD-000001', 1.3049, -1.4832, '2026-07-31'),
+('PROD-000001', 1.2947, 0.7843, '2026-08-01'),
+('PROD-000001', 1.2772, 1.3673, '2026-08-02'),
+('PROD-000001', 1.2788, -0.1226, '2026-08-03'),
+('PROD-000001', 1.2667, 0.9531, '2026-08-04'),
+('PROD-000001', 1.2498, 1.3488, '2026-08-05'),
+('PROD-000001', 1.2601, -0.8198, '2026-08-06'),
+('PROD-000001', 1.2668, -0.5294, '2026-08-07'),
+('PROD-000001', 1.2844, -1.3726, '2026-08-08'),
+('PROD-000001', 1.2990, -1.1244, '2026-08-09'),
+('PROD-000001', 1.2865, 0.9725, '2026-08-10'),
+('PROD-000001', 1.2736, 1.0143, '2026-08-11'),
+('PROD-000001', 1.2905, -1.3110, '2026-08-12'),
+('PROD-000001', 1.2909, -0.0283, '2026-08-13'),
+('PROD-000001', 1.3097, -1.4388, '2026-08-14'),
+('PROD-000001', 1.3222, -0.9491, '2026-08-15'),
+('PROD-000001', 1.3176, 0.3527, '2026-08-16'),
+('PROD-000001', 1.3030, 1.1235, '2026-08-17'),
+('PROD-000001', 1.2903, 0.9822, '2026-08-18'),
+('PROD-000001', 1.2861, 0.3280, '2026-08-19'),
+('PROD-000001', 1.2681, 1.4161, '2026-08-20'),
+('PROD-000001', 1.2637, 0.3502, '2026-08-21'),
+('PROD-000001', 1.2549, 0.6993, '2026-08-22'),
+('PROD-000001', 1.2705, -1.2247, '2026-08-23'),
+('PROD-000001', 1.2567, 1.1021, '2026-08-24'),
+('PROD-000001', 1.2679, -0.8839, '2026-08-25'),
+('PROD-000001', 1.2525, 1.2308, '2026-08-26'),
+('PROD-000001', 1.2451, 0.5959, '2026-08-27'),
+('PROD-000001', 1.2623, -1.3646, '2026-08-28'),
+('PROD-000001', 1.2762, -1.0877, '2026-08-29'),
+('PROD-000001', 1.2859, -0.7529, '2026-08-30');
+
+INSERT INTO core_product_nav (product_id, nav, daily_chg_pct, nav_date) VALUES
+('PROD-000001', 1.3009, -1.1501, '2026-08-31'),
+('PROD-000001', 1.3172, -1.2407, '2026-09-01'),
+('PROD-000001', 1.3301, -0.9731, '2026-09-02'),
+('PROD-000001', 1.3218, 0.6310, '2026-09-03'),
+('PROD-000002', 0.9927, 1.2437, '2025-09-05'),
+('PROD-000002', 0.9813, 1.1647, '2025-09-06'),
+('PROD-000002', 0.9854, -0.4124, '2025-09-07'),
+('PROD-000002', 0.9853, 0.0124, '2025-09-08'),
+('PROD-000002', 0.9957, -1.0436, '2025-09-09'),
+('PROD-000002', 0.9964, -0.0660, '2025-09-10'),
+('PROD-000002', 1.0010, -0.4605, '2025-09-11'),
+('PROD-000002', 0.9886, 1.2554, '2025-09-12'),
+('PROD-000002', 0.9858, 0.2797, '2025-09-13'),
+('PROD-000002', 0.9974, -1.1660, '2025-09-14'),
+('PROD-000002', 1.0084, -1.0868, '2025-09-15'),
+('PROD-000002', 0.9940, 1.4481, '2025-09-16'),
+('PROD-000002', 0.9840, 1.0137, '2025-09-17'),
+('PROD-000002', 0.9835, 0.0548, '2025-09-18'),
+('PROD-000002', 0.9879, -0.4454, '2025-09-19'),
+('PROD-000002', 0.9815, 0.6486, '2025-09-20'),
+('PROD-000002', 0.9765, 0.5148, '2025-09-21'),
+('PROD-000002', 0.9706, 0.6127, '2025-09-22'),
+('PROD-000002', 0.9840, -1.3576, '2025-09-23'),
+('PROD-000002', 0.9852, -0.1183, '2025-09-24'),
+('PROD-000002', 0.9757, 0.9768, '2025-09-25'),
+('PROD-000002', 0.9749, 0.0780, '2025-09-26'),
+('PROD-000002', 0.9827, -0.7960, '2025-09-27'),
+('PROD-000002', 0.9778, 0.4961, '2025-09-28'),
+('PROD-000002', 0.9641, 1.4259, '2025-09-29'),
+('PROD-000002', 0.9743, -1.0473, '2025-09-30'),
+('PROD-000002', 0.9716, 0.2767, '2025-10-01'),
+('PROD-000002', 0.9666, 0.5181, '2025-10-02'),
+('PROD-000002', 0.9649, 0.1758, '2025-10-03'),
+('PROD-000002', 0.9720, -0.7346, '2025-10-04'),
+('PROD-000002', 0.9745, -0.2573, '2025-10-05'),
+('PROD-000002', 0.9674, 0.7382, '2025-10-06'),
+('PROD-000002', 0.9736, -0.6351, '2025-10-07'),
+('PROD-000002', 0.9825, -0.9095, '2025-10-08'),
+('PROD-000002', 0.9891, -0.6713, '2025-10-09'),
+('PROD-000002', 0.9966, -0.7547, '2025-10-10'),
+('PROD-000002', 0.9890, 0.7729, '2025-10-11'),
+('PROD-000002', 0.9778, 1.1493, '2025-10-12'),
+('PROD-000002', 0.9859, -0.8261, '2025-10-13'),
+('PROD-000002', 0.9769, 0.9168, '2025-10-14'),
+('PROD-000002', 0.9793, -0.2447, '2025-10-15'),
+('PROD-000002', 0.9814, -0.2095, '2025-10-16'),
+('PROD-000002', 0.9685, 1.3300, '2025-10-17'),
+('PROD-000002', 0.9728, -0.4424, '2025-10-18'),
+('PROD-000002', 0.9715, 0.1296, '2025-10-19'),
+('PROD-000002', 0.9678, 0.3810, '2025-10-20'),
+('PROD-000002', 0.9610, 0.7127, '2025-10-21'),
+('PROD-000002', 0.9588, 0.2329, '2025-10-22'),
+('PROD-000002', 0.9670, -0.8466, '2025-10-23'),
+('PROD-000002', 0.9677, -0.0732, '2025-10-24'),
+('PROD-000002', 0.9564, 1.1806, '2025-10-25'),
+('PROD-000002', 0.9698, -1.3849, '2025-10-26'),
+('PROD-000002', 0.9772, -0.7535, '2025-10-27'),
+('PROD-000002', 0.9679, 0.9575, '2025-10-28'),
+('PROD-000002', 0.9633, 0.4812, '2025-10-29'),
+('PROD-000002', 0.9776, -1.4634, '2025-10-30'),
+('PROD-000002', 0.9790, -0.1466, '2025-10-31'),
+('PROD-000002', 0.9686, 1.0788, '2025-11-01'),
+('PROD-000002', 0.9831, -1.4718, '2025-11-02'),
+('PROD-000002', 0.9910, -0.8013, '2025-11-03'),
+('PROD-000002', 0.9981, -0.7104, '2025-11-04'),
+('PROD-000002', 0.9861, 1.2192, '2025-11-05'),
+('PROD-000002', 0.9900, -0.3909, '2025-11-06'),
+('PROD-000002', 0.9982, -0.8195, '2025-11-07'),
+('PROD-000002', 0.9859, 1.2512, '2025-11-08'),
+('PROD-000002', 0.9822, 0.3779, '2025-11-09'),
+('PROD-000002', 0.9702, 1.2351, '2025-11-10'),
+('PROD-000002', 0.9563, 1.4541, '2025-11-11'),
+('PROD-000002', 0.9474, 0.9360, '2025-11-12'),
+('PROD-000002', 0.9554, -0.8367, '2025-11-13'),
+('PROD-000002', 0.9483, 0.7494, '2025-11-14'),
+('PROD-000002', 0.9532, -0.5093, '2025-11-15'),
+('PROD-000002', 0.9513, 0.2043, '2025-11-16'),
+('PROD-000002', 0.9652, -1.4403, '2025-11-17'),
+('PROD-000002', 0.9713, -0.6252, '2025-11-18'),
+('PROD-000002', 0.9829, -1.1782, '2025-11-19'),
+('PROD-000002', 0.9841, -0.1211, '2025-11-20'),
+('PROD-000002', 0.9925, -0.8457, '2025-11-21'),
+('PROD-000002', 0.9843, 0.8297, '2025-11-22'),
+('PROD-000002', 0.9740, 1.0597, '2025-11-23'),
+('PROD-000002', 0.9681, 0.6085, '2025-11-24'),
+('PROD-000002', 0.9557, 1.2990, '2025-11-25'),
+('PROD-000002', 0.9696, -1.4317, '2025-11-26'),
+('PROD-000002', 0.9839, -1.4491, '2025-11-27'),
+('PROD-000002', 0.9772, 0.6905, '2025-11-28'),
+('PROD-000002', 0.9831, -0.5980, '2025-11-29'),
+('PROD-000002', 0.9868, -0.3789, '2025-11-30'),
+('PROD-000002', 0.9961, -0.9341, '2025-12-01'),
+('PROD-000002', 1.0102, -1.3981, '2025-12-02'),
+('PROD-000002', 1.0122, -0.2010, '2025-12-03'),
+('PROD-000002', 1.0251, -1.2555, '2025-12-04'),
+('PROD-000002', 1.0191, 0.5897, '2025-12-05'),
+('PROD-000002', 1.0158, 0.3289, '2025-12-06'),
+('PROD-000002', 1.0011, 1.4696, '2025-12-07'),
+('PROD-000002', 1.0064, -0.5230, '2025-12-08'),
+('PROD-000002', 0.9924, 1.4139, '2025-12-09'),
+('PROD-000002', 0.9929, -0.0536, '2025-12-10'),
+('PROD-000002', 0.9964, -0.3505, '2025-12-11'),
+('PROD-000002', 1.0003, -0.3883, '2025-12-12'),
+('PROD-000002', 1.0116, -1.1213, '2025-12-13'),
+('PROD-000002', 1.0050, 0.6612, '2025-12-14'),
+('PROD-000002', 1.0101, -0.5081, '2025-12-15'),
+('PROD-000002', 1.0025, 0.7533, '2025-12-16'),
+('PROD-000002', 1.0004, 0.2131, '2025-12-17'),
+('PROD-000002', 0.9965, 0.3896, '2025-12-18'),
+('PROD-000002', 1.0112, -1.4525, '2025-12-19'),
+('PROD-000002', 1.0080, 0.3194, '2025-12-20'),
+('PROD-000002', 1.0041, 0.3929, '2025-12-21'),
+('PROD-000002', 1.0028, 0.1291, '2025-12-22'),
+('PROD-000002', 1.0073, -0.4432, '2025-12-23'),
+('PROD-000002', 0.9952, 1.2189, '2025-12-24'),
+('PROD-000002', 1.0096, -1.4300, '2025-12-25'),
+('PROD-000002', 1.0104, -0.0796, '2025-12-26'),
+('PROD-000002', 0.9958, 1.4628, '2025-12-27'),
+('PROD-000002', 0.9881, 0.7765, '2025-12-28'),
+('PROD-000002', 0.9833, 0.4879, '2025-12-29'),
+('PROD-000002', 0.9925, -0.9317, '2025-12-30'),
+('PROD-000002', 0.9885, 0.4053, '2025-12-31'),
+('PROD-000002', 0.9957, -0.7237, '2026-01-01'),
+('PROD-000002', 0.9831, 1.2796, '2026-01-02'),
+('PROD-000002', 0.9952, -1.2194, '2026-01-03'),
+('PROD-000002', 1.0085, -1.3139, '2026-01-04'),
+('PROD-000002', 1.0103, -0.1781, '2026-01-05'),
+('PROD-000002', 1.0114, -0.1039, '2026-01-06'),
+('PROD-000002', 1.0231, -1.1478, '2026-01-07'),
+('PROD-000002', 1.0225, 0.0568, '2026-01-08'),
+('PROD-000002', 1.0265, -0.3943, '2026-01-09'),
+('PROD-000002', 1.0205, 0.5914, '2026-01-10'),
+('PROD-000002', 1.0217, -0.1203, '2026-01-11'),
+('PROD-000002', 1.0066, 1.4998, '2026-01-12'),
+('PROD-000002', 1.0038, 0.2792, '2026-01-13'),
+('PROD-000002', 1.0117, -0.7829, '2026-01-14'),
+('PROD-000002', 1.0043, 0.7339, '2026-01-15'),
+('PROD-000002', 0.9989, 0.5392, '2026-01-16'),
+('PROD-000002', 0.9969, 0.1984, '2026-01-17'),
+('PROD-000002', 0.9942, 0.2739, '2026-01-18'),
+('PROD-000002', 1.0049, -1.0688, '2026-01-19'),
+('PROD-000002', 1.0006, 0.4293, '2026-01-20'),
+('PROD-000002', 1.0135, -1.2704, '2026-01-21'),
+('PROD-000002', 1.0117, 0.1763, '2026-01-22'),
+('PROD-000002', 1.0232, -1.1256, '2026-01-23'),
+('PROD-000002', 1.0205, 0.2678, '2026-01-24'),
+('PROD-000002', 1.0185, 0.1948, '2026-01-25'),
+('PROD-000002', 1.0171, 0.1391, '2026-01-26'),
+('PROD-000002', 1.0311, -1.3570, '2026-01-27'),
+('PROD-000002', 1.0217, 0.9172, '2026-01-28'),
+('PROD-000002', 1.0165, 0.5136, '2026-01-29'),
+('PROD-000002', 1.0295, -1.2638, '2026-01-30'),
+('PROD-000002', 1.0426, -1.2585, '2026-01-31'),
+('PROD-000002', 1.0548, -1.1540, '2026-02-01'),
+('PROD-000002', 1.0557, -0.0864, '2026-02-02'),
+('PROD-000002', 1.0624, -0.6327, '2026-02-03'),
+('PROD-000002', 1.0657, -0.3142, '2026-02-04'),
+('PROD-000002', 1.0522, 1.2784, '2026-02-05'),
+('PROD-000002', 1.0409, 1.0824, '2026-02-06'),
+('PROD-000002', 1.0325, 0.8108, '2026-02-07'),
+('PROD-000002', 1.0278, 0.4528, '2026-02-08'),
+('PROD-000002', 1.0383, -1.0117, '2026-02-09'),
+('PROD-000002', 1.0238, 1.4158, '2026-02-10'),
+('PROD-000002', 1.0344, -1.0222, '2026-02-11'),
+('PROD-000002', 1.0265, 0.7707, '2026-02-12'),
+('PROD-000002', 1.0144, 1.1894, '2026-02-13'),
+('PROD-000002', 1.0065, 0.7892, '2026-02-14'),
+('PROD-000002', 1.0122, -0.5631, '2026-02-15'),
+('PROD-000002', 1.0139, -0.1664, '2026-02-16'),
+('PROD-000002', 1.0157, -0.1746, '2026-02-17'),
+('PROD-000002', 1.0272, -1.1156, '2026-02-18'),
+('PROD-000002', 1.0269, 0.0297, '2026-02-19'),
+('PROD-000002', 1.0220, 0.4749, '2026-02-20'),
+('PROD-000002', 1.0252, -0.3076, '2026-02-21'),
+('PROD-000002', 1.0336, -0.8135, '2026-02-22'),
+('PROD-000002', 1.0417, -0.7733, '2026-02-23'),
+('PROD-000002', 1.0403, 0.1328, '2026-02-24'),
+('PROD-000002', 1.0250, 1.4939, '2026-02-25'),
+('PROD-000002', 1.0102, 1.4605, '2026-02-26'),
+('PROD-000002', 0.9964, 1.3822, '2026-02-27'),
+('PROD-000002', 0.9959, 0.0505, '2026-02-28'),
+('PROD-000002', 0.9922, 0.3720, '2026-03-01'),
+('PROD-000002', 0.9809, 1.1485, '2026-03-02'),
+('PROD-000002', 0.9903, -0.9519, '2026-03-03'),
+('PROD-000002', 0.9981, -0.7843, '2026-03-04'),
+('PROD-000002', 0.9952, 0.2952, '2026-03-05'),
+('PROD-000002', 0.9890, 0.6221, '2026-03-06'),
+('PROD-000002', 0.9806, 0.8590, '2026-03-07'),
+('PROD-000002', 0.9671, 1.4002, '2026-03-08'),
+('PROD-000002', 0.9724, -0.5401, '2026-03-09'),
+('PROD-000002', 0.9631, 0.9661, '2026-03-10'),
+('PROD-000002', 0.9743, -1.1470, '2026-03-11'),
+('PROD-000002', 0.9828, -0.8689, '2026-03-12'),
+('PROD-000002', 0.9820, 0.0767, '2026-03-13'),
+('PROD-000002', 0.9756, 0.6547, '2026-03-14'),
+('PROD-000002', 0.9691, 0.6699, '2026-03-15'),
+('PROD-000002', 0.9700, -0.0906, '2026-03-16'),
+('PROD-000002', 0.9779, -0.8042, '2026-03-17'),
+('PROD-000002', 0.9763, 0.1628, '2026-03-18'),
+('PROD-000002', 0.9810, -0.4763, '2026-03-19'),
+('PROD-000002', 0.9831, -0.2157, '2026-03-20'),
+('PROD-000002', 0.9812, 0.1888, '2026-03-21'),
+('PROD-000002', 0.9797, 0.1535, '2026-03-22'),
+('PROD-000002', 0.9911, -1.1456, '2026-03-23'),
+('PROD-000002', 0.9765, 1.4984, '2026-03-24'),
+('PROD-000002', 0.9661, 1.0765, '2026-03-25'),
+('PROD-000002', 0.9590, 0.7385, '2026-03-26'),
+('PROD-000002', 0.9492, 1.0293, '2026-03-27'),
+('PROD-000002', 0.9363, 1.3797, '2026-03-28'),
+('PROD-000002', 0.9471, -1.1426, '2026-03-29'),
+('PROD-000002', 0.9481, -0.1041, '2026-03-30'),
+('PROD-000002', 0.9614, -1.3863, '2026-03-31'),
+('PROD-000002', 0.9658, -0.4579, '2026-04-01'),
+('PROD-000002', 0.9575, 0.8628, '2026-04-02'),
+('PROD-000002', 0.9619, -0.4529, '2026-04-03'),
+('PROD-000002', 0.9670, -0.5233, '2026-04-04'),
+('PROD-000002', 0.9726, -0.5725, '2026-04-05'),
+('PROD-000002', 0.9685, 0.4192, '2026-04-06'),
+('PROD-000002', 0.9680, 0.0478, '2026-04-07'),
+('PROD-000002', 0.9567, 1.1835, '2026-04-08'),
+('PROD-000002', 0.9458, 1.1561, '2026-04-09'),
+('PROD-000002', 0.9467, -0.0978, '2026-04-10'),
+('PROD-000002', 0.9364, 1.1021, '2026-04-11'),
+('PROD-000002', 0.9270, 1.0114, '2026-04-12'),
+('PROD-000002', 0.9246, 0.2557, '2026-04-13'),
+('PROD-000002', 0.9276, -0.3277, '2026-04-14'),
+('PROD-000002', 0.9375, -1.0510, '2026-04-15'),
+('PROD-000002', 0.9292, 0.8949, '2026-04-16'),
+('PROD-000002', 0.9256, 0.3939, '2026-04-17'),
+('PROD-000002', 0.9283, -0.2920, '2026-04-18'),
+('PROD-000002', 0.9156, 1.3841, '2026-04-19'),
+('PROD-000002', 0.9206, -0.5406, '2026-04-20'),
+('PROD-000002', 0.9221, -0.1598, '2026-04-21'),
+('PROD-000002', 0.9099, 1.3408, '2026-04-22'),
+('PROD-000002', 0.9066, 0.3663, '2026-04-23'),
+('PROD-000002', 0.9042, 0.2650, '2026-04-24'),
+('PROD-000002', 0.9052, -0.1073, '2026-04-25'),
+('PROD-000002', 0.8961, 1.0123, '2026-04-26'),
+('PROD-000002', 0.8908, 0.5981, '2026-04-27'),
+('PROD-000002', 0.9016, -1.1988, '2026-04-28'),
+('PROD-000002', 0.9095, -0.8696, '2026-04-29'),
+('PROD-000002', 0.9175, -0.8703, '2026-04-30'),
+('PROD-000002', 0.9181, -0.0603, '2026-05-01'),
+('PROD-000002', 0.9268, -0.9396, '2026-05-02'),
+('PROD-000002', 0.9187, 0.8798, '2026-05-03'),
+('PROD-000002', 0.9098, 0.9755, '2026-05-04'),
+('PROD-000002', 0.9048, 0.5532, '2026-05-05'),
+('PROD-000002', 0.8920, 1.4395, '2026-05-06'),
+('PROD-000002', 0.8915, 0.0548, '2026-05-07'),
+('PROD-000002', 0.8844, 0.8076, '2026-05-08'),
+('PROD-000002', 0.8916, -0.8043, '2026-05-09'),
+('PROD-000002', 0.8904, 0.1335, '2026-05-10'),
+('PROD-000002', 0.8988, -0.9367, '2026-05-11'),
+('PROD-000002', 0.8951, 0.4108, '2026-05-12'),
+('PROD-000002', 0.8893, 0.6567, '2026-05-13'),
+('PROD-000002', 0.8941, -0.5393, '2026-05-14'),
+('PROD-000002', 0.8919, 0.2515, '2026-05-15'),
+('PROD-000002', 0.8957, -0.4229, '2026-05-16'),
+('PROD-000002', 0.8877, 0.8992, '2026-05-17'),
+('PROD-000002', 0.8773, 1.1849, '2026-05-18'),
+('PROD-000002', 0.8857, -0.9532, '2026-05-19'),
+('PROD-000002', 0.8750, 1.2251, '2026-05-20'),
+('PROD-000002', 0.8700, 0.5752, '2026-05-21'),
+('PROD-000002', 0.8816, -1.3208, '2026-05-22'),
+('PROD-000002', 0.8863, -0.5318, '2026-05-23'),
+('PROD-000002', 0.8980, -1.3020, '2026-05-24'),
+('PROD-000002', 0.8871, 1.2305, '2026-05-25'),
+('PROD-000002', 0.8869, 0.0263, '2026-05-26'),
+('PROD-000002', 0.8933, -0.7204, '2026-05-27'),
+('PROD-000002', 0.8917, 0.1845, '2026-05-28'),
+('PROD-000002', 0.9032, -1.2684, '2026-05-29'),
+('PROD-000002', 0.9168, -1.4881, '2026-05-30'),
+('PROD-000002', 0.9099, 0.7555, '2026-05-31'),
+('PROD-000002', 0.8998, 1.1226, '2026-06-01'),
+('PROD-000002', 0.9032, -0.3718, '2026-06-02'),
+('PROD-000002', 0.9143, -1.2108, '2026-06-03'),
+('PROD-000002', 0.9121, 0.2368, '2026-06-04'),
+('PROD-000002', 0.9104, 0.1913, '2026-06-05'),
+('PROD-000002', 0.9052, 0.5755, '2026-06-06'),
+('PROD-000002', 0.9074, -0.2405, '2026-06-07'),
+('PROD-000002', 0.9189, -1.2561, '2026-06-08'),
+('PROD-000002', 0.9152, 0.4074, '2026-06-09'),
+('PROD-000002', 0.9146, 0.0612, '2026-06-10'),
+('PROD-000002', 0.9119, 0.2917, '2026-06-11'),
+('PROD-000002', 0.9206, -0.9417, '2026-06-12'),
+('PROD-000002', 0.9327, -1.2929, '2026-06-13'),
+('PROD-000002', 0.9460, -1.4093, '2026-06-14'),
+('PROD-000002', 0.9464, -0.0406, '2026-06-15'),
+('PROD-000002', 0.9509, -0.4697, '2026-06-16'),
+('PROD-000002', 0.9429, 0.8525, '2026-06-17'),
+('PROD-000002', 0.9506, -0.8120, '2026-06-18'),
+('PROD-000002', 0.9606, -1.0411, '2026-06-19'),
+('PROD-000002', 0.9742, -1.3919, '2026-06-20'),
+('PROD-000002', 0.9848, -1.0753, '2026-06-21'),
+('PROD-000002', 0.9751, 0.9980, '2026-06-22'),
+('PROD-000002', 0.9897, -1.4725, '2026-06-23'),
+('PROD-000002', 0.9928, -0.3116, '2026-06-24'),
+('PROD-000002', 0.9982, -0.5425, '2026-06-25'),
+('PROD-000002', 1.0122, -1.3840, '2026-06-26'),
+('PROD-000002', 1.0032, 0.8936, '2026-06-27'),
+('PROD-000002', 0.9902, 1.3108, '2026-06-28'),
+('PROD-000002', 1.0053, -1.4986, '2026-06-29'),
+('PROD-000002', 1.0093, -0.3957, '2026-06-30'),
+('PROD-000002', 1.0209, -1.1340, '2026-07-01'),
+('PROD-000002', 1.0065, 1.4270, '2026-07-02'),
+('PROD-000002', 1.0215, -1.4731, '2026-07-03'),
+('PROD-000002', 1.0154, 0.5994, '2026-07-04'),
+('PROD-000002', 1.0083, 0.6994, '2026-07-05'),
+('PROD-000002', 0.9948, 1.3600, '2026-07-06'),
+('PROD-000002', 0.9805, 1.4558, '2026-07-07'),
+('PROD-000002', 0.9879, -0.7462, '2026-07-08'),
+('PROD-000002', 0.9898, -0.1887, '2026-07-09'),
+('PROD-000002', 0.9857, 0.4112, '2026-07-10'),
+('PROD-000002', 0.9712, 1.4904, '2026-07-11'),
+('PROD-000002', 0.9812, -1.0195, '2026-07-12'),
+('PROD-000002', 0.9891, -0.7955, '2026-07-13'),
+('PROD-000002', 0.9818, 0.7442, '2026-07-14'),
+('PROD-000002', 0.9816, 0.0232, '2026-07-15'),
+('PROD-000002', 0.9689, 1.3091, '2026-07-16'),
+('PROD-000002', 0.9739, -0.5152, '2026-07-17'),
+('PROD-000002', 0.9850, -1.1247, '2026-07-18'),
+('PROD-000002', 0.9721, 1.3286, '2026-07-19'),
+('PROD-000002', 0.9689, 0.3302, '2026-07-20'),
+('PROD-000002', 0.9742, -0.5429, '2026-07-21'),
+('PROD-000002', 0.9758, -0.1687, '2026-07-22'),
+('PROD-000002', 0.9898, -1.4135, '2026-07-23'),
+('PROD-000002', 0.9901, -0.0297, '2026-07-24'),
+('PROD-000002', 0.9960, -0.5953, '2026-07-25'),
+('PROD-000002', 1.0048, -0.8777, '2026-07-26'),
+('PROD-000002', 1.0000, 0.4846, '2026-07-27'),
+('PROD-000002', 0.9953, 0.4703, '2026-07-28'),
+('PROD-000002', 0.9996, -0.4252, '2026-07-29'),
+('PROD-000002', 1.0000, -0.0422, '2026-07-30'),
+('PROD-000002', 0.9917, 0.8393, '2026-07-31'),
+('PROD-000002', 0.9952, -0.3493, '2026-08-01'),
+('PROD-000002', 0.9991, -0.3879, '2026-08-02'),
+('PROD-000002', 0.9945, 0.4584, '2026-08-03'),
+('PROD-000002', 1.0095, -1.4819, '2026-08-04'),
+('PROD-000002', 1.0051, 0.4412, '2026-08-05'),
+('PROD-000002', 1.0160, -1.0681, '2026-08-06'),
+('PROD-000002', 1.0290, -1.2651, '2026-08-07'),
+('PROD-000002', 1.0231, 0.5741, '2026-08-08'),
+('PROD-000002', 1.0081, 1.4921, '2026-08-09'),
+('PROD-000002', 0.9935, 1.4658, '2026-08-10'),
+('PROD-000002', 0.9794, 1.4363, '2026-08-11'),
+('PROD-000002', 0.9739, 0.5625, '2026-08-12'),
+('PROD-000002', 0.9821, -0.8388, '2026-08-13'),
+('PROD-000002', 0.9710, 1.1480, '2026-08-14'),
+('PROD-000002', 0.9709, 0.0079, '2026-08-15'),
+('PROD-000002', 0.9639, 0.7240, '2026-08-16'),
+('PROD-000002', 0.9500, 1.4601, '2026-08-17'),
+('PROD-000002', 0.9607, -1.1136, '2026-08-18'),
+('PROD-000002', 0.9702, -0.9835, '2026-08-19'),
+('PROD-000002', 0.9740, -0.3950, '2026-08-20'),
+('PROD-000002', 0.9614, 1.3144, '2026-08-21'),
+('PROD-000002', 0.9486, 1.3528, '2026-08-22'),
+('PROD-000002', 0.9619, -1.3805, '2026-08-23'),
+('PROD-000002', 0.9708, -0.9189, '2026-08-24'),
+('PROD-000002', 0.9608, 1.0457, '2026-08-25'),
+('PROD-000002', 0.9723, -1.1786, '2026-08-26'),
+('PROD-000002', 0.9832, -1.1065, '2026-08-27'),
+('PROD-000002', 0.9846, -0.1470, '2026-08-28'),
+('PROD-000002', 0.9711, 1.3877, '2026-08-29'),
+('PROD-000002', 0.9608, 1.0701, '2026-08-30'),
+('PROD-000002', 0.9546, 0.6544, '2026-08-31'),
+('PROD-000002', 0.9624, -0.8135, '2026-09-01'),
+('PROD-000002', 0.9526, 1.0337, '2026-09-02'),
+('PROD-000002', 0.9426, 1.0567, '2026-09-03'),
+('PROD-WMG001', 1.0228, -0.7638, '2025-09-05'),
+('PROD-WMG001', 1.0314, -0.8353, '2025-09-06'),
+('PROD-WMG001', 1.0299, 0.1478, '2025-09-07'),
+('PROD-WMG001', 1.0219, 0.7786, '2025-09-08'),
+('PROD-WMG001', 1.0131, 0.8664, '2025-09-09'),
+('PROD-WMG001', 1.0264, -1.2931, '2025-09-10'),
+('PROD-WMG001', 1.0394, -1.2495, '2025-09-11'),
+('PROD-WMG001', 1.0422, -0.2675, '2025-09-12'),
+('PROD-WMG001', 1.0555, -1.2624, '2025-09-13'),
+('PROD-WMG001', 1.0503, 0.4904, '2025-09-14'),
+('PROD-WMG001', 1.0402, 0.9666, '2025-09-15'),
+('PROD-WMG001', 1.0249, 1.4956, '2025-09-16'),
+('PROD-WMG001', 1.0255, -0.0600, '2025-09-17'),
+('PROD-WMG001', 1.0212, 0.4245, '2025-09-18'),
+('PROD-WMG001', 1.0344, -1.2722, '2025-09-19'),
+('PROD-WMG001', 1.0461, -1.1186, '2025-09-20'),
+('PROD-WMG001', 1.0376, 0.8152, '2025-09-21'),
+('PROD-WMG001', 1.0242, 1.3072, '2025-09-22'),
+('PROD-WMG001', 1.0315, -0.7075, '2025-09-23'),
+('PROD-WMG001', 1.0419, -0.9949, '2025-09-24'),
+('PROD-WMG001', 1.0338, 0.7864, '2025-09-25'),
+('PROD-WMG001', 1.0330, 0.0783, '2025-09-26'),
+('PROD-WMG001', 1.0367, -0.3525, '2025-09-27'),
+('PROD-WMG001', 1.0414, -0.4505, '2025-09-28'),
+('PROD-WMG001', 1.0313, 0.9763, '2025-09-29'),
+('PROD-WMG001', 1.0338, -0.2459, '2025-09-30'),
+('PROD-WMG001', 1.0302, 0.3537, '2025-10-01'),
+('PROD-WMG001', 1.0441, -1.3326, '2025-10-02'),
+('PROD-WMG001', 1.0419, 0.2105, '2025-10-03'),
+('PROD-WMG001', 1.0535, -1.0991, '2025-10-04'),
+('PROD-WMG001', 1.0414, 1.1657, '2025-10-05'),
+('PROD-WMG001', 1.0279, 1.3182, '2025-10-06'),
+('PROD-WMG001', 1.0194, 0.8330, '2025-10-07'),
+('PROD-WMG001', 1.0164, 0.2931, '2025-10-08'),
+('PROD-WMG001', 1.0309, -1.4047, '2025-10-09'),
+('PROD-WMG001', 1.0287, 0.2099, '2025-10-10'),
+('PROD-WMG001', 1.0152, 1.3293, '2025-10-11'),
+('PROD-WMG001', 1.0238, -0.8368, '2025-10-12'),
+('PROD-WMG001', 1.0327, -0.8584, '2025-10-13'),
+('PROD-WMG001', 1.0310, 0.1634, '2025-10-14'),
+('PROD-WMG001', 1.0301, 0.0922, '2025-10-15'),
+('PROD-WMG001', 1.0211, 0.8820, '2025-10-16'),
+('PROD-WMG001', 1.0090, 1.1986, '2025-10-17'),
+('PROD-WMG001', 1.0143, -0.5259, '2025-10-18'),
+('PROD-WMG001', 1.0148, -0.0463, '2025-10-19'),
+('PROD-WMG001', 1.0021, 1.2680, '2025-10-20'),
+('PROD-WMG001', 1.0024, -0.0320, '2025-10-21'),
+('PROD-WMG001', 0.9980, 0.4418, '2025-10-22'),
+('PROD-WMG001', 0.9928, 0.5247, '2025-10-23'),
+('PROD-WMG001', 0.9829, 1.0054, '2025-10-24'),
+('PROD-WMG001', 0.9728, 1.0414, '2025-10-25'),
+('PROD-WMG001', 0.9835, -1.0869, '2025-10-26'),
+('PROD-WMG001', 0.9747, 0.9034, '2025-10-27'),
+('PROD-WMG001', 0.9799, -0.5352, '2025-10-28'),
+('PROD-WMG001', 0.9824, -0.2593, '2025-10-29'),
+('PROD-WMG001', 0.9898, -0.7448, '2025-10-30'),
+('PROD-WMG001', 0.9903, -0.0474, '2025-10-31'),
+('PROD-WMG001', 0.9761, 1.4544, '2025-11-01'),
+('PROD-WMG001', 0.9722, 0.4035, '2025-11-02'),
+('PROD-WMG001', 0.9866, -1.4589, '2025-11-03'),
+('PROD-WMG001', 0.9729, 1.4106, '2025-11-04'),
+('PROD-WMG001', 0.9681, 0.4965, '2025-11-05'),
+('PROD-WMG001', 0.9541, 1.4646, '2025-11-06'),
+('PROD-WMG001', 0.9489, 0.5482, '2025-11-07'),
+('PROD-WMG001', 0.9510, -0.2208, '2025-11-08'),
+('PROD-WMG001', 0.9634, -1.2901, '2025-11-09'),
+('PROD-WMG001', 0.9591, 0.4511, '2025-11-10'),
+('PROD-WMG001', 0.9700, -1.1237, '2025-11-11'),
+('PROD-WMG001', 0.9811, -1.1330, '2025-11-12'),
+('PROD-WMG001', 0.9686, 1.2856, '2025-11-13'),
+('PROD-WMG001', 0.9635, 0.5326, '2025-11-14'),
+('PROD-WMG001', 0.9568, 0.7032, '2025-11-15'),
+('PROD-WMG001', 0.9492, 0.7980, '2025-11-16'),
+('PROD-WMG001', 0.9410, 0.8755, '2025-11-17'),
+('PROD-WMG001', 0.9277, 1.4323, '2025-11-18'),
+('PROD-WMG001', 0.9388, -1.1799, '2025-11-19'),
+('PROD-WMG001', 0.9484, -1.0160, '2025-11-20'),
+('PROD-WMG001', 0.9540, -0.5907, '2025-11-21'),
+('PROD-WMG001', 0.9563, -0.2407, '2025-11-22'),
+('PROD-WMG001', 0.9561, 0.0258, '2025-11-23'),
+('PROD-WMG001', 0.9436, 1.3296, '2025-11-24'),
+('PROD-WMG001', 0.9569, -1.3943, '2025-11-25'),
+('PROD-WMG001', 0.9695, -1.3040, '2025-11-26'),
+('PROD-WMG001', 0.9685, 0.1060, '2025-11-27'),
+('PROD-WMG001', 0.9691, -0.0576, '2025-11-28'),
+('PROD-WMG001', 0.9747, -0.5710, '2025-11-29'),
+('PROD-WMG001', 0.9879, -1.3335, '2025-11-30'),
+('PROD-WMG001', 0.9891, -0.1248, '2025-12-01'),
+('PROD-WMG001', 0.9862, 0.2951, '2025-12-02'),
+('PROD-WMG001', 0.9871, -0.0958, '2025-12-03'),
+('PROD-WMG001', 0.9869, 0.0237, '2025-12-04'),
+('PROD-WMG001', 0.9892, -0.2351, '2025-12-05'),
+('PROD-WMG001', 0.9827, 0.6661, '2025-12-06'),
+('PROD-WMG001', 0.9937, -1.1030, '2025-12-07'),
+('PROD-WMG001', 0.9994, -0.5703, '2025-12-08'),
+('PROD-WMG001', 0.9867, 1.2876, '2025-12-09'),
+('PROD-WMG001', 0.9842, 0.2541, '2025-12-10'),
+('PROD-WMG001', 0.9936, -0.9413, '2025-12-11'),
+('PROD-WMG001', 0.9929, 0.0700, '2025-12-12'),
+('PROD-WMG001', 1.0012, -0.8273, '2025-12-13'),
+('PROD-WMG001', 0.9981, 0.3149, '2025-12-14'),
+('PROD-WMG001', 0.9911, 0.7092, '2025-12-15'),
+('PROD-WMG001', 0.9956, -0.4514, '2025-12-16'),
+('PROD-WMG001', 1.0018, -0.6230, '2025-12-17'),
+('PROD-WMG001', 1.0085, -0.6651, '2025-12-18'),
+('PROD-WMG001', 1.0142, -0.5608, '2025-12-19'),
+('PROD-WMG001', 1.0272, -1.2701, '2025-12-20'),
+('PROD-WMG001', 1.0379, -1.0355, '2025-12-21'),
+('PROD-WMG001', 1.0466, -0.8315, '2025-12-22'),
+('PROD-WMG001', 1.0510, -0.4158, '2025-12-23'),
+('PROD-WMG001', 1.0513, -0.0266, '2025-12-24'),
+('PROD-WMG001', 1.0422, 0.8690, '2025-12-25'),
+('PROD-WMG001', 1.0539, -1.1122, '2025-12-26'),
+('PROD-WMG001', 1.0400, 1.3383, '2025-12-27'),
+('PROD-WMG001', 1.0442, -0.4058, '2025-12-28'),
+('PROD-WMG001', 1.0321, 1.1686, '2025-12-29'),
+('PROD-WMG001', 1.0408, -0.8314, '2025-12-30'),
+('PROD-WMG001', 1.0349, 0.5663, '2025-12-31'),
+('PROD-WMG001', 1.0355, -0.0552, '2026-01-01'),
+('PROD-WMG001', 1.0203, 1.4930, '2026-01-02'),
+('PROD-WMG001', 1.0158, 0.4446, '2026-01-03'),
+('PROD-WMG001', 1.0080, 0.7759, '2026-01-04'),
+('PROD-WMG001', 1.0065, 0.1448, '2026-01-05'),
+('PROD-WMG001', 1.0010, 0.5540, '2026-01-06'),
+('PROD-WMG001', 0.9921, 0.8923, '2026-01-07'),
+('PROD-WMG001', 0.9931, -0.1045, '2026-01-08'),
+('PROD-WMG001', 0.9825, 1.0753, '2026-01-09'),
+('PROD-WMG001', 0.9748, 0.7901, '2026-01-10'),
+('PROD-WMG001', 0.9777, -0.2943, '2026-01-11'),
+('PROD-WMG001', 0.9683, 0.9720, '2026-01-12'),
+('PROD-WMG001', 0.9559, 1.3002, '2026-01-13'),
+('PROD-WMG001', 0.9485, 0.7751, '2026-01-14');
+
+INSERT INTO core_product_nav (product_id, nav, daily_chg_pct, nav_date) VALUES
+('PROD-WMG001', 0.9391, 1.0016, '2026-01-15'),
+('PROD-WMG001', 0.9275, 1.2488, '2026-01-16'),
+('PROD-WMG001', 0.9152, 1.3411, '2026-01-17'),
+('PROD-WMG001', 0.9077, 0.8278, '2026-01-18'),
+('PROD-WMG001', 0.9037, 0.4460, '2026-01-19'),
+('PROD-WMG001', 0.9071, -0.3793, '2026-01-20'),
+('PROD-WMG001', 0.8939, 1.4747, '2026-01-21'),
+('PROD-WMG001', 0.8958, -0.2166, '2026-01-22'),
+('PROD-WMG001', 0.9073, -1.2656, '2026-01-23'),
+('PROD-WMG001', 0.9061, 0.1274, '2026-01-24'),
+('PROD-WMG001', 0.8985, 0.8452, '2026-01-25'),
+('PROD-WMG001', 0.8863, 1.3738, '2026-01-26'),
+('PROD-WMG001', 0.8916, -0.5956, '2026-01-27'),
+('PROD-WMG001', 0.8803, 1.2847, '2026-01-28'),
+('PROD-WMG001', 0.8824, -0.2423, '2026-01-29'),
+('PROD-WMG001', 0.8700, 1.4267, '2026-01-30'),
+('PROD-WMG001', 0.8639, 0.7073, '2026-01-31'),
+('PROD-WMG001', 0.8708, -0.7963, '2026-02-01'),
+('PROD-WMG001', 0.8600, 1.2532, '2026-02-02'),
+('PROD-WMG001', 0.8506, 1.1072, '2026-02-03'),
+('PROD-WMG001', 0.8549, -0.5079, '2026-02-04'),
+('PROD-WMG001', 0.8607, -0.6694, '2026-02-05'),
+('PROD-WMG001', 0.8602, 0.0617, '2026-02-06'),
+('PROD-WMG001', 0.8659, -0.6585, '2026-02-07'),
+('PROD-WMG001', 0.8686, -0.3072, '2026-02-08'),
+('PROD-WMG001', 0.8727, -0.4706, '2026-02-09'),
+('PROD-WMG001', 0.8771, -0.5037, '2026-02-10'),
+('PROD-WMG001', 0.8702, 0.7921, '2026-02-11'),
+('PROD-WMG001', 0.8678, 0.2790, '2026-02-12'),
+('PROD-WMG001', 0.8697, -0.2208, '2026-02-13'),
+('PROD-WMG001', 0.8700, -0.0309, '2026-02-14'),
+('PROD-WMG001', 0.8761, -0.6999, '2026-02-15'),
+('PROD-WMG001', 0.8668, 1.0707, '2026-02-16'),
+('PROD-WMG001', 0.8591, 0.8988, '2026-02-17'),
+('PROD-WMG001', 0.8623, -0.3699, '2026-02-18'),
+('PROD-WMG001', 0.8497, 1.4829, '2026-02-19'),
+('PROD-WMG001', 0.8467, 0.3547, '2026-02-20'),
+('PROD-WMG001', 0.8347, 1.4420, '2026-02-21'),
+('PROD-WMG001', 0.8432, -1.0085, '2026-02-22'),
+('PROD-WMG001', 0.8503, -0.8357, '2026-02-23'),
+('PROD-WMG001', 0.8499, 0.0415, '2026-02-24'),
+('PROD-WMG001', 0.8503, -0.0446, '2026-02-25'),
+('PROD-WMG001', 0.8432, 0.8390, '2026-02-26'),
+('PROD-WMG001', 0.8492, -0.7100, '2026-02-27'),
+('PROD-WMG001', 0.8416, 0.8987, '2026-02-28'),
+('PROD-WMG001', 0.8485, -0.8131, '2026-03-01'),
+('PROD-WMG001', 0.8398, 1.0416, '2026-03-02'),
+('PROD-WMG001', 0.8431, -0.3884, '2026-03-03'),
+('PROD-WMG001', 0.8480, -0.5727, '2026-03-04'),
+('PROD-WMG001', 0.8514, -0.3980, '2026-03-05'),
+('PROD-WMG001', 0.8413, 1.2054, '2026-03-06'),
+('PROD-WMG001', 0.8398, 0.1792, '2026-03-07'),
+('PROD-WMG001', 0.8381, 0.2041, '2026-03-08'),
+('PROD-WMG001', 0.8476, -1.1189, '2026-03-09'),
+('PROD-WMG001', 0.8515, -0.4582, '2026-03-10'),
+('PROD-WMG001', 0.8494, 0.2478, '2026-03-11'),
+('PROD-WMG001', 0.8455, 0.4601, '2026-03-12'),
+('PROD-WMG001', 0.8467, -0.1402, '2026-03-13'),
+('PROD-WMG001', 0.8370, 1.1615, '2026-03-14'),
+('PROD-WMG001', 0.8359, 0.1367, '2026-03-15'),
+('PROD-WMG001', 0.8322, 0.4445, '2026-03-16'),
+('PROD-WMG001', 0.8279, 0.5233, '2026-03-17'),
+('PROD-WMG001', 0.8387, -1.2876, '2026-03-18'),
+('PROD-WMG001', 0.8322, 0.7793, '2026-03-19'),
+('PROD-WMG001', 0.8330, -0.1013, '2026-03-20'),
+('PROD-WMG001', 0.8345, -0.1773, '2026-03-21'),
+('PROD-WMG001', 0.8460, -1.3578, '2026-03-22'),
+('PROD-WMG001', 0.8336, 1.4822, '2026-03-23'),
+('PROD-WMG001', 0.8264, 0.8770, '2026-03-24'),
+('PROD-WMG001', 0.8257, 0.0842, '2026-03-25'),
+('PROD-WMG001', 0.8339, -0.9807, '2026-03-26'),
+('PROD-WMG001', 0.8293, 0.5529, '2026-03-27'),
+('PROD-WMG001', 0.8320, -0.3266, '2026-03-28'),
+('PROD-WMG001', 0.8369, -0.5836, '2026-03-29'),
+('PROD-WMG001', 0.8297, 0.8651, '2026-03-30'),
+('PROD-WMG001', 0.8285, 0.1488, '2026-03-31'),
+('PROD-WMG001', 0.8393, -1.2817, '2026-04-01'),
+('PROD-WMG001', 0.8480, -1.0216, '2026-04-02'),
+('PROD-WMG001', 0.8552, -0.8443, '2026-04-03'),
+('PROD-WMG001', 0.8458, 1.1089, '2026-04-04'),
+('PROD-WMG001', 0.8556, -1.1406, '2026-04-05'),
+('PROD-WMG001', 0.8648, -1.0642, '2026-04-06'),
+('PROD-WMG001', 0.8597, 0.5914, '2026-04-07'),
+('PROD-WMG001', 0.8631, -0.3898, '2026-04-08'),
+('PROD-WMG001', 0.8701, -0.8059, '2026-04-09'),
+('PROD-WMG001', 0.8680, 0.2402, '2026-04-10'),
+('PROD-WMG001', 0.8620, 0.7008, '2026-04-11'),
+('PROD-WMG001', 0.8708, -1.0097, '2026-04-12'),
+('PROD-WMG001', 0.8601, 1.2400, '2026-04-13'),
+('PROD-WMG001', 0.8729, -1.4668, '2026-04-14'),
+('PROD-WMG001', 0.8783, -0.6152, '2026-04-15'),
+('PROD-WMG001', 0.8656, 1.4703, '2026-04-16'),
+('PROD-WMG001', 0.8726, -0.7969, '2026-04-17'),
+('PROD-WMG001', 0.8664, 0.7166, '2026-04-18'),
+('PROD-WMG001', 0.8717, -0.6093, '2026-04-19'),
+('PROD-WMG001', 0.8619, 1.1402, '2026-04-20'),
+('PROD-WMG001', 0.8645, -0.3049, '2026-04-21'),
+('PROD-WMG001', 0.8768, -1.4084, '2026-04-22'),
+('PROD-WMG001', 0.8716, 0.5966, '2026-04-23'),
+('PROD-WMG001', 0.8600, 1.3452, '2026-04-24'),
+('PROD-WMG001', 0.8686, -0.9871, '2026-04-25'),
+('PROD-WMG001', 0.8736, -0.5716, '2026-04-26'),
+('PROD-WMG001', 0.8837, -1.1404, '2026-04-27'),
+('PROD-WMG001', 0.8745, 1.0508, '2026-04-28'),
+('PROD-WMG001', 0.8643, 1.1756, '2026-04-29'),
+('PROD-WMG001', 0.8569, 0.8587, '2026-04-30'),
+('PROD-WMG001', 0.8530, 0.4560, '2026-05-01'),
+('PROD-WMG001', 0.8440, 1.0722, '2026-05-02'),
+('PROD-WMG001', 0.8481, -0.4780, '2026-05-03'),
+('PROD-WMG001', 0.8577, -1.1210, '2026-05-04'),
+('PROD-WMG001', 0.8482, 1.1208, '2026-05-05'),
+('PROD-WMG001', 0.8611, -1.4932, '2026-05-06'),
+('PROD-WMG001', 0.8641, -0.3481, '2026-05-07'),
+('PROD-WMG001', 0.8592, 0.5745, '2026-05-08'),
+('PROD-WMG001', 0.8596, -0.0441, '2026-05-09'),
+('PROD-WMG001', 0.8572, 0.2812, '2026-05-10'),
+('PROD-WMG001', 0.8578, -0.0697, '2026-05-11'),
+('PROD-WMG001', 0.8555, 0.2641, '2026-05-12'),
+('PROD-WMG001', 0.8681, -1.4464, '2026-05-13'),
+('PROD-WMG001', 0.8810, -1.4626, '2026-05-14'),
+('PROD-WMG001', 0.8904, -1.0589, '2026-05-15'),
+('PROD-WMG001', 0.8995, -1.0091, '2026-05-16'),
+('PROD-WMG001', 0.8922, 0.8136, '2026-05-17'),
+('PROD-WMG001', 0.8915, 0.0736, '2026-05-18'),
+('PROD-WMG001', 0.8870, 0.5126, '2026-05-19'),
+('PROD-WMG001', 0.8907, -0.4099, '2026-05-20'),
+('PROD-WMG001', 0.8981, -0.8215, '2026-05-21'),
+('PROD-WMG001', 0.9015, -0.3786, '2026-05-22'),
+('PROD-WMG001', 0.8917, 1.0999, '2026-05-23'),
+('PROD-WMG001', 0.8913, 0.0399, '2026-05-24'),
+('PROD-WMG001', 0.9016, -1.1372, '2026-05-25'),
+('PROD-WMG001', 0.8981, 0.3920, '2026-05-26'),
+('PROD-WMG001', 0.8896, 0.9595, '2026-05-27'),
+('PROD-WMG001', 0.8918, -0.2502, '2026-05-28'),
+('PROD-WMG001', 0.9003, -0.9484, '2026-05-29'),
+('PROD-WMG001', 0.8946, 0.6327, '2026-05-30'),
+('PROD-WMG001', 0.8886, 0.6807, '2026-05-31'),
+('PROD-WMG001', 0.8816, 0.7993, '2026-06-01'),
+('PROD-WMG001', 0.8779, 0.4250, '2026-06-02'),
+('PROD-WMG001', 0.8772, 0.0846, '2026-06-03'),
+('PROD-WMG001', 0.8711, 0.6994, '2026-06-04'),
+('PROD-WMG001', 0.8681, 0.3431, '2026-06-05'),
+('PROD-WMG001', 0.8684, -0.0371, '2026-06-06'),
+('PROD-WMG001', 0.8683, 0.0167, '2026-06-07'),
+('PROD-WMG001', 0.8807, -1.4134, '2026-06-08'),
+('PROD-WMG001', 0.8719, 1.0129, '2026-06-09'),
+('PROD-WMG001', 0.8657, 0.7125, '2026-06-10'),
+('PROD-WMG001', 0.8614, 0.5008, '2026-06-11'),
+('PROD-WMG001', 0.8593, 0.2464, '2026-06-12'),
+('PROD-WMG001', 0.8578, 0.1738, '2026-06-13'),
+('PROD-WMG001', 0.8681, -1.1866, '2026-06-14'),
+('PROD-WMG001', 0.8730, -0.5588, '2026-06-15'),
+('PROD-WMG001', 0.8823, -1.0500, '2026-06-16'),
+('PROD-WMG001', 0.8825, -0.0181, '2026-06-17'),
+('PROD-WMG001', 0.8734, 1.0475, '2026-06-18'),
+('PROD-WMG001', 0.8695, 0.4458, '2026-06-19'),
+('PROD-WMG001', 0.8569, 1.4690, '2026-06-20'),
+('PROD-WMG001', 0.8618, -0.5639, '2026-06-21'),
+('PROD-WMG001', 0.8579, 0.4514, '2026-06-22'),
+('PROD-WMG001', 0.8598, -0.2225, '2026-06-23'),
+('PROD-WMG001', 0.8658, -0.6975, '2026-06-24'),
+('PROD-WMG001', 0.8553, 1.2308, '2026-06-25'),
+('PROD-WMG001', 0.8436, 1.3849, '2026-06-26'),
+('PROD-WMG001', 0.8502, -0.7814, '2026-06-27'),
+('PROD-WMG001', 0.8574, -0.8357, '2026-06-28'),
+('PROD-WMG001', 0.8641, -0.7752, '2026-06-29'),
+('PROD-WMG001', 0.8769, -1.4582, '2026-06-30'),
+('PROD-WMG001', 0.8795, -0.2915, '2026-07-01'),
+('PROD-WMG001', 0.8782, 0.1462, '2026-07-02'),
+('PROD-WMG001', 0.8801, -0.2139, '2026-07-03'),
+('PROD-WMG001', 0.8709, 1.0540, '2026-07-04'),
+('PROD-WMG001', 0.8833, -1.4050, '2026-07-05'),
+('PROD-WMG001', 0.8779, 0.6201, '2026-07-06'),
+('PROD-WMG001', 0.8773, 0.0740, '2026-07-07'),
+('PROD-WMG001', 0.8725, 0.5533, '2026-07-08'),
+('PROD-WMG001', 0.8707, 0.2111, '2026-07-09'),
+('PROD-WMG001', 0.8657, 0.5749, '2026-07-10'),
+('PROD-WMG001', 0.8717, -0.6928, '2026-07-11'),
+('PROD-WMG001', 0.8766, -0.5539, '2026-07-12'),
+('PROD-WMG001', 0.8656, 1.2747, '2026-07-13'),
+('PROD-WMG001', 0.8764, -1.2325, '2026-07-14'),
+('PROD-WMG001', 0.8682, 0.9450, '2026-07-15'),
+('PROD-WMG001', 0.8563, 1.3891, '2026-07-16'),
+('PROD-WMG001', 0.8498, 0.7622, '2026-07-17'),
+('PROD-WMG001', 0.8508, -0.1207, '2026-07-18'),
+('PROD-WMG001', 0.8517, -0.1044, '2026-07-19'),
+('PROD-WMG001', 0.8610, -1.0771, '2026-07-20'),
+('PROD-WMG001', 0.8615, -0.0533, '2026-07-21'),
+('PROD-WMG001', 0.8498, 1.3823, '2026-07-22'),
+('PROD-WMG001', 0.8612, -1.3264, '2026-07-23'),
+('PROD-WMG001', 0.8570, 0.4868, '2026-07-24'),
+('PROD-WMG001', 0.8544, 0.2990, '2026-07-25'),
+('PROD-WMG001', 0.8562, -0.2114, '2026-07-26'),
+('PROD-WMG001', 0.8497, 0.7622, '2026-07-27'),
+('PROD-WMG001', 0.8568, -0.8267, '2026-07-28'),
+('PROD-WMG001', 0.8687, -1.3727, '2026-07-29'),
+('PROD-WMG001', 0.8686, 0.0096, '2026-07-30'),
+('PROD-WMG001', 0.8798, -1.2702, '2026-07-31'),
+('PROD-WMG001', 0.8668, 1.4951, '2026-08-01'),
+('PROD-WMG001', 0.8776, -1.2279, '2026-08-02'),
+('PROD-WMG001', 0.8700, 0.8746, '2026-08-03'),
+('PROD-WMG001', 0.8677, 0.2628, '2026-08-04'),
+('PROD-WMG001', 0.8649, 0.3269, '2026-08-05'),
+('PROD-WMG001', 0.8691, -0.4844, '2026-08-06'),
+('PROD-WMG001', 0.8573, 1.3787, '2026-08-07'),
+('PROD-WMG001', 0.8576, -0.0310, '2026-08-08'),
+('PROD-WMG001', 0.8587, -0.1244, '2026-08-09'),
+('PROD-WMG001', 0.8713, -1.4412, '2026-08-10'),
+('PROD-WMG001', 0.8626, 1.0114, '2026-08-11'),
+('PROD-WMG001', 0.8533, 1.0924, '2026-08-12'),
+('PROD-WMG001', 0.8624, -1.0561, '2026-08-13'),
+('PROD-WMG001', 0.8601, 0.2661, '2026-08-14'),
+('PROD-WMG001', 0.8664, -0.7320, '2026-08-15'),
+('PROD-WMG001', 0.8562, 1.1934, '2026-08-16'),
+('PROD-WMG001', 0.8664, -1.1826, '2026-08-17'),
+('PROD-WMG001', 0.8568, 1.1226, '2026-08-18'),
+('PROD-WMG001', 0.8454, 1.3473, '2026-08-19'),
+('PROD-WMG001', 0.8375, 0.9427, '2026-08-20'),
+('PROD-WMG001', 0.8277, 1.1871, '2026-08-21'),
+('PROD-WMG001', 0.8364, -1.0394, '2026-08-22'),
+('PROD-WMG001', 0.8433, -0.8146, '2026-08-23'),
+('PROD-WMG001', 0.8452, -0.2296, '2026-08-24'),
+('PROD-WMG001', 0.8415, 0.4423, '2026-08-25'),
+('PROD-WMG001', 0.8307, 1.2974, '2026-08-26'),
+('PROD-WMG001', 0.8357, -0.6015, '2026-08-27'),
+('PROD-WMG001', 0.8271, 1.0419, '2026-08-28'),
+('PROD-WMG001', 0.8359, -1.0507, '2026-08-29'),
+('PROD-WMG001', 0.8388, -0.3489, '2026-08-30'),
+('PROD-WMG001', 0.8357, 0.3687, '2026-08-31'),
+('PROD-WMG001', 0.8466, -1.2912, '2026-09-01'),
+('PROD-WMG001', 0.8408, 0.6877, '2026-09-02'),
+('PROD-WMG001', 0.8518, -1.2918, '2026-09-03'),
+('PROD-PRIV01', 1.0804, -0.0394, '2025-09-05'),
+('PROD-PRIV01', 1.0858, -0.4953, '2025-09-06'),
+('PROD-PRIV01', 1.0847, 0.1035, '2025-09-07'),
+('PROD-PRIV01', 1.1012, -1.4952, '2025-09-08'),
+('PROD-PRIV01', 1.0884, 1.1790, '2025-09-09'),
+('PROD-PRIV01', 1.0761, 1.1412, '2025-09-10'),
+('PROD-PRIV01', 1.0648, 1.0635, '2025-09-11'),
+('PROD-PRIV01', 1.0578, 0.6627, '2025-09-12'),
+('PROD-PRIV01', 1.0509, 0.6572, '2025-09-13'),
+('PROD-PRIV01', 1.0666, -1.4745, '2025-09-14'),
+('PROD-PRIV01', 1.0813, -1.3560, '2025-09-15'),
+('PROD-PRIV01', 1.0711, 0.9521, '2025-09-16'),
+('PROD-PRIV01', 1.0804, -0.8579, '2025-09-17'),
+('PROD-PRIV01', 1.0908, -0.9505, '2025-09-18'),
+('PROD-PRIV01', 1.0885, 0.2131, '2025-09-19'),
+('PROD-PRIV01', 1.0957, -0.6550, '2025-09-20'),
+('PROD-PRIV01', 1.0887, 0.6446, '2025-09-21'),
+('PROD-PRIV01', 1.0761, 1.1706, '2025-09-22'),
+('PROD-PRIV01', 1.0769, -0.0739, '2025-09-23'),
+('PROD-PRIV01', 1.0653, 1.0872, '2025-09-24'),
+('PROD-PRIV01', 1.0611, 0.3993, '2025-09-25'),
+('PROD-PRIV01', 1.0743, -1.2332, '2025-09-26'),
+('PROD-PRIV01', 1.0726, 0.1574, '2025-09-27'),
+('PROD-PRIV01', 1.0886, -1.4733, '2025-09-28'),
+('PROD-PRIV01', 1.0863, 0.2117, '2025-09-29'),
+('PROD-PRIV01', 1.0980, -1.0678, '2025-09-30'),
+('PROD-PRIV01', 1.0854, 1.1643, '2025-10-01'),
+('PROD-PRIV01', 1.0726, 1.1969, '2025-10-02'),
+('PROD-PRIV01', 1.0641, 0.8011, '2025-10-03'),
+('PROD-PRIV01', 1.0608, 0.3143, '2025-10-04'),
+('PROD-PRIV01', 1.0553, 0.5249, '2025-10-05'),
+('PROD-PRIV01', 1.0610, -0.5377, '2025-10-06'),
+('PROD-PRIV01', 1.0599, 0.1072, '2025-10-07'),
+('PROD-PRIV01', 1.0558, 0.3930, '2025-10-08'),
+('PROD-PRIV01', 1.0687, -1.2047, '2025-10-09'),
+('PROD-PRIV01', 1.0740, -0.4944, '2025-10-10'),
+('PROD-PRIV01', 1.0864, -1.1432, '2025-10-11'),
+('PROD-PRIV01', 1.0769, 0.8849, '2025-10-12'),
+('PROD-PRIV01', 1.0734, 0.3266, '2025-10-13'),
+('PROD-PRIV01', 1.0655, 0.7444, '2025-10-14'),
+('PROD-PRIV01', 1.0641, 0.1286, '2025-10-15'),
+('PROD-PRIV01', 1.0529, 1.0676, '2025-10-16'),
+('PROD-PRIV01', 1.0506, 0.2164, '2025-10-17'),
+('PROD-PRIV01', 1.0357, 1.4393, '2025-10-18'),
+('PROD-PRIV01', 1.0368, -0.1056, '2025-10-19'),
+('PROD-PRIV01', 1.0236, 1.2907, '2025-10-20'),
+('PROD-PRIV01', 1.0272, -0.3525, '2025-10-21'),
+('PROD-PRIV01', 1.0302, -0.2867, '2025-10-22'),
+('PROD-PRIV01', 1.0446, -1.3788, '2025-10-23'),
+('PROD-PRIV01', 1.0373, 0.7032, '2025-10-24'),
+('PROD-PRIV01', 1.0261, 1.0896, '2025-10-25'),
+('PROD-PRIV01', 1.0385, -1.1919, '2025-10-26'),
+('PROD-PRIV01', 1.0407, -0.2127, '2025-10-27'),
+('PROD-PRIV01', 1.0341, 0.6337, '2025-10-28'),
+('PROD-PRIV01', 1.0399, -0.5536, '2025-10-29'),
+('PROD-PRIV01', 1.0502, -0.9789, '2025-10-30'),
+('PROD-PRIV01', 1.0433, 0.6589, '2025-10-31'),
+('PROD-PRIV01', 1.0398, 0.3376, '2025-11-01'),
+('PROD-PRIV01', 1.0493, -0.9021, '2025-11-02'),
+('PROD-PRIV01', 1.0510, -0.1596, '2025-11-03'),
+('PROD-PRIV01', 1.0519, -0.0809, '2025-11-04'),
+('PROD-PRIV01', 1.0648, -1.2074, '2025-11-05'),
+('PROD-PRIV01', 1.0654, -0.0556, '2025-11-06'),
+('PROD-PRIV01', 1.0577, 0.7268, '2025-11-07'),
+('PROD-PRIV01', 1.0730, -1.4277, '2025-11-08'),
+('PROD-PRIV01', 1.0684, 0.4329, '2025-11-09'),
+('PROD-PRIV01', 1.0755, -0.6641, '2025-11-10'),
+('PROD-PRIV01', 1.0725, 0.2796, '2025-11-11'),
+('PROD-PRIV01', 1.0592, 1.2580, '2025-11-12'),
+('PROD-PRIV01', 1.0499, 0.8826, '2025-11-13'),
+('PROD-PRIV01', 1.0412, 0.8370, '2025-11-14'),
+('PROD-PRIV01', 1.0382, 0.2913, '2025-11-15'),
+('PROD-PRIV01', 1.0299, 0.8025, '2025-11-16'),
+('PROD-PRIV01', 1.0360, -0.5900, '2025-11-17'),
+('PROD-PRIV01', 1.0338, 0.2099, '2025-11-18'),
+('PROD-PRIV01', 1.0295, 0.4181, '2025-11-19'),
+('PROD-PRIV01', 1.0295, -0.0012, '2025-11-20'),
+('PROD-PRIV01', 1.0180, 1.1332, '2025-11-21'),
+('PROD-PRIV01', 1.0062, 1.1749, '2025-11-22'),
+('PROD-PRIV01', 1.0173, -1.0957, '2025-11-23'),
+('PROD-PRIV01', 1.0209, -0.3558, '2025-11-24'),
+('PROD-PRIV01', 1.0157, 0.5083, '2025-11-25'),
+('PROD-PRIV01', 1.0149, 0.0830, '2025-11-26'),
+('PROD-PRIV01', 1.0253, -1.0146, '2025-11-27'),
+('PROD-PRIV01', 1.0250, 0.0314, '2025-11-28'),
+('PROD-PRIV01', 1.0307, -0.5541, '2025-11-29'),
+('PROD-PRIV01', 1.0178, 1.2695, '2025-11-30'),
+('PROD-PRIV01', 1.0103, 0.7419, '2025-12-01'),
+('PROD-PRIV01', 1.0233, -1.2751, '2025-12-02'),
+('PROD-PRIV01', 1.0305, -0.6991, '2025-12-03'),
+('PROD-PRIV01', 1.0270, 0.3415, '2025-12-04'),
+('PROD-PRIV01', 1.0324, -0.5214, '2025-12-05'),
+('PROD-PRIV01', 1.0406, -0.7860, '2025-12-06'),
+('PROD-PRIV01', 1.0514, -1.0260, '2025-12-07'),
+('PROD-PRIV01', 1.0382, 1.2708, '2025-12-08'),
+('PROD-PRIV01', 1.0416, -0.3282, '2025-12-09'),
+('PROD-PRIV01', 1.0426, -0.0971, '2025-12-10'),
+('PROD-PRIV01', 1.0400, 0.2501, '2025-12-11'),
+('PROD-PRIV01', 1.0506, -1.0082, '2025-12-12'),
+('PROD-PRIV01', 1.0504, 0.0193, '2025-12-13'),
+('PROD-PRIV01', 1.0543, -0.3741, '2025-12-14'),
+('PROD-PRIV01', 1.0691, -1.3874, '2025-12-15'),
+('PROD-PRIV01', 1.0674, 0.1630, '2025-12-16'),
+('PROD-PRIV01', 1.0726, -0.4873, '2025-12-17'),
+('PROD-PRIV01', 1.0745, -0.1779, '2025-12-18'),
+('PROD-PRIV01', 1.0629, 1.0938, '2025-12-19'),
+('PROD-PRIV01', 1.0615, 0.1304, '2025-12-20'),
+('PROD-PRIV01', 1.0484, 1.2492, '2025-12-21'),
+('PROD-PRIV01', 1.0608, -1.1695, '2025-12-22'),
+('PROD-PRIV01', 1.0752, -1.3407, '2025-12-23'),
+('PROD-PRIV01', 1.0644, 1.0190, '2025-12-24'),
+('PROD-PRIV01', 1.0751, -0.9910, '2025-12-25'),
+('PROD-PRIV01', 1.0807, -0.5170, '2025-12-26'),
+('PROD-PRIV01', 1.0773, 0.3145, '2025-12-27'),
+('PROD-PRIV01', 1.0704, 0.6492, '2025-12-28'),
+('PROD-PRIV01', 1.0750, -0.4241, '2025-12-29'),
+('PROD-PRIV01', 1.0608, 1.3390, '2025-12-30'),
+('PROD-PRIV01', 1.0568, 0.3744, '2025-12-31'),
+('PROD-PRIV01', 1.0649, -0.7635, '2026-01-01'),
+('PROD-PRIV01', 1.0514, 1.2819, '2026-01-02'),
+('PROD-PRIV01', 1.0492, 0.2131, '2026-01-03'),
+('PROD-PRIV01', 1.0595, -0.9746, '2026-01-04'),
+('PROD-PRIV01', 1.0491, 0.9883, '2026-01-05'),
+('PROD-PRIV01', 1.0380, 1.0717, '2026-01-06'),
+('PROD-PRIV01', 1.0390, -0.0944, '2026-01-07'),
+('PROD-PRIV01', 1.0546, -1.4777, '2026-01-08'),
+('PROD-PRIV01', 1.0394, 1.4648, '2026-01-09'),
+('PROD-PRIV01', 1.0352, 0.4060, '2026-01-10'),
+('PROD-PRIV01', 1.0201, 1.4776, '2026-01-11'),
+('PROD-PRIV01', 1.0096, 1.0424, '2026-01-12'),
+('PROD-PRIV01', 0.9992, 1.0454, '2026-01-13'),
+('PROD-PRIV01', 0.9854, 1.3999, '2026-01-14'),
+('PROD-PRIV01', 0.9840, 0.1415, '2026-01-15'),
+('PROD-PRIV01', 0.9818, 0.2200, '2026-01-16'),
+('PROD-PRIV01', 0.9760, 0.5941, '2026-01-17'),
+('PROD-PRIV01', 0.9784, -0.2444, '2026-01-18'),
+('PROD-PRIV01', 0.9644, 1.4481, '2026-01-19'),
+('PROD-PRIV01', 0.9601, 0.4505, '2026-01-20'),
+('PROD-PRIV01', 0.9609, -0.0814, '2026-01-21'),
+('PROD-PRIV01', 0.9543, 0.6877, '2026-01-22'),
+('PROD-PRIV01', 0.9685, -1.4667, '2026-01-23'),
+('PROD-PRIV01', 0.9626, 0.6095, '2026-01-24'),
+('PROD-PRIV01', 0.9516, 1.1521, '2026-01-25'),
+('PROD-PRIV01', 0.9385, 1.3974, '2026-01-26'),
+('PROD-PRIV01', 0.9452, -0.7088, '2026-01-27'),
+('PROD-PRIV01', 0.9536, -0.8800, '2026-01-28'),
+('PROD-PRIV01', 0.9646, -1.1413, '2026-01-29'),
+('PROD-PRIV01', 0.9505, 1.4866, '2026-01-30'),
+('PROD-PRIV01', 0.9572, -0.6990, '2026-01-31'),
+('PROD-PRIV01', 0.9545, 0.2803, '2026-02-01'),
+('PROD-PRIV01', 0.9481, 0.6751, '2026-02-02'),
+('PROD-PRIV01', 0.9350, 1.4023, '2026-02-03'),
+('PROD-PRIV01', 0.9334, 0.1757, '2026-02-04'),
+('PROD-PRIV01', 0.9216, 1.2809, '2026-02-05'),
+('PROD-PRIV01', 0.9324, -1.1577, '2026-02-06'),
+('PROD-PRIV01', 0.9361, -0.3937, '2026-02-07'),
+('PROD-PRIV01', 0.9296, 0.6947, '2026-02-08'),
+('PROD-PRIV01', 0.9209, 0.9446, '2026-02-09'),
+('PROD-PRIV01', 0.9335, -1.3511, '2026-02-10'),
+('PROD-PRIV01', 0.9472, -1.4494, '2026-02-11'),
+('PROD-PRIV01', 0.9565, -0.9730, '2026-02-12'),
+('PROD-PRIV01', 0.9540, 0.2628, '2026-02-13'),
+('PROD-PRIV01', 0.9677, -1.4107, '2026-02-14'),
+('PROD-PRIV01', 0.9816, -1.4174, '2026-02-15'),
+('PROD-PRIV01', 0.9940, -1.2518, '2026-02-16'),
+('PROD-PRIV01', 0.9939, 0.0131, '2026-02-17'),
+('PROD-PRIV01', 1.0052, -1.1258, '2026-02-18'),
+('PROD-PRIV01', 1.0008, 0.4355, '2026-02-19'),
+('PROD-PRIV01', 1.0005, 0.0346, '2026-02-20'),
+('PROD-PRIV01', 1.0122, -1.1515, '2026-02-21'),
+('PROD-PRIV01', 1.0109, 0.1299, '2026-02-22'),
+('PROD-PRIV01', 1.0203, -0.9192, '2026-02-23'),
+('PROD-PRIV01', 1.0151, 0.5141, '2026-02-24'),
+('PROD-PRIV01', 1.0067, 0.8387, '2026-02-25'),
+('PROD-PRIV01', 1.0030, 0.3646, '2026-02-26'),
+('PROD-PRIV01', 1.0046, -0.1641, '2026-02-27'),
+('PROD-PRIV01', 1.0011, 0.3447, '2026-02-28'),
+('PROD-PRIV01', 1.0056, -0.4479, '2026-03-01'),
+('PROD-PRIV01', 0.9931, 1.2597, '2026-03-02'),
+('PROD-PRIV01', 1.0042, -1.1021, '2026-03-03'),
+('PROD-PRIV01', 0.9894, 1.4984, '2026-03-04'),
+('PROD-PRIV01', 0.9842, 0.5277, '2026-03-05'),
+('PROD-PRIV01', 0.9698, 1.4823, '2026-03-06'),
+('PROD-PRIV01', 0.9661, 0.3784, '2026-03-07'),
+('PROD-PRIV01', 0.9754, -0.9495, '2026-03-08'),
+('PROD-PRIV01', 0.9637, 1.2141, '2026-03-09'),
+('PROD-PRIV01', 0.9681, -0.4588, '2026-03-10'),
+('PROD-PRIV01', 0.9752, -0.7232, '2026-03-11'),
+('PROD-PRIV01', 0.9775, -0.2387, '2026-03-12'),
+('PROD-PRIV01', 0.9910, -1.3599, '2026-03-13'),
+('PROD-PRIV01', 0.9897, 0.1279, '2026-03-14'),
+('PROD-PRIV01', 0.9870, 0.2748, '2026-03-15'),
+('PROD-PRIV01', 0.9888, -0.1797, '2026-03-16'),
+('PROD-PRIV01', 0.9820, 0.6898, '2026-03-17'),
+('PROD-PRIV01', 0.9841, -0.2088, '2026-03-18'),
+('PROD-PRIV01', 0.9942, -1.0205, '2026-03-19'),
+('PROD-PRIV01', 0.9964, -0.2185, '2026-03-20'),
+('PROD-PRIV01', 0.9984, -0.1985, '2026-03-21'),
+('PROD-PRIV01', 1.0030, -0.4612, '2026-03-22'),
+('PROD-PRIV01', 1.0102, -0.7161, '2026-03-23'),
+('PROD-PRIV01', 1.0230, -1.2535, '2026-03-24'),
+('PROD-PRIV01', 1.0177, 0.5256, '2026-03-25'),
+('PROD-PRIV01', 1.0206, -0.2869, '2026-03-26'),
+('PROD-PRIV01', 1.0148, 0.5746, '2026-03-27'),
+('PROD-PRIV01', 1.0129, 0.1891, '2026-03-28'),
+('PROD-PRIV01', 1.0139, -0.0975, '2026-03-29'),
+('PROD-PRIV01', 1.0077, 0.6173, '2026-03-30'),
+('PROD-PRIV01', 1.0153, -0.7437, '2026-03-31'),
+('PROD-PRIV01', 1.0123, 0.2964, '2026-04-01'),
+('PROD-PRIV01', 1.0199, -0.7453, '2026-04-02'),
+('PROD-PRIV01', 1.0167, 0.3166, '2026-04-03'),
+('PROD-PRIV01', 1.0210, -0.4180, '2026-04-04'),
+('PROD-PRIV01', 1.0082, 1.2713, '2026-04-05'),
+('PROD-PRIV01', 0.9993, 0.8865, '2026-04-06'),
+('PROD-PRIV01', 1.0002, -0.0889, '2026-04-07'),
+('PROD-PRIV01', 0.9863, 1.4072, '2026-04-08'),
+('PROD-PRIV01', 0.9893, -0.3027, '2026-04-09'),
+('PROD-PRIV01', 0.9962, -0.6890, '2026-04-10'),
+('PROD-PRIV01', 1.0024, -0.6151, '2026-04-11'),
+('PROD-PRIV01', 0.9972, 0.5177, '2026-04-12'),
+('PROD-PRIV01', 1.0059, -0.8621, '2026-04-13'),
+('PROD-PRIV01', 0.9941, 1.1850, '2026-04-14'),
+('PROD-PRIV01', 1.0018, -0.7667, '2026-04-15'),
+('PROD-PRIV01', 1.0092, -0.7358, '2026-04-16'),
+('PROD-PRIV01', 1.0030, 0.6186, '2026-04-17'),
+('PROD-PRIV01', 0.9882, 1.4971, '2026-04-18'),
+('PROD-PRIV01', 0.9798, 0.8616, '2026-04-19'),
+('PROD-PRIV01', 0.9661, 1.4209, '2026-04-20'),
+('PROD-PRIV01', 0.9798, -1.3957, '2026-04-21'),
+('PROD-PRIV01', 0.9863, -0.6612, '2026-04-22'),
+('PROD-PRIV01', 0.9835, 0.2823, '2026-04-23'),
+('PROD-PRIV01', 0.9690, 1.4977, '2026-04-24'),
+('PROD-PRIV01', 0.9831, -1.4321, '2026-04-25'),
+('PROD-PRIV01', 0.9791, 0.4130, '2026-04-26'),
+('PROD-PRIV01', 0.9647, 1.4940, '2026-04-27'),
+('PROD-PRIV01', 0.9783, -1.3952, '2026-04-28'),
+('PROD-PRIV01', 0.9802, -0.1925, '2026-04-29'),
+('PROD-PRIV01', 0.9776, 0.2709, '2026-04-30'),
+('PROD-PRIV01', 0.9639, 1.4258, '2026-05-01'),
+('PROD-PRIV01', 0.9566, 0.7660, '2026-05-02'),
+('PROD-PRIV01', 0.9601, -0.3694, '2026-05-03'),
+('PROD-PRIV01', 0.9470, 1.3814, '2026-05-04'),
+('PROD-PRIV01', 0.9550, -0.8413, '2026-05-05'),
+('PROD-PRIV01', 0.9494, 0.5900, '2026-05-06'),
+('PROD-PRIV01', 0.9429, 0.6912, '2026-05-07'),
+('PROD-PRIV01', 0.9489, -0.6374, '2026-05-08'),
+('PROD-PRIV01', 0.9548, -0.6199, '2026-05-09'),
+('PROD-PRIV01', 0.9688, -1.4493, '2026-05-10'),
+('PROD-PRIV01', 0.9615, 0.7632, '2026-05-11'),
+('PROD-PRIV01', 0.9601, 0.1411, '2026-05-12'),
+('PROD-PRIV01', 0.9663, -0.6463, '2026-05-13'),
+('PROD-PRIV01', 0.9709, -0.4764, '2026-05-14'),
+('PROD-PRIV01', 0.9653, 0.5785, '2026-05-15'),
+('PROD-PRIV01', 0.9580, 0.7624, '2026-05-16'),
+('PROD-PRIV01', 0.9563, 0.1749, '2026-05-17'),
+('PROD-PRIV01', 0.9426, 1.4548, '2026-05-18'),
+('PROD-PRIV01', 0.9533, -1.1239, '2026-05-19'),
+('PROD-PRIV01', 0.9453, 0.8486, '2026-05-20'),
+('PROD-PRIV01', 0.9583, -1.3529, '2026-05-21'),
+('PROD-PRIV01', 0.9605, -0.2276, '2026-05-22'),
+('PROD-PRIV01', 0.9616, -0.1102, '2026-05-23'),
+('PROD-PRIV01', 0.9536, 0.8388, '2026-05-24'),
+('PROD-PRIV01', 0.9525, 0.1156, '2026-05-25'),
+('PROD-PRIV01', 0.9451, 0.7833, '2026-05-26'),
+('PROD-PRIV01', 0.9573, -1.2757, '2026-05-27'),
+('PROD-PRIV01', 0.9650, -0.7949, '2026-05-28'),
+('PROD-PRIV01', 0.9667, -0.1797, '2026-05-29'),
+('PROD-PRIV01', 0.9603, 0.6692, '2026-05-30');
+
+INSERT INTO core_product_nav (product_id, nav, daily_chg_pct, nav_date) VALUES
+('PROD-PRIV01', 0.9729, -1.2921, '2026-05-31'),
+('PROD-PRIV01', 0.9827, -0.9933, '2026-06-01'),
+('PROD-PRIV01', 0.9787, 0.4054, '2026-06-02'),
+('PROD-PRIV01', 0.9793, -0.0625, '2026-06-03'),
+('PROD-PRIV01', 0.9842, -0.4933, '2026-06-04'),
+('PROD-PRIV01', 0.9972, -1.3021, '2026-06-05'),
+('PROD-PRIV01', 0.9859, 1.1488, '2026-06-06'),
+('PROD-PRIV01', 0.9921, -0.6210, '2026-06-07'),
+('PROD-PRIV01', 0.9945, -0.2458, '2026-06-08'),
+('PROD-PRIV01', 1.0062, -1.1638, '2026-06-09'),
+('PROD-PRIV01', 1.0146, -0.8233, '2026-06-10'),
+('PROD-PRIV01', 1.0201, -0.5413, '2026-06-11'),
+('PROD-PRIV01', 1.0215, -0.1349, '2026-06-12'),
+('PROD-PRIV01', 1.0317, -0.9919, '2026-06-13'),
+('PROD-PRIV01', 1.0362, -0.4363, '2026-06-14'),
+('PROD-PRIV01', 1.0486, -1.1814, '2026-06-15'),
+('PROD-PRIV01', 1.0535, -0.4680, '2026-06-16'),
+('PROD-PRIV01', 1.0454, 0.7746, '2026-06-17'),
+('PROD-PRIV01', 1.0365, 0.8612, '2026-06-18'),
+('PROD-PRIV01', 1.0499, -1.2794, '2026-06-19'),
+('PROD-PRIV01', 1.0545, -0.4394, '2026-06-20'),
+('PROD-PRIV01', 1.0669, -1.1607, '2026-06-21'),
+('PROD-PRIV01', 1.0758, -0.8257, '2026-06-22'),
+('PROD-PRIV01', 1.0835, -0.7149, '2026-06-23'),
+('PROD-PRIV01', 1.0873, -0.3483, '2026-06-24'),
+('PROD-PRIV01', 1.1017, -1.3102, '2026-06-25'),
+('PROD-PRIV01', 1.0994, 0.2085, '2026-06-26'),
+('PROD-PRIV01', 1.0909, 0.7789, '2026-06-27'),
+('PROD-PRIV01', 1.0810, 0.9172, '2026-06-28'),
+('PROD-PRIV01', 1.0869, -0.5397, '2026-06-29'),
+('PROD-PRIV01', 1.0748, 1.1227, '2026-06-30'),
+('PROD-PRIV01', 1.0729, 0.1788, '2026-07-01'),
+('PROD-PRIV01', 1.0661, 0.6370, '2026-07-02'),
+('PROD-PRIV01', 1.0670, -0.0800, '2026-07-03'),
+('PROD-PRIV01', 1.0586, 0.7955, '2026-07-04'),
+('PROD-PRIV01', 1.0598, -0.1113, '2026-07-05'),
+('PROD-PRIV01', 1.0494, 0.9917, '2026-07-06'),
+('PROD-PRIV01', 1.0372, 1.1792, '2026-07-07'),
+('PROD-PRIV01', 1.0508, -1.2930, '2026-07-08'),
+('PROD-PRIV01', 1.0591, -0.7804, '2026-07-09'),
+('PROD-PRIV01', 1.0577, 0.1298, '2026-07-10'),
+('PROD-PRIV01', 1.0654, -0.7245, '2026-07-11'),
+('PROD-PRIV01', 1.0721, -0.6235, '2026-07-12'),
+('PROD-PRIV01', 1.0565, 1.4746, '2026-07-13'),
+('PROD-PRIV01', 1.0501, 0.6058, '2026-07-14'),
+('PROD-PRIV01', 1.0433, 0.6517, '2026-07-15'),
+('PROD-PRIV01', 1.0513, -0.7605, '2026-07-16'),
+('PROD-PRIV01', 1.0410, 0.9871, '2026-07-17'),
+('PROD-PRIV01', 1.0402, 0.0773, '2026-07-18'),
+('PROD-PRIV01', 1.0383, 0.1857, '2026-07-19'),
+('PROD-PRIV01', 1.0403, -0.1932, '2026-07-20'),
+('PROD-PRIV01', 1.0363, 0.3840, '2026-07-21'),
+('PROD-PRIV01', 1.0235, 1.2510, '2026-07-22'),
+('PROD-PRIV01', 1.0305, -0.6757, '2026-07-23'),
+('PROD-PRIV01', 1.0267, 0.3673, '2026-07-24'),
+('PROD-PRIV01', 1.0143, 1.2272, '2026-07-25'),
+('PROD-PRIV01', 1.0231, -0.8636, '2026-07-26'),
+('PROD-PRIV01', 1.0148, 0.8220, '2026-07-27'),
+('PROD-PRIV01', 1.0129, 0.1869, '2026-07-28'),
+('PROD-PRIV01', 1.0035, 0.9348, '2026-07-29'),
+('PROD-PRIV01', 0.9989, 0.4601, '2026-07-30'),
+('PROD-PRIV01', 1.0023, -0.3370, '2026-07-31'),
+('PROD-PRIV01', 0.9914, 1.1033, '2026-08-01'),
+('PROD-PRIV01', 0.9956, -0.4243, '2026-08-02'),
+('PROD-PRIV01', 0.9838, 1.1948, '2026-08-03'),
+('PROD-PRIV01', 0.9811, 0.2767, '2026-08-04'),
+('PROD-PRIV01', 0.9927, -1.1732, '2026-08-05'),
+('PROD-PRIV01', 0.9944, -0.1682, '2026-08-06'),
+('PROD-PRIV01', 0.9892, 0.5235, '2026-08-07'),
+('PROD-PRIV01', 0.9945, -0.5290, '2026-08-08'),
+('PROD-PRIV01', 1.0058, -1.1279, '2026-08-09'),
+('PROD-PRIV01', 0.9919, 1.4014, '2026-08-10'),
+('PROD-PRIV01', 0.9876, 0.4336, '2026-08-11'),
+('PROD-PRIV01', 0.9914, -0.3784, '2026-08-12'),
+('PROD-PRIV01', 0.9976, -0.6210, '2026-08-13'),
+('PROD-PRIV01', 0.9947, 0.2909, '2026-08-14'),
+('PROD-PRIV01', 0.9862, 0.8580, '2026-08-15'),
+('PROD-PRIV01', 0.9963, -1.0119, '2026-08-16'),
+('PROD-PRIV01', 0.9991, -0.2813, '2026-08-17'),
+('PROD-PRIV01', 0.9966, 0.2497, '2026-08-18'),
+('PROD-PRIV01', 1.0094, -1.2684, '2026-08-19'),
+('PROD-PRIV01', 0.9965, 1.2971, '2026-08-20'),
+('PROD-PRIV01', 1.0037, -0.7187, '2026-08-21'),
+('PROD-PRIV01', 0.9907, 1.3147, '2026-08-22'),
+('PROD-PRIV01', 0.9827, 0.8138, '2026-08-23'),
+('PROD-PRIV01', 0.9965, -1.3815, '2026-08-24'),
+('PROD-PRIV01', 0.9868, 0.9801, '2026-08-25'),
+('PROD-PRIV01', 0.9888, -0.1983, '2026-08-26'),
+('PROD-PRIV01', 0.9812, 0.7794, '2026-08-27'),
+('PROD-PRIV01', 0.9735, 0.7925, '2026-08-28'),
+('PROD-PRIV01', 0.9662, 0.7520, '2026-08-29'),
+('PROD-PRIV01', 0.9628, 0.3507, '2026-08-30'),
+('PROD-PRIV01', 0.9578, 0.5239, '2026-08-31'),
+('PROD-PRIV01', 0.9588, -0.1075, '2026-09-01'),
+('PROD-PRIV01', 0.9643, -0.5671, '2026-09-02'),
+('PROD-PRIV01', 0.9588, 0.5726, '2026-09-03');
diff --git a/scripts/core/README.md b/scripts/core/README.md
index ddbf83c..c97af9a 100644
--- a/scripts/core/README.md
+++ b/scripts/core/README.md
@@ -18,6 +18,7 @@ mysql -u root -p < scripts/core/03-seed-customers.sql
mysql -u root -p < scripts/core/04-seed-holdings.sql
mysql -u root -p < scripts/core/05-seed-trades.sql
mysql -u root -p < scripts/core/06-seed-nav.sql
+mysql -u root -p < scripts/core/07-seed-nav-history.sql
# Agent 库(若未建)
mysql -u root -p < docs/项目框架设计/表设计/01-mysql-共用底座.sql
@@ -35,6 +36,7 @@ python scripts/sync/sync_neo4j.py
| 分析/风控/合规/运营 | 2+2+2+1(风控另有演示账号 STAFF-90001,我方分支独有) |
| 双角色 staff | 1(STAFF-10091 advisor+compliance) |
| 产品 | 14 |
+| 净值历史 | **14 产品 × 365 日**(`06-seed-nav.sql` 锚定日 + `07-seed-nav-history.sql` 364 日;再生见 `seed_nav_history.py --export-sql`) |
| 持仓记录 | ~45 |
| 交易 | 25+ |
| C×R 适当性矩阵 | 25 行(core_suitability_rule,L0 权威) |
diff --git a/scripts/core/reset.ps1 b/scripts/core/reset.ps1
index 71359ff..1de591d 100644
--- a/scripts/core/reset.ps1
+++ b/scripts/core/reset.ps1
@@ -28,7 +28,8 @@ $files = @(
"scripts/core/03-seed-customers.sql",
"scripts/core/04-seed-holdings.sql",
"scripts/core/05-seed-trades.sql",
- "scripts/core/06-seed-nav.sql"
+ "scripts/core/06-seed-nav.sql",
+ "scripts/core/07-seed-nav-history.sql"
)
foreach ($f in $files) { Invoke-SqlFile (Join-Path $Root $f) }
diff --git a/scripts/core/seed_nav_history.py b/scripts/core/seed_nav_history.py
new file mode 100644
index 0000000..db15692
--- /dev/null
+++ b/scripts/core/seed_nav_history.py
@@ -0,0 +1,131 @@
+"""为 core_product_nav 灌入近 365 个自然日历史(锚定 06-seed-nav 最新日)。
+
+仓库内 canonical 种子:`scripts/core/07-seed-nav-history.sql`(reset.ps1 在 06 之后执行)。
+
+ python scripts/core/seed_nav_history.py # 直连 MySQL upsert(增量/修复)
+ python scripts/core/seed_nav_history.py --export-sql # 重新生成 07-seed-nav-history.sql
+"""
+from __future__ import annotations
+
+import argparse
+import hashlib
+import sys
+from datetime import date, timedelta
+from pathlib import Path
+
+ROOT = Path(__file__).resolve().parents[2]
+if str(ROOT) not in sys.path:
+ sys.path.insert(0, str(ROOT))
+
+from sqlalchemy import text
+
+from app.config.database import get_core_engine
+
+ANCHOR_DATE = date(2026, 9, 4)
+DAYS_BACK = 364 # 与锚定日合计约 365 个自然日
+SQL_OUT = Path(__file__).resolve().parent / "07-seed-nav-history.sql"
+
+# 与 scripts/core/06-seed-nav.sql 一致(锚定日净值)
+ANCHORS: list[tuple[str, float]] = [
+ ("PROD-110022", 1.0300),
+ ("PROD-110023", 1.0200),
+ ("PROD-005827", 0.9500),
+ ("PROD-005828", 1.0200),
+ ("PROD-161725", 1.0500),
+ ("PROD-161726", 1.0500),
+ ("PROD-003095", 0.9500),
+ ("PROD-510300", 1.0300),
+ ("PROD-510500", 0.9800),
+ ("PROD-XYZ999", 0.9000),
+ ("PROD-000001", 1.0020),
+ ("PROD-000002", 1.0050),
+ ("PROD-WMG001", 1.0150),
+ ("PROD-PRIV01", 1.0800),
+]
+
+
+def _daily_chg_pct(product_id: str, nav_date: date) -> float:
+ h = hashlib.sha256(f"{product_id}:{nav_date.isoformat()}".encode()).hexdigest()
+ n = int(h[:8], 16) / 0xFFFFFFFF
+ return round((n - 0.5) * 3.0, 4) # roughly -1.5% .. +1.5%
+
+
+def build_history_rows() -> list[dict]:
+ rows: list[dict] = []
+ for product_id, anchor_nav in ANCHORS:
+ nav = anchor_nav
+ for offset in range(DAYS_BACK, 0, -1):
+ d = ANCHOR_DATE - timedelta(days=offset)
+ chg = _daily_chg_pct(product_id, d)
+ nav = round(nav / (1 + chg / 100.0), 4)
+ rows.append(
+ {
+ "product_id": product_id,
+ "nav_date": d.isoformat(),
+ "nav": nav,
+ "daily_chg_pct": chg,
+ }
+ )
+ return rows
+
+
+def export_sql(path: Path = SQL_OUT, *, batch_size: int = 500) -> int:
+ rows = build_history_rows()
+ lines = [
+ "USE jinrong_core;",
+ "",
+ "-- 近 364 个自然日历史净值(锚定日 2026-09-04 由 06-seed-nav.sql 写入)",
+ f"-- 生成:python scripts/core/seed_nav_history.py --export-sql · {len(rows)} 行 · {len(ANCHORS)} 产品",
+ "",
+ ]
+ for batch_start in range(0, len(rows), batch_size):
+ chunk = rows[batch_start : batch_start + batch_size]
+ lines.append(
+ "INSERT INTO core_product_nav (product_id, nav, daily_chg_pct, nav_date) VALUES"
+ )
+ value_lines = [
+ f"('{r['product_id']}', {r['nav']:.4f}, {r['daily_chg_pct']:.4f}, '{r['nav_date']}')"
+ for r in chunk
+ ]
+ lines.append(",\n".join(value_lines) + ";")
+ lines.append("")
+ path.write_text("\n".join(lines), encoding="utf-8")
+ return len(rows)
+
+
+def upsert_mysql() -> int:
+ rows = build_history_rows()
+ sql = text(
+ """
+ INSERT INTO core_product_nav (product_id, nav, daily_chg_pct, nav_date)
+ VALUES (:product_id, :nav, :daily_chg_pct, :nav_date)
+ ON DUPLICATE KEY UPDATE nav = VALUES(nav), daily_chg_pct = VALUES(daily_chg_pct)
+ """
+ )
+ engine = get_core_engine()
+ with engine.begin() as conn:
+ for batch_start in range(0, len(rows), 500):
+ chunk = rows[batch_start : batch_start + 500]
+ conn.execute(sql, chunk)
+ return len(rows)
+
+
+def main() -> None:
+ parser = argparse.ArgumentParser(description="Core NAV history seed (364 days × 14 products)")
+ parser.add_argument(
+ "--export-sql",
+ action="store_true",
+ help=f"Write {SQL_OUT.name} instead of upserting MySQL",
+ )
+ args = parser.parse_args()
+ if args.export_sql:
+ n = export_sql()
+ print(f"seed_nav_history: wrote {n} rows to {SQL_OUT}")
+ return
+ n = upsert_mysql()
+ print(f"seed_nav_history: upserted {n} rows for {len(ANCHORS)} products")
+
+
+if __name__ == "__main__":
+ main()
+
\ No newline at end of file
diff --git a/scripts/dev/restart-dev.ps1 b/scripts/dev/restart-dev.ps1
new file mode 100644
index 0000000..dc1f7e6
--- /dev/null
+++ b/scripts/dev/restart-dev.ps1
@@ -0,0 +1,143 @@
+#Requires -Version 5.1
+<#
+.SYNOPSIS
+ 重启本机 JinRong 前后端开发服务(前端 Vite · 后端 Docker 或本机 uvicorn)。
+.EXAMPLE
+ .\scripts\dev\restart-dev.ps1
+ .\scripts\dev\restart-dev.ps1 -Backend Local
+ .\scripts\dev\restart-dev.ps1 -DockerContainer stu-system-app
+.NOTES
+ 后端 Auto:若 Docker 有容器映射 8000 → docker restart;否则停 8000 监听并新开窗口跑 uvicorn。
+ 前端:释放 5173–5175 后在新 PowerShell 窗口执行 npm run dev。
+ Redis 不在此脚本内;需要时先 .\scripts\dev\start-redis.ps1
+#>
+param(
+ [ValidateSet("Auto", "Docker", "Local")]
+ [string]$Backend = "Auto",
+ [string]$DockerContainer = "",
+ [switch]$SkipBackend,
+ [switch]$SkipFrontend
+)
+
+$ErrorActionPreference = "Stop"
+$Root = Split-Path (Split-Path $PSScriptRoot -Parent) -Parent
+$Web = Join-Path $Root "web"
+Set-Location $Root
+
+function Get-ListenerPids([int[]]$Ports) {
+ $pids = @()
+ foreach ($port in $Ports) {
+ Get-NetTCPConnection -LocalPort $port -State Listen -ErrorAction SilentlyContinue |
+ ForEach-Object { $pids += $_.OwningProcess }
+ }
+ $pids | Select-Object -Unique
+}
+
+function Stop-PortListeners([int[]]$Ports) {
+ foreach ($procId in (Get-ListenerPids $Ports)) {
+ if ($procId -and $procId -gt 0) {
+ Stop-Process -Id $procId -Force -ErrorAction SilentlyContinue
+ }
+ }
+}
+
+function Get-DockerBackendName {
+ if ($DockerContainer -ne "") {
+ return $DockerContainer
+ }
+ if (-not (Get-Command docker -ErrorAction SilentlyContinue)) {
+ return $null
+ }
+ $name = docker ps --filter "publish=8000" --format "{{.Names}}" 2>$null | Select-Object -First 1
+ if ($name) { return $name.Trim() }
+ return $null
+}
+
+function Test-HttpOk([string]$Url, [int]$TimeoutSec = 12) {
+ try {
+ $null = Invoke-WebRequest -Uri $Url -UseBasicParsing -TimeoutSec $TimeoutSec
+ return $true
+ } catch {
+ return $false
+ }
+}
+
+function Test-HealthOk {
+ try {
+ $r = Invoke-RestMethod -Uri "http://127.0.0.1:8000/health" -TimeoutSec 15
+ return ($r.status -eq "ok")
+ } catch {
+ return $false
+ }
+}
+
+# --- 后端 -----------------------------------------------------------------
+if (-not $SkipBackend) {
+ $useDocker = $false
+ $container = Get-DockerBackendName
+
+ switch ($Backend) {
+ "Docker" {
+ if (-not $container) {
+ Write-Error "未找到映射 8000 的 Docker 容器;请 -DockerContainer 指定或改用 -Backend Local"
+ exit 1
+ }
+ $useDocker = $true
+ }
+ "Local" { $useDocker = $false }
+ default {
+ $useDocker = [bool]$container
+ }
+ }
+
+ if ($useDocker) {
+ Write-Host "重启后端 Docker: $container (8000) ..." -ForegroundColor Cyan
+ docker restart $container | Out-Null
+ $deadline = (Get-Date).AddSeconds(45)
+ while ((Get-Date) -lt $deadline) {
+ if (Test-HealthOk) { break }
+ Start-Sleep -Seconds 2
+ }
+ if (-not (Test-HealthOk)) {
+ Write-Host "[WARN] /health 暂未就绪,请稍后 docker logs $container" -ForegroundColor Yellow
+ } else {
+ Write-Host "后端就绪: http://127.0.0.1:8000/health" -ForegroundColor Green
+ }
+ } else {
+ if ($container) {
+ Write-Host "[WARN] 检测到 Docker 容器 '$container' 仍占用 8000;Local 模式请先停容器或改用 -Backend Docker" -ForegroundColor Yellow
+ }
+ Write-Host "重启本机 uvicorn (8000) ..." -ForegroundColor Cyan
+ Stop-PortListeners @(8000)
+ Start-Sleep -Seconds 1
+ $uvicornCmd = "Set-Location '$Root'; python -m uvicorn app.main:app --reload --host 127.0.0.1 --port 8000"
+ Start-Process powershell -ArgumentList @("-NoExit", "-Command", $uvicornCmd)
+ Start-Sleep -Seconds 4
+ if (Test-HealthOk) {
+ Write-Host "后端就绪: http://127.0.0.1:8000/health" -ForegroundColor Green
+ } else {
+ Write-Host "[WARN] uvicorn 窗口已打开,/health 尚未响应(可能仍在启动)" -ForegroundColor Yellow
+ }
+ }
+}
+
+# --- 前端 -----------------------------------------------------------------
+if (-not $SkipFrontend) {
+ if (-not (Test-Path (Join-Path $Web "package.json"))) {
+ Write-Error "未找到 web/package.json"
+ exit 1
+ }
+ Write-Host "重启前端 Vite (5173) ..." -ForegroundColor Cyan
+ Stop-PortListeners @(5173, 5174, 5175)
+ Start-Sleep -Seconds 1
+ $viteCmd = "Set-Location '$Web'; npm run dev"
+ Start-Process powershell -ArgumentList @("-NoExit", "-Command", $viteCmd)
+ Start-Sleep -Seconds 4
+ if (Test-HttpOk "http://localhost:5173/") {
+ Write-Host "前端就绪: http://localhost:5173/" -ForegroundColor Green
+ } else {
+ Write-Host "[WARN] Vite 窗口已打开,5173 暂未响应(可能落在 5174,请看新窗口日志)" -ForegroundColor Yellow
+ }
+}
+
+Write-Host "`n完成。后端 Swagger: http://127.0.0.1:8000/docs" -ForegroundColor DarkGray
diff --git a/tests/test_main.py b/tests/test_main.py
index ec62c11..b6d7ec1 100644
--- a/tests/test_main.py
+++ b/tests/test_main.py
@@ -34,6 +34,12 @@ class FakeGateway:
def delete(self, *keys):
self.deletes.append(keys)
+ def exists(self, key: str) -> bool:
+ return False
+
+ def ping(self) -> bool:
+ return True
+
@pytest.fixture()
def client(monkeypatch):
@@ -57,12 +63,33 @@ def test_health(client):
assert r.status_code == 200 and r.json()["status"] == "ok"
+def test_health_probe(client):
+ r = client.get("/health?probe=1")
+ assert r.status_code == 200
+ body = r.json()
+ assert body["ok"] is True
+ assert body["checks"]["chat_close_all"] is True
+
+
def test_api_ready(client):
r = client.get("/api/ready")
assert r.status_code == 200
body = r.json()
assert "checks" in body
assert body["checks"]["chat_close_all"] is True
+ assert body["ok"] is True
+
+
+def test_api_ready_ok_when_redis_down_but_routes_mounted(client, monkeypatch):
+ class BrokenGateway:
+ def ping(self) -> bool:
+ raise ConnectionError("redis unavailable")
+
+ monkeypatch.setattr(redis_gateway, "_gateway", BrokenGateway())
+ body = client.get("/api/ready").json()
+ assert body["ok"] is True
+ assert body["degraded"] is True
+ assert body["checks"]["redis"] is False
def test_all_routers_mounted(client):
@@ -79,6 +106,7 @@ def test_all_routers_mounted(client):
"/api/products",
"/api/products/{product_id}",
"/api/products/{product_id}/nav",
+ "/api/products/{product_id}/nav/history",
"/api/advisors/{advisor_id}/customers",
"/api/staff/me",
"/api/compliance/suitability-check",
diff --git a/tests/test_platform_api.py b/tests/test_platform_api.py
index d295927..b3bc1c8 100644
--- a/tests/test_platform_api.py
+++ b/tests/test_platform_api.py
@@ -29,6 +29,7 @@ CUST_A = {"X-Debug-Role": "customer", "X-Debug-Actor": "CUST-1001"}
CUST_B = {"X-Debug-Role": "customer", "X-Debug-Actor": "CUST-1002"}
ADVISOR = {"X-Debug-Role": "advisor", "X-Debug-Actor": "STAFF-10086"}
ANALYST = {"X-Debug-Role": "analyst", "X-Debug-Actor": "STAFF-20001"}
+COMPLIANCE = {"X-Debug-Role": "compliance", "X-Debug-Actor": "STAFF-40001"}
OTHER_ADV = {"X-Debug-Role": "advisor", "X-Debug-Actor": "STAFF-99999"}
@@ -76,7 +77,9 @@ def _seed_core(engine) -> None:
conn.execute(
text(
"INSERT INTO core_product_nav (product_id, nav_date, nav, daily_chg_pct) "
- "VALUES ('PROD-001', date('now'), 1.25, 0.01)"
+ "VALUES ('PROD-001', date('now'), 1.25, 0.01), "
+ "('PROD-001', date('now','-1 day'), 1.24, -0.2), "
+ "('PROD-001', date('now','-30 day'), 1.10, 0.5)"
)
)
conn.execute(
@@ -192,6 +195,33 @@ def test_get_product_and_nav(client):
assert r2.json()["data"]["nav"] == 1.25
+def test_nav_history_customer_ok(client):
+ r = client.get("/api/products/PROD-001/nav/history?days=365", headers=CUST_A)
+ assert r.status_code == 200
+ data = r.json()["data"]
+ assert data["product_id"] == "PROD-001"
+ assert data["count"] >= 3
+ assert len(data["items"]) >= 3
+ dates = [it["nav_date"] for it in data["items"]]
+ assert dates == sorted(dates)
+
+
+def test_nav_history_analyst_ok(client):
+ r = client.get("/api/products/PROD-001/nav/history", headers=ANALYST)
+ assert r.status_code == 200
+
+
+def test_nav_history_compliance_forbidden(client):
+ r = client.get("/api/products/PROD-001/nav/history", headers=COMPLIANCE)
+ assert r.status_code == 403
+ assert r.json()["error_code"] == "AUTH_403_SCOPE"
+
+
+def test_nav_history_not_found(client):
+ r = client.get("/api/products/PROD-404/nav/history", headers=CUST_A)
+ assert r.status_code == 404
+
+
def test_staff_me(client):
r = client.get("/api/staff/me", headers=ADVISOR)
assert r.status_code == 200
diff --git a/web/public/assets/brand/logo-mark.svg b/web/public/assets/brand/logo-mark.svg
index 6224c28..c59b678 100644
--- a/web/public/assets/brand/logo-mark.svg
+++ b/web/public/assets/brand/logo-mark.svg
@@ -1,4 +1,4 @@
diff --git a/web/public/assets/illustrations/empty-alerts.svg b/web/public/assets/illustrations/empty-alerts.svg
new file mode 100644
index 0000000..549b9c1
--- /dev/null
+++ b/web/public/assets/illustrations/empty-alerts.svg
@@ -0,0 +1,4 @@
+
diff --git a/web/public/assets/illustrations/empty-aml.svg b/web/public/assets/illustrations/empty-aml.svg
new file mode 100644
index 0000000..4394eb2
--- /dev/null
+++ b/web/public/assets/illustrations/empty-aml.svg
@@ -0,0 +1,5 @@
+
diff --git a/web/public/assets/illustrations/empty-chat.svg b/web/public/assets/illustrations/empty-chat.svg
index 9f3eac4..d60c8ee 100644
--- a/web/public/assets/illustrations/empty-chat.svg
+++ b/web/public/assets/illustrations/empty-chat.svg
@@ -1,7 +1,7 @@
diff --git a/web/public/assets/illustrations/empty-data.svg b/web/public/assets/illustrations/empty-data.svg
index d31e86f..9f77c23 100644
--- a/web/public/assets/illustrations/empty-data.svg
+++ b/web/public/assets/illustrations/empty-data.svg
@@ -1,6 +1,9 @@
diff --git a/web/public/assets/illustrations/empty-holdings.svg b/web/public/assets/illustrations/empty-holdings.svg
new file mode 100644
index 0000000..7753291
--- /dev/null
+++ b/web/public/assets/illustrations/empty-holdings.svg
@@ -0,0 +1,6 @@
+
diff --git a/web/public/assets/illustrations/empty-search.svg b/web/public/assets/illustrations/empty-search.svg
new file mode 100644
index 0000000..3918f22
--- /dev/null
+++ b/web/public/assets/illustrations/empty-search.svg
@@ -0,0 +1,5 @@
+
diff --git a/web/public/assets/illustrations/login-finance.svg b/web/public/assets/illustrations/login-finance.svg
index 5a4278f..8134373 100644
--- a/web/public/assets/illustrations/login-finance.svg
+++ b/web/public/assets/illustrations/login-finance.svg
@@ -1,17 +1,17 @@
diff --git a/web/public/favicon.svg b/web/public/favicon.svg
index 6893eb1..c59b678 100644
--- a/web/public/favicon.svg
+++ b/web/public/favicon.svg
@@ -1 +1,4 @@
-
\ No newline at end of file
+
diff --git a/web/src/App.tsx b/web/src/App.tsx
index 06c2da4..6322a47 100644
--- a/web/src/App.tsx
+++ b/web/src/App.tsx
@@ -15,6 +15,7 @@ import { CustomerTradesPage } from './pages/customer/CustomerTradesPage'
import { CustomerChatPage } from './pages/customer/CustomerChatPage'
import { AdvisorCustomersPage } from './pages/advisor/AdvisorCustomersPage'
import { MarketQuotesPage } from './pages/market/MarketQuotesPage'
+import { ProductNavDetailPage } from './pages/market/ProductNavDetailPage'
import { RiskAlertsPage } from './pages/risk/RiskAlertsPage'
import { RiskChatPage } from './pages/risk/RiskChatPage'
import { RiskSimulatePage } from './pages/risk/RiskSimulatePage'
@@ -103,6 +104,7 @@ export default function AppRoutes() {
} />
} />
+ } />
} />
diff --git a/web/src/api/products.ts b/web/src/api/products.ts
index bdbcda0..8a81ff7 100644
--- a/web/src/api/products.ts
+++ b/web/src/api/products.ts
@@ -26,6 +26,35 @@ export async function getProductNav(token: string, productId: string) {
return data
}
+export type NavHistoryPoint = {
+ nav_date: string
+ nav: number
+ daily_chg_pct?: number | null
+}
+
+export type NavHistoryResponse = {
+ product_id: string
+ product_name: string
+ min_risk_code?: string
+ items: NavHistoryPoint[]
+ days_requested: number
+ count: number
+ latest_nav_date?: string | null
+ quote_mode: string
+}
+
+export async function getProductNavHistory(
+ token: string,
+ productId: string,
+ days = 365,
+) {
+ const { data } = await apiFetch(
+ `/api/products/${encodeURIComponent(productId)}/nav/history?days=${days}`,
+ { token },
+ )
+ return data
+}
+
export async function fetchNavMap(
token: string,
productIds: string[],
diff --git a/web/src/components/DevReadyBanner.tsx b/web/src/components/DevReadyBanner.tsx
index 1e56a2d..0aca2ec 100644
--- a/web/src/components/DevReadyBanner.tsx
+++ b/web/src/components/DevReadyBanner.tsx
@@ -1,45 +1,81 @@
-import { useEffect, useState } from 'react'
+import { useCallback, useEffect, useState } from 'react'
import { Alert } from 'antd'
-import { apiFetch } from '../api/client'
+import { ApiError, apiFetch } from '../api/client'
type ReadyPayload = {
ok: boolean
+ degraded?: boolean
checks?: Record
}
+const RETRY_MS = 30_000
+
+/** 优先 /health?probe=1(老后端必有 /health);404 再试 /api/ready */
+async function fetchReadyProbe(): Promise {
+ const paths = ['/health?probe=1', '/api/ready']
+ let lastErr: unknown
+ for (const path of paths) {
+ try {
+ const { data } = await apiFetch(path)
+ if (typeof data.ok === 'boolean') return data
+ if (path.startsWith('/health') && data.status === 'ok') {
+ return { ok: true }
+ }
+ } catch (err) {
+ lastErr = err
+ if (err instanceof ApiError && err.errorCode === 'NOT_FOUND') continue
+ throw err
+ }
+ }
+ throw lastErr ?? new Error('ready probe failed')
+}
+
export function DevReadyBanner() {
const [state, setState] = useState<'loading' | 'ok' | 'warn'>('loading')
const [detail, setDetail] = useState('')
- useEffect(() => {
- let cancelled = false
- ;(async () => {
- try {
- const { data } = await apiFetch('/api/ready')
- if (cancelled) return
- if (data.ok) {
- setState('ok')
- setDetail('')
- } else {
- setState('warn')
- const checks = data.checks ?? {}
- const parts = Object.entries(checks)
- .filter(([k]) => !k.endsWith('_error'))
- .map(([k, v]) => `${k}=${String(v)}`)
- setDetail(parts.join(' · '))
- }
- } catch {
- if (!cancelled) {
- setState('warn')
- setDetail('无法连接 /api/ready')
- }
+ const runCheck = useCallback(async () => {
+ try {
+ const data = await fetchReadyProbe()
+ if (data.ok) {
+ setState('ok')
+ setDetail('')
+ return
+ }
+ setState('warn')
+ const checks = data.checks ?? {}
+ const parts = Object.entries(checks)
+ .filter(([k]) => !k.endsWith('_error'))
+ .map(([k, v]) => `${k}=${String(v)}`)
+ setDetail(parts.join(' · ') || '关键 API 路由未挂载(请重启 uvicorn --reload)')
+ } catch (err) {
+ setState('warn')
+ if (err instanceof ApiError) {
+ setDetail(
+ `${err.errorCode}: ${err.message}(自检请访问 /health?probe=1 或 /api/ready,需重启后端)`,
+ )
+ } else {
+ setDetail('无法连接自检接口(请 npm run dev + uvicorn :8000)')
}
- })()
- return () => {
- cancelled = true
}
}, [])
+ useEffect(() => {
+ let cancelled = false
+ const tick = () => {
+ if (!cancelled) void runCheck()
+ }
+ tick()
+ const timer = window.setInterval(tick, RETRY_MS)
+ const onFocus = () => tick()
+ window.addEventListener('focus', onFocus)
+ return () => {
+ cancelled = true
+ window.clearInterval(timer)
+ window.removeEventListener('focus', onFocus)
+ }
+ }, [runCheck])
+
if (state === 'loading' || state === 'ok') return null
return (
@@ -48,7 +84,7 @@ export function DevReadyBanner() {
showIcon
banner
message="环境自检未通过"
- description={detail || '请确认 Redis 6380 与后端已启动'}
+ description={detail || '请确认后端已启动且含 close-all / 问数路由'}
className="!mb-0 !rounded-none"
/>
)
diff --git a/web/src/components/PageShell.tsx b/web/src/components/PageShell.tsx
index 2b49f0e..1fcc7ae 100644
--- a/web/src/components/PageShell.tsx
+++ b/web/src/components/PageShell.tsx
@@ -26,7 +26,7 @@ export function PageShell({ title, crumbs = [], extra, alert, children }: PageSh
)}
{alert && {alert}
}
- {children}
+ {children}
)
}
diff --git a/web/src/components/chat/ChatPanel.tsx b/web/src/components/chat/ChatPanel.tsx
index fc322ac..b8db419 100644
--- a/web/src/components/chat/ChatPanel.tsx
+++ b/web/src/components/chat/ChatPanel.tsx
@@ -193,7 +193,7 @@ export function ChatPanel({
{chat.error ?
: null}
{chat.messages.length === 0 && !chat.sending ? (
-
+
) : (
chat.messages.map((m) => {
const isUser = m.role === 'user'
diff --git a/web/src/components/dashboard/DashboardHero.tsx b/web/src/components/dashboard/DashboardHero.tsx
index 4a8f0c4..e231d82 100644
--- a/web/src/components/dashboard/DashboardHero.tsx
+++ b/web/src/components/dashboard/DashboardHero.tsx
@@ -2,7 +2,8 @@ import { EyeInvisibleOutlined, EyeOutlined } from '@ant-design/icons'
import { Button, Typography } from 'antd'
import type { ReactNode } from 'react'
import { MetricCard, Surface } from '../ui'
-import { AmountText } from './AmountText'
+import { useCountUp } from '../../hooks/useCountUp'
+import { formatMoney } from '../../utils/formatMoney'
export type HeroMetric = {
label: string
@@ -28,10 +29,12 @@ export function DashboardHero({
masked = false,
onToggleMask,
}: DashboardHeroProps) {
+ const animatedMain = useCountUp(mainValue)
+
return (
-
+
@@ -43,7 +46,7 @@ export function DashboardHero({
className="!mb-2 !mt-3 !text-3xl !font-semibold !tracking-[-0.04em] !text-white sm:!text-5xl"
style={{ fontVariantNumeric: 'tabular-nums' }}
>
- {mainDisplay ??
}
+ {mainDisplay ?? formatMoney(animatedMain, masked)}
{mainLabel}
diff --git a/web/src/components/ui/Button.tsx b/web/src/components/ui/Button.tsx
index ba55f72..4893452 100644
--- a/web/src/components/ui/Button.tsx
+++ b/web/src/components/ui/Button.tsx
@@ -40,7 +40,7 @@ export const Button = forwardRef
(function Button
ref={ref}
type="button"
className={cn(
- 'inline-flex items-center justify-center gap-2 rounded-jr-sm font-medium transition-colors duration-200 disabled:cursor-not-allowed disabled:opacity-50',
+ 'inline-flex items-center justify-center gap-2 rounded-jr-sm font-medium transition-[color,background-color,border-color,transform,box-shadow] duration-200 active:scale-[0.97] disabled:cursor-not-allowed disabled:opacity-50',
buttonVariants[variant],
buttonSizes[size],
className,
diff --git a/web/src/components/ui/EmptyState.tsx b/web/src/components/ui/EmptyState.tsx
index 4b03164..914406d 100644
--- a/web/src/components/ui/EmptyState.tsx
+++ b/web/src/components/ui/EmptyState.tsx
@@ -1,4 +1,3 @@
-import { Empty } from 'antd'
import { type ReactNode } from 'react'
import { cn } from '../../lib/cn'
@@ -9,10 +8,12 @@ type EmptyStateProps = {
action?: ReactNode
}
+const DEFAULT_EMPTY_IMAGE = '/assets/illustrations/empty-data.svg'
+
export function EmptyState({ image, title, description, action }: EmptyStateProps) {
return (
- {image ?

:
}
+
{title}
{description &&
{description}
}
{action &&
{action}
}
diff --git a/web/src/components/ui/MetricCard.tsx b/web/src/components/ui/MetricCard.tsx
index a28bf2f..4871717 100644
--- a/web/src/components/ui/MetricCard.tsx
+++ b/web/src/components/ui/MetricCard.tsx
@@ -14,7 +14,7 @@ export function MetricCard({ label, value, detail, trend, emphasis = 'default' }
diff --git a/web/src/hooks/useCountUp.ts b/web/src/hooks/useCountUp.ts
new file mode 100644
index 0000000..9eb3a43
--- /dev/null
+++ b/web/src/hooks/useCountUp.ts
@@ -0,0 +1,38 @@
+import { useEffect, useState } from 'react'
+
+const reducedMotion =
+ typeof window !== 'undefined' &&
+ typeof window.matchMedia === 'function' &&
+ window.matchMedia('(prefers-reduced-motion: reduce)').matches
+
+function easeOutCubic(t: number): number {
+ return 1 - Math.pow(1 - t, 3)
+}
+
+/**
+ * 数字滚动:从 0 缓动到 target(约 600ms,ease-out)。
+ * `prefers-reduced-motion` 或运行环境无 rAF 时直接返回 target,不产生中间帧。
+ */
+export function useCountUp(target: number, duration = 600): number {
+ const [value, setValue] = useState(() => (reducedMotion ? target : 0))
+
+ useEffect(() => {
+ if (reducedMotion || typeof requestAnimationFrame !== 'function') {
+ setValue(target)
+ return
+ }
+
+ let raf = 0
+ const start = performance.now()
+ const tick = (now: number) => {
+ const progress = Math.min((now - start) / duration, 1)
+ setValue(target * easeOutCubic(progress))
+ if (progress < 1) raf = requestAnimationFrame(tick)
+ }
+ raf = requestAnimationFrame(tick)
+
+ return () => cancelAnimationFrame(raf)
+ }, [target, duration])
+
+ return value
+}
diff --git a/web/src/pages/customer/CustomerHoldingsPage.tsx b/web/src/pages/customer/CustomerHoldingsPage.tsx
index a76005f..077d060 100644
--- a/web/src/pages/customer/CustomerHoldingsPage.tsx
+++ b/web/src/pages/customer/CustomerHoldingsPage.tsx
@@ -82,6 +82,14 @@ export function CustomerHoldingsPage() {
dataSource={rows}
pagination={{ pageSize: 10 }}
size="small"
+ locale={{
+ emptyText: (
+
+

+
暂无持仓 · 可先在产品行情中查看可投产品
+
+ ),
+ }}
title={() => (