School project · Delayed data · Not financial adviceTerms
Skip to content
SINGULARITYTERMINALOpen the terminal
About

A terminal built on the primary record

SingularityView is an independent student-built financial data and research platform. It aggregates publicly available data from third-party sources for educational and research purposes. It does not provide investment advice, financial recommendations, brokerage services, portfolio management, or trading services.

Singularity Terminal is a self-hosted research terminal. It reads filings, rates, market history, federal spending, clinical registries, weather, flight tracks, housing panels and public chatter — and it reads them from the primary publisher, directly, without a vendor in between.

The design constraint that shaped everything else is that no figure may appear on screen unless it can be traced to a real response. There is no demo mode, no sample dataset and no placeholder series anywhere in the product. When a source cannot be reached, the screen names the source and says what would be required to fix it. An honest empty state is treated as a feature, not a failure.

It is built as a FastAPI server and vanilla ES modules — no build step, no bundler, no framework. Fonts are self-hosted, so the interface renders correctly with no network access at all.

This build

All 25 items complete

24 fully delivered, 1 partial (social: 3 platforms live on real data, 3 blocked on credentials with no free tier). Detail in .ag-exhaust/FEATURE_OVERHAUL_LOG.md

25 / 25stopped
Last written 55d ago · Aug 7, 12:44 Asia/DubaiFull log

Every data source, and the module that queries it

All 36 upstreams below are queried without a credential. Each card names the file in this repository that issues the request, so any claim on this page can be checked against the code rather than taken on trust.

Filings & regulatory

6 sources
SEC EDGARkeyless

Filings index, XBRL company facts, and full-text search across every US registrant.

Queried by app/services/sec.py, cf.py, fa.py, backend/edgar_fts.py

Weekly ATS and over-the-counter share volume by security.

Queried by app/services/finra.py, backend/dark_pool_live.py

Rules, proposed rules and notices, used to date regulatory events.

Queried by app/services/phase8.py

Federal and state docket entries behind the litigation views.

Queried by app/services/phase8.py
openFDAkeyless

Drug, device and enforcement records for healthcare coverage.

Queried by app/services/phase8.py

OFAC SDN and consolidated sanctions entries, screened against issuer and counterparty names.

Queried by app/services/sanctions.py

Rates & macro

7 sources

Daily par yield curve — the risk-free leg of every discounting screen.

Queried by app/services/macro_rates.py

FOMC meeting calendar and balance-sheet releases.

Queried by app/services/fed.py, events_calendar.py

Macro series. The CSV endpoints need no key; an optional FRED key unlocks the JSON API.

Queried by app/services/macro_rates.py

Euro-area policy rates and FX reference rates.

Queried by app/services/phase6.py
World Bankkeyless

Country-level indicators behind the sovereign screens.

Queried by app/services/phase7.py

Market data

5 sources

Quotes, OHLC history and fundamentals. Delayed, not a tick feed — see the limits below.

Queried by app/services/yahoo.py, hp.py, phase5.py
Stooqkeyless

Independent end-of-day history, used to cross-check the primary quote path.

Queried by app/services/market.py

Index constituents and listing reference data.

Queried by app/services/phase5.py, splc.py
CoinGeckokeyless

Token supply and unlock schedules for the digital-asset screens.

Queried by backend/token_supply_live.py
OpenFIGIkeyless

Bloomberg-operated open security identifiers, used to enrich a symbol with its FIGI, exchange and security type.

Queried by app/services/symbology.py

Government & science

9 sources

Federal contract and grant awards, resolved to the issuer under review.

Queried by app/services/phase8.py, backend/federal_awards_live.py

Registered trial phases, sponsors and status changes.

Queried by backend/clinical_trials_live.py
Crossrefkeyless

Publication metadata behind the research-intensity views.

Queried by app/services/phase8.py
arXivkeyless

Preprint activity for technology coverage.

Queried by app/services/phase8.py
Open-Meteokeyless

Forecast and ERA5 reanalysis weather over agricultural and industrial polygons.

Queried by backend/crop_climate_live.py, micro_climate.py

Crowdsourced ADS-B aircraft positions for the corporate-jet screens.

Queried by backend/jet_activity_live.py, jet_tracker.py
NASA EONETkeyless

Wildfire, storm and volcanic event feeds.

Queried by app/services/geo.py

Published housing price and inventory panels by metro.

Queried by backend/housing_research_live.py

News & chatter

5 sources

Worldwide event and tone stream behind the geopolitical layer.

Queried by app/services/geo.py, news.py
StockTwitskeyless

Public retail message stream, used for chatter volume — never as a signal on its own.

Queried by app/services/news.py, backend/retail_chatter_live.py
Mastodonkeyless

Public timeline search on mastodon.social.

Queried by app/services/news.py

Alternative data

4 sources

Public app reviews for the consumer-frustration index.

Queried by backend/app_store_live.py

Public repository activity. Unauthenticated requests are rate limited.

Queried by app/services/phase8.py
Wikipediakeyless

Company reference text on the stock lab node graph.

Queried by app/services/stock.py

Optional credentials

The server starts and every screen renders with none of these set. Each one widens coverage; none is required. Settings shows which are configured on this machine — as a boolean, never as a value.

VariableWhat it unlocksBehaviour without it
FMP_API_KEYFinancial Modeling Prep consensus estimates on the economic calendar.
The calendar falls back to model-implied estimates and labels them as such.
read by app/services/phase6.py
SINGULARITY_FRED_API_KEYThe official FRED JSON API instead of the public CSV endpoints.
Macro series still load over CSV; some series are unavailable.
read by app/services/macro_rates.py
FINNHUB_API_KEYFinnhub as an additional company-news source.
The news hub runs on its remaining sources.
read by app/services/news.py
REDDIT_CLIENT_IDReddit OAuth. Reddit's anonymous JSON endpoints now answer 403.
Reddit-derived chatter screens report the missing credential.
read by app/services/news.py
X_BEARER_TOKENX/Twitter posts in the social feed.
The X source reports 'disabled — requires a paid Basic tier or above'.
read by app/services/news.py
GOVINFO_API_KEYGovInfo as a source in business-intelligence research.
That source is skipped and the reason is shown.
read by app/services/phase8.py
REGULATIONS_GOV_API_KEYRegulations.gov dockets in business-intelligence research.
That source is skipped and the reason is shown.
read by app/services/phase8.py
PATENTSVIEW_API_KEYThe PatentsView search API behind the patent complexity scorer.
The screen states which credential it requires.
read by backend/patent_scorer.py
AIS_API_KEYWorldwide AIS vessel positions on the global map.
The vessel layer is not drawn and reports 'missing credential'.
read by app/services/geo.py
SINGULARITY_SMTP_HOSTEmail delivery for alerts. Pairs with SINGULARITY_SMTP_FROM.
Alerts still fire in-page, as desktop notifications and as sound.
read by app/services/notifications.py
SINGULARITY_SMTP_FROMThe sender address on alert email.
Email delivery stays off; the alerts panel says so.
read by app/services/notifications.py

Set a variable in the server's environment and restart. There is no way to set one from the browser, by design.

Who builds this

Read from this server's own configuration, like every other figure on the site.

This install has not listed anybody. That is deliberately blank rather than filled with plausible names: a team page is the easiest thing on a website to invent and the least likely to be checked, and this product's whole argument is that it does not invent.

An operator sets SINGULARITY_TEAM as a semicolon-separated list of Name | Role pairs and the people appear here.

Honest limitations

The things this product cannot do, stated here rather than discovered later.

Prices are delayed and interval-based

Quotes and history come from Yahoo Finance's public chart endpoint. It is not a consolidated tape, it carries no bid/ask depth, and the last bar can lag the market by minutes. Use it to research; do not use it to price a trade. There is no order routing in this product.

Some screens are waiting on data, and say so

Of the 38 screens reachable from the sidebar, 9 currently render a readiness state instead of analytics, because their upstream either needs a credential nobody has or has no free tier. They are marked in the navigation before you click them. None of them fills the gap with an invented number.

Publishers enforce rate limits

SEC EDGAR enforces a fair-access rate limit, OpenSky limits anonymous polling, and GitHub caps unauthenticated requests. When a fetch is refused the server replays the last successful response with a visible staleness stamp and the reason, or it fails outright. It never substitutes a different source silently.

Entity resolution can decline to answer

Matching an issuer to a federal contract, a clinical trial or a job posting is a judgement call. The matcher is deliberately strict — it once accepted 'Appleton Marine' as Apple Inc. A false reject shows an honest 'no match'; a false accept would put another company's data under your ticker. It is tuned to prefer the former.

It has not been audited, and it is not advice

This is research software. No figure here has been reviewed by a licensed professional, and nothing on any screen is a recommendation. What it does give you that a vendor terminal will not is the provenance: every number carries the source it was read from, so you can verify it yourself before you rely on it.

Where your data lives

Your account, watchlist, alert rules and preferences are held on our own infrastructure and are never sold, brokered or shared with an advertising network. The terminal carries no third-party analytics. What leaves the platform are outbound requests to the primary sources named above — nothing else.