-
-
Evidence-grounded market research powered by GPT-5.6 reasoning, deterministic analytics, and traceable evidence.
-
Users define the market, symbol, analysis period, and research question, then choose live GPT synthesis or a clearly labeled Fixed Demo.
-
Every figure includes an evidence ID, date, unit, source, and method, with bull and bear cases, conflicts, and uncertainty.
-
Flask and the OpenAI Responses API connect strict tool calls to deterministic analytics and a citation-checked evidence ledger.
-
GPT5.6 Sol coordinates deterministic research tools while the interface exposes every completed tool call and its resulting evidence records
-
Buy-and-hold and SMA20/SMA50 results are compared across return, volatility, drawdown, trades, and stated limitations.
Inspiration
Investment research is usually split across price charts, company facts, risk calculators, backtests, and separate AI conversations. General-purpose AI can summarize that material, but a polished answer is not enough when users cannot verify where its figures came from.
I built Aeternus Market Intelligence to create an AI research workflow that can reason across market evidence without becoming the source of that evidence. The goal is not to predict guaranteed returns or execute trades. The goal is to show what the data supports, how each conclusion was reached, and where uncertainty remains.
What it does
Aeternus Market Intelligence is a local-first, evidence-grounded market research workspace.
Users select a market, symbol, analysis period, and research question. In live mode, GPT-5.6 Sol uses the OpenAI Responses API and strict function calling to coordinate deterministic tools for symbol validation, price history, fundamentals, technical indicators, risk metrics, and buy-and-hold versus SMA20/SMA50 comparison.
The final report presents technical, fundamental, backtest, and risk views together with bull and bear cases, conflicting signals, uncertainty, follow-up questions, limitations, and a financial disclaimer.
Every displayed financial figure is calculated by application code and carries a stable evidence ID, value, unit, currency, data date, source, and methodology. Unknown citations and unsupported numerical claims are rejected.
For reliable judging without credentials, Fixed Demo Mode uses a clearly labeled synthetic AET-DEMO dataset fixed through June 30, 2026. It runs through the same deterministic analytical boundary and explicitly reports when GPT was not called.
The application does not execute trades or provide personalized investment advice.
How I built it
Before Build Week, the repository already contained a local Flask and JavaScript market dashboard with watchlists, charts, technical indicators, backtests, risk analysis, comparisons, scanners, fundamentals, reports, alerts, portfolio tools, and optional local chat.
During Build Week, I added a GPT-5.6 Sol research agent using the OpenAI Responses API, strict function calling across nine deterministic research capabilities, Pydantic-validated structured synthesis, stable evidence IDs, a tool execution timeline, and fail-closed validation for unknown citations and unsupported numerical claims.
The browser interface calls a loopback-only Flask API. The server validates and locks each request to one market, symbol, and period. ResearchToolbox retrieves or generates the data, performs all calculations in Python, and writes a deduplicated evidence ledger.
In live mode, GPTResearchAgent sends strict tool schemas to gpt-5.6-sol through the Responses API, executes the requested tools, and parses a typed final response. The server validates every evidence reference before attaching authoritative metadata and rendering the report.
I also corrected compound-return and signal-timing details, added the Fixed Demo path, expanded automated tests, updated Windows PyInstaller packaging, and created reproducible validation and submission-media scripts.
The stack includes Python, Flask, OpenAI's Python SDK, Pydantic, pandas, NumPy, yfinance, SQLite, HTML, CSS, JavaScript, pytest, PyInstaller, Playwright, and FFmpeg.
Source code: https://github.com/shibaraven/aeternus-market-intelligence
Challenges
The hardest challenge was preventing fluent model output from becoming the system of record for financial figures. I separated qualitative synthesis from deterministic calculations, designed stable evidence IDs, and rejected unmatched citations and numerical claims.
Another challenge was preserving a large existing application while adding an isolated AI research boundary. I also had to correct compound-return calculations and next-session signal execution, package the expanded dependency graph for Windows, and provide an honest judge path that works without an API key or reliable network access.
Conflicting market signals were handled as first-class output rather than being compressed into a single unexplained score.
Accomplishments that I am proud of
I preserved the existing product while adding an isolated evidence-grounded AI agent.
Every displayed research figure is attributable to deterministic application code and a dated evidence record. The report exposes bull and bear cases, conflicts, uncertainty, limitations, and supporting evidence instead of returning a generic AI opinion.
I also built a repeatable synthetic demo that never disguises mock data as live data, added automated unit and API tests, validated both source and packaged Windows paths, and created fail-closed validation and recording scripts that refuse to fabricate GPT proof.
What I learned
I learned that tool calling is most trustworthy when the model has a narrow role: decide which evidence to request, compare the results, identify conflicts, and explain what they mean.
Application code should continue to own calculations, validation, provenance, data dates, units, currencies, and other policy-sensitive metadata.
I also learned that a clearly labeled deterministic fallback is more than a backup. It provides a reliable surface for judging, testing, debugging, and explaining the system without making false claims about live model usage.
What's next
Next steps include richer filing-period provenance for fundamentals, additional benchmark strategies, walk-forward analysis, configurable transaction-cost assumptions, more market-data provider adapters, saved local research sessions, report export, and broader accessibility testing.
Any future forecasting capability will retain the same evidence, validation, and uncertainty boundaries.
Aeternus Market Intelligence is for research and educational purposes only. It does not execute trades, provide personalized investment advice, guarantee outcomes, or guarantee returns. Historical and simulated performance does not guarantee future results.
Log in or sign up for Devpost to join the conversation.