anti-gambling-trader-tw
免費開源的投資反詐、交易統計與自動化交易程式工具:預設 PaperBroker,提供 14 種券商/交易所選項;交易紀錄分析在本機執行。
Interactive Sankey income statements for 235+ companies — 1,080+ quarterly & annual datasets traced from earnings infographics, pixel-verified in headless Chromium and published through a human-review
翻譯準備中
金融JavaScript · HTMLGitHub @CharlesLiuyx上線中營運者未確認
試用過了嗎? 點一下就好,不需要登入。
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Interactive Sankey income statements for 235+ companies — 1,080+ quarterly & annual datasets traced from earnings infographics, pixel-verified in headless Chromium and published through a human-reviewed, auditable pipeline. Static d3 site with Sankey, trend & table views, comparison mode, EN/中文, SVG/PNG/CSV export — works offline.
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗Turn metric images and text into traceable company and product data. Trace turns company financials into the earnings infographics you see go viral — green for value retained, red for costs, teal for revenue collected — covering companies from NVIDIA, Apple, and Microsoft to TSMC, LVMH, Tencent, and SpaceX, across quarterly and annual periods.
Put a PNG or UTF-8 text file in input/pending/ and ask Codex or Claude Code
处理{文件名}. The agent records exact values in an isolated draft, runs the
automatic checks and replies with a review link; run pnpm dev to open it.
Your approval publishes locally; pushing is a separate instruction. Process:
asset workflow (graph);
workbench and concurrent Sessions: local environments.
index.html and it just works.nvm use # Node version matches CI (.nvmrc)
pnpm dev # local review workbench
# open http://127.0.0.1:8000
…or skip the server entirely and double-click index.html — all runtime
dependencies are vendored in vendor/, so the viewer runs offline.
In the viewer: pick a company and period from the left navigator, switch views with the top Sankey / Trend / Table buttons, and multi-select companies or periods to enter comparison mode. The toolbar toggles theme and language and hosts the SVG/PNG/CSV exports. Sankey comparisons normalize the painted monetary faces to one USD scale; charts with very different magnitudes may start sub-pixel at fit and can be inspected with comparison zoom. If any selected record lacks trustworthy geometry or money metadata, the whole comparison shows a calibration error instead of mixing scales.
The sidebar list, Table view, CSV export and localized names read the same fields for each sort mode. A company without a value for the mode sorts after those with one; ties fall back to localized name, canonical name, then latest period.
| sort mode | source fields |
|---|---|
| Alphabetical | name, or i18n.<language>.displayName (aliases only match financial records) |
| Recently updated | newest data/dataset-file-metadata.js entry of the company's registered datasets (latest Git author time; kept current by the hooks in commit messages, Dataset metadata) |
| Market cap | marketCap.valueUsd, else marketCap.value/currency/unit, normalized to USD with USD_FX_SNAPSHOT (src/trace-domain.js, applied by src/app/financial.js); unsupported currencies count as missing |
| Net profit | latest matching data/income-statements/<company-key>.js record's profit.net.value, converted to USD with the same snapshot |
| Founded date | first four-digit year in founded, ascending |
New companies and periods enter as Sources through the
asset workflow, never as hand-edited adapters. Field
formats are indexed in data/schema.md.
col per node), so the layout follows the
financial narrative — segments → revenue → gross → operating → net —
instead of whatever d3's auto-layering produces.type;
link color is a gradient derived from its endpoints. You never pick a link
color by hand.Every dataset lives under a verification pipeline; the fast gates run in seconds and are green on any fresh checkout:
pnpm check # syntax sweep, unit tests, manifest/SSOT/i18n/metadata gates
pnpm verify:app # boot-and-click smoke of the viewer in headless Chromium
Per-dataset diagnostics render the pure d3-sankey SVG in headless Chromium, screenshot it, and compute pixel metrics against the reference image:
pnpm install --frozen-lockfile && pnpm exec playwright install chromium
pnpm verify:dataset -- <dataset-key> # data + i18n + render for one dataset
Two production artifacts, each with its own budget-enforcing verifier:
pnpm build:site && pnpm verify:site # optimized GitHub Pages projection
pnpm build:standalone && pnpm verify:standalone # single self-contained HTML file
The Pages build boots from a light catalog and loads details on demand; see
the runtime data contract. The standalone
build inlines everything into the Git-ignored
output/trace-company-product-metric-visualizer.html. Local output cleanup is
described in artifact retention.
CI (.github/workflows/ci.yml) always runs
pnpm check, plans browser/render gates from the Git diff, and deploys the
verified Pages artifact. docs/ci-verification.zh-CN.md
documents every check.
New datasets follow the workflow above: claim a Source from input/pending/,
author the data SSOTs and dataset adapter, localize fixed-layout text, pass the
automated render gates once per locale, then your review. The rendered output
under comparison is always the SVG produced by SankeyEngine.render() — never
the source PNG or crops of it. Source directories: input/README.md.
The owning documents:
docs/asset-workflow.md — the processing
process: commands, check boundaries, review, publication, and delivery.docs/dynamic-dataset-workflow.md —
dataset modeling rules and hard constraints.docs/fidelity-loop-rules.md — machine
fidelity gates, the reviewer checklist, and the feedback protocol.CONTEXT.md and docs/architecture/ —
domain language and lifecycle architecture.data/assets/README.md — icon crop extraction,
reference-asset layout and runtime raster annotations.Commit messages follow docs/commit-messages.md.
No framework, no bundler at development time: a static shell, ordered classic scripts, and a hand-rolled d3-sankey engine.
| file | role |
|---|---|
index.html | static viewer shell and ordered script registration |
src/app.css | viewer layout, controls, sidebar, and responsive styles |
src/app/ | viewer app modules (classic scripts, ordered in index.html, shared top-level scope) |
src/app/dom.js · util.js · dataset-loader.js · hotkeys.js · i18n-runtime.js | DOM refs · generic helpers/formatters · on-demand + company-scope preload Adapter loading, intent prefetch, raster-annotation warm, and retry · modifier-combo shortcut registry · localization caches over SANKEY_I18N |
src/app/state.js · selectors.js · financial.js · chart-theme.js | prefs + mode rules + UI state/scope · display/search derivations · USD/FX totals + company sort values · shared Chart.js theme plus lazy runtime loading |
src/app/shell.js · controls.js | theme/language/sidebar/toolbar chrome · metric/view switching + renderAll() |
src/app/company-panel.js · period-panel.js | company list, sort menu, multi-select · period tree, timeline, multi-select |
src/app/tables.js · trend.js · sankey.js | virtualized tables · revenue trend charts · sankey single/comparison orchestration, fail-closed scale presentation + draw() |
src/app/comparison-zoom.js · comparison-metric-trend.js | comparison canvas zoom gestures with a connected SVG-free browser-geometry resolver · node/link metric trend panel |
src/app/metric-library.js | General observations, source inspection, search and exact JSON export |
src/app/exports.js · main.js | SVG/PNG/CSV downloads · global wiring + boot (loads last) |
src/comparison-scale.js | Deep Comparison Visual Scale Module: validates renderer anchor geometry against Metric SSOT revenue lineage + money dimensions and produces one group-atomic USD normalization plan |
meta.logoSvg for your own asset.src/sankey-engine.js| d3-sankey renderer: compiled fixed/dynamic graph geometry + custom nodes/links/labels/logo/interactions; owns the public compiled node-value Geometry Interface |
src/dataset-registry.js | manifest-driven dataset stubs + in-place adapter upgrades on DATASETS.push |
src/runtime-data.js · scripts/lib/site-data.mjs | Pages summary/detail projection, version/integrity validation, deduplication, retry, background preload and in-place data hydration; full source/standalone no-op |
src/i18n-dictionaries.js · src/i18n.js | per-language translation data · language-neutral rule pipeline + deny-by-default overlays and visible-financial-token guard |
src/icons.js | Lucide icon set (inline SVG) + the NVIDIA brand glyph |
scripts/build-site.mjs · verify-site.mjs | builds the optimized Pages projection and enforces request/on-demand-loading budgets plus the all-period monetary-scale oracle |
scripts/build-standalone.mjs | builds the self-contained HTML artifact (inlines all adapters) |
scripts/verify-standalone.mjs | opens the artifact via file:// and checks d3 rendering, inlined raster assets, and the all-period monetary-scale oracle |
scripts/lib/comparison-scale-browser.mjs | independent Adapter + Metric SSOT + painted-DOM oracle shared by source, Pages, and standalone browser gates |
scripts/verify-app-globals.mjs | static gate for shared-scope duplicate declarations and load order |
scripts/plan-ci.mjs · scripts/lib/ci-plan.mjs | Git diff Adapter + tested ChangeImpact planning Module for CI check selection |
scripts/verify-render-regression.mjs | batch render + similarity baseline gate (data/render-baselines.json) |
scripts/update-dataset-manifest.mjs | regenerates data/dataset-manifest.js (dataset registration SSOT) |
scripts/script-sources.mjs | shared script classification for page and verifier harnesses |
scripts/lib/ | shared verifier internals: project paths, VM loader, data-loading stacks, render harness, fonts, PNG diff, compare archive, d3 hard gates |
tests/*.test.mjs | node:test unit tests (pnpm test): engine layout + compiled scale, Comparison Visual Scale, trace-domain, i18n, png-diff, script sources, dataset registry, hard gates |
scripts/extract_icon_crops.py | spec-driven icon crop extraction and validation (deps: scripts/requirements.txt) |
data/income-statements/<company-key>.js | pure financial-statement SSOT for totals and line items |
data/company-metadata/<company-key>.js | company-profile SSOT for Table mode and onboarding checks |
data/datasets/*.js | datasets (one per company/period) |
data/dataset-manifest.js | generated dataset registration manifest (navigation stubs + script paths) |
data/assets/ | reusable icon references and validation records |
vendor/ | d3 v7 and d3-sankey — vendored for offline use |