3.2 KiB
3.2 KiB
Handoff — Tourism Vertical Slice
Project
- Path:
/Users/kunthawat/Gitea/set50-alternative-data-platform - Branch:
main - Verified code commit:
a113a51—[verified] add BOT tourism source adapter - Current milestone: M1 complete and independently reviewed
- Mode: research + paper only
- Frontend: Vue 3 + Vite
- Backend: Flask
0.2.0 - Current runtime source: BOT Tourism Indicators (
TOURISM_SOURCE=bot)
Completed
- Tourism snapshot schema with source, publication, retrieval, vintage and raw hash fields.
- Deterministic Tourism Pulse score: standardized surprise × exposure × confidence.
- BOT ASP.NET form adapter with monthly history parsing and trailing 12-point YoY baseline.
- Atomic raw HTML and normalized snapshot persistence under ignored
backend/data/. - Read-only
/api/v1/data-healthendpoint. - Safe
/api/v1/replay/tourism?vintage_id=...endpoint with identity and path validation. - Ranked target weights and LONG/SHORT/NEUTRAL classification.
- English dashboard with live/provisional source label, sign-aware surprise copy and lineage fields.
- HttpOnly paper session and internal paper ledger.
- No external webhook or MT5 integration.
Independent M1 review passed with no concrete security or logic blockers. Non-blocking backlog: add schema-drift, duplicate/reordered-row, and malformed-vintage regression fixtures.
Current live vintage
source_id: bot.ec_ei_028_s2
published_at: 2026-07-31T14:30:00+07:00
as_of: 2026-06-30
status: provisional
available_periods: 138
history_points: 12
vintage_id: bot.ec_ei_028_s2-2026-07-31-665981f88b4a
raw_payload_hash: 665981f88b4a30c5bd30026cf1e96279c244ad83725558f4136d952b29756a31
theme_surprise: -0.35114754
Verified commands and live checks
PYTHONPATH=backend .venv/bin/python -W error -m unittest discover -s backend/tests -v
Ran 18 tests ... OK
npm run build
Vite build completed successfully.
GET /api/v1/health
HTTP 200; {"mode":"research","status":"ok","version":"0.2.0"}
GET /api/v1/data-health
HTTP 200; source_mode=bot, status=provisional, replayable=true
GET /api/v1/replay/tourism?vintage_id=bot.ec_ei_028_s2-2026-07-31-665981f88b4a
HTTP 200; replay theme surprise matched live summary exactly.
Paper writes use a server-side token exchange and HttpOnly paper_session cookie; the token is not embedded in the frontend bundle.
Known limitations
- BOT data is provisional and may be revised. The vintage/hash contract preserves the fetched version, but this is not a final-data guarantee.
- Only foreign-arrival YoY is live in this slice; occupancy and airport passenger metrics are not yet connected.
- Snapshot storage is local filesystem and single-process; shared persistence is required before multi-worker deployment.
- No investment edge, transaction-cost result, or backtest conclusion has been established.
- Browser screenshot verification remains blocked by the Chrome remote-debugging permission prompt; served HTML/source, live API, fresh Vite build and replay integrity were verified instead.
Exact next action
Validate multiple BOT vintages and add the next real Tourism metric without changing the snapshot contract. Run event-study/backtest checks before adding LLM analysis.