A self-hosted research workspace for financial engineers. Build on OpenBB, use FMP as the primary research source, and bring FRED, Yahoo Finance and later custom data into consistent analytical views.
Available: development alpha with public prebuilt latest images. Provider expansion, the Bloomberg-inspired analyst workspace, AI and Excel have separate specs so they do not hold up this release.
Install · Documentation · Roadmap · Delivery status · Provider coverage · Breadth evidence
Snapshot: 2026-10-21. Follow the CI link for live run status; a green check does not establish deployment acceptance.
| Area | What exists | What remains |
|---|---|---|
| Prototype | Full Workspace, installed data API, two-service Compose, local image builds | Candidate login/dashboard and routing smoke; assembled Compose acceptance |
| CI/CD | Hosted checks and both Dagger builds passed; public images and tagged alpha published | Later stable release pinning and broader runtime acceptance |
| Data | Adapted FMP profile/income routes and FRED series catalog; real-data snapshot dashboard | Broader live FMP coverage, Yahoo adapter, named discovery and consistent provider contracts |
| Visuals | Selected ECharts table-chart journeys with captured FMP data, including accepted pie/donut behavior and owner-reviewed appearance; verified bubble-range and miniature correction; existing Plotly; Perspective runtime foundation | Perspective dashboard integration, remaining renderer/table functions and shared theme |
| Analyst workflow | Existing dashboard editor and widget foundations | Familiar commands, linked instruments/time, reusable research views and persistence acceptance |
| Extensions | Separate AI, Excel and custom-source specs | Implementation and end-to-end acceptance; Quant plugins later |
Previous combination-chart milestone:
- Accept Column & Line, Area & Column and Custom Combination, including distinct axes and editor controls.
- Verify captured FMP values, save/reopen/export and navigator/theme/refresh retention in the packaged image.
- Publish and verify the updated alpha images, including anonymous pulls of both services.
See the ECharts checklist for remaining chart families and callers.
Published: scatter and bubble.
- Correct the reported bubble spacing and miniature overflow, then replace its FMP sample after verification.
- Publish the bubble-spacing and miniature-clipping correction.
- Match original label density and clip main markers; verify small/wide FMP views and save/reopen/export.
- Publish the label-refinement image milestone.
- Implement and review the inactive X/Y/size field-assignment contract.
- Implement and review the inactive numeric renderer, including actual ECharts geometry checks.
- Connect and source-review rendering, editor controls and saved XY settings.
- Accept real-FMP application behavior, synthetic edge cases and prior-family regressions in the candidate image.
- Publish and verify the completed scatter/bubble milestone.
Previous: histogram port.
- Review the binning contract and capture 40 quarterly FMP observations.
- Implement and independently verify the inactive binning module.
- Implement and independently verify inactive interval rendering.
- Connect and independently source-review the existing editor and application controls.
- Source-review automatic axis rounding and retained zoom/reset scales.
- Source-review endpoint-label overflow and original Bin count control order.
- Source-review miniature height, plot alignment and full-bin labels.
- Accept real-FMP application behavior, synthetic edge cases and prior-family regressions.
- Publish and verify the completed histogram milestone.
Published: pie and donut port.
- Review original field selection, concentric rings and saved alias.
- Implement and independently verify inactive pie/donut assignments.
- Implement and independently verify inactive rendering.
- Connect and source-review the existing editor and application flow.
- Repair title/legend editor transactions found by the first image run; source tests and independent review pass.
- Restore effective pie legend defaults and retain original title/legend appearance; source checks pass.
- Implement and source-review native legend paging, keyboard access and fitted donut titles.
- Accept real-FMP behavior and the owner-reviewed appearance in the candidate image.
- Publish and verify the completed milestone.
Current: box plot port.
- Review original statistics and freeze the numerical helper contract.
- Implement and independently verify original-matching numerical summaries.
- Implement and independently verify the inactive box/whisker renderer.
- Preserve original category identities in the inactive Box Plot capture helper.
- Independently accept inactive Box capture and original aggregate setup.
- Independently accept inactive Box axes/navigation and the existing-host adapter join.
- Connect and independently source-review the existing editor and saved-state flow.
- Pass retained-FMP and edge-case browser journeys against the packaged candidate.
- Source-review the Box fill, legend, category-label and miniature refinements; fresh image comparison pending.
- Accept original/replacement appearance and close the Box milestone.
- Publish and verify the completed milestone.
Parallel preparation: Range Bar/Area.
- Independently accept the inactive range-summary helper.
- Independently accept the inactive Range Bar renderer core.
- Independently accept the inactive Range Area renderer core.
- Integrate the range renderers, then verify with real FMP data.
The diagram shows delivery sequence and the Anthropic-before-Excel dependency, not completed work. Separate workstreams are not alpha release prerequisites. AI is independent of prototype acceptance. Custom sources have their own spec; Quant plugins remain a later extension. Existing persistence code, tests and the ./data/workspace bind mount stay in place. Dashboard persistence acceptance belongs to the analyst spec; infrastructure recovery verification is deferred. Neither blocks this prototype.
An analyst should be able to compare an equity, a commodity and a yield curve without learning each provider's API conventions. The planned workspace uses readable instrument names, familiar commands and linked dates, with consistent tables, charts and controls. Source labels stay visible.
Consistency preserves financial meaning: a spot benchmark is different from a futures contract; a yield curve's horizontal axis is tenor, not time; a filing's publication date differs from its reporting period. The provider map separates published coverage from installed and verified functionality.
The Bloomberg-inspired visual reference guides the future theme and widget presentation. Existing OpenBB components and our chart work remain the foundation.
| Component | Role and current boundary |
|---|---|
| Apache ECharts | Implemented chart engine for selected table-to-chart journeys. Full family and caller compatibility remains open. Done / todo |
| FINOS Perspective | Installed runtime, React host and isolated verification foundation. Pivot/explorer widget integration remains work for analyst-workspace. Done / todo |
| Plotly | Existing endpoint-chart renderer retained. Done / todo |
| Highcharts | Removed dependency. Legacy Highcharts configurations are not universally translated into ECharts. |
Development uses Windows/WSL Docker; deployment uses the same Compose topology on private Linux. The origin serves HTTP on 0.0.0.0:23003; the owner manages Cloudflare Access and cloudflared for qopenbb.example.com. State uses relative bind directories, not Docker-managed data volumes.
Dagger builds images only. Portable commands run verification and publication; GitHub Actions is the current runner, with Gitea portability retained. Development installation pulls the prebuilt latest alpha images; later stable releases use pinned versions. Installation uses these images and runs Compose without compiling source on the server. The current release is the development alpha. Use delivery status for the remaining gates rather than treating the historical Compose proposal as an installation guide.
Credentials belong in ignored .env; .env.sample contains public placeholders. Jupyter is managed separately.
| Workstream | Scope |
|---|---|
| Prototype delivery | Current baseline, CI/CD, image publication and installation |
| Market data | FMP horizontal coverage, FRED, Yahoo and future provider adapters |
| Analyst workspace | Reusable widgets, command line, linked context, theme, renderer completion and saved research context |
| Workspace AI | Anthropic discovery, grounding and streaming |
| OpenBB Excel | Add-in and generated functions; retains the Anthropic-first dependency |
| Custom data | Own datasets and later PostgreSQL |
Successor specs are initialized scopes, not completed implementations. Spec ownership records the handover. The breadth map retains actual tests and evidence; the contribution guide explains working conventions.
Sources are owned in the Workspace fork and data API fork, with revisions in sources.lock.json.