{"id":46928308,"url":"https://github.com/valuein/quants","last_synced_at":"2026-04-02T21:06:15.466Z","repository":{"id":334477251,"uuid":"1141473353","full_name":"valuein/quants","owner":"valuein","description":"We provide documentation and free resources for 12M+ SEC filings and 105M+ raw facts. This is a survivor-bias free and Point-in-Time dataset.","archived":false,"fork":false,"pushed_at":"2026-03-03T22:20:18.000Z","size":11731,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-04T01:36:20.890Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/valuein.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-24T22:38:46.000Z","updated_at":"2026-03-03T22:20:22.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/valuein/quants","commit_stats":null,"previous_names":["valuein/quants"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/valuein/quants","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/valuein%2Fquants","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/valuein%2Fquants/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/valuein%2Fquants/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/valuein%2Fquants/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/valuein","download_url":"https://codeload.github.com/valuein/quants/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/valuein%2Fquants/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30363008,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-10T21:41:54.280Z","status":"ssl_error","status_checked_at":"2026-03-10T21:40:59.357Z","response_time":106,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-03-11T04:00:27.238Z","updated_at":"2026-04-02T21:06:15.449Z","avatar_url":"https://github.com/valuein.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Valuein Logo](https://www.valuein.biz/valuein/twitter-rounded.png)](https://valuein.biz)\n\n[![PyPI version](https://img.shields.io/pypi/v/valuein-sdk?cacheSeconds=300)](https://pypi.org/project/valuein-sdk/)\n[![Python 3.10+](https://img.shields.io/badge/python-3.10%2B-blue)](https://pypi.org/project/valuein-sdk/)\n[![License](https://img.shields.io/badge/license-Apache%202.0-green)](LICENSE)\n[![CI](https://github.com/valuein/quants/actions/workflows/publish.yml/badge.svg)](https://github.com/valuein/quants/actions/workflows/publish.yml)\n\n# 💎 Valuein Python SDK: Frictionless Financial Data\nA high-performance toolkit for querying point-in-time US fundamentals from SEC EDGAR, built for quants, analysts, and data engineers.\n\nThe Valuein SDK, is a complete infrastructure solution for consuming point-in-time accurate US Core financial fundamentals (facts) on your daily workflow. Whether you are building complex asynchronous Python pipelines, performing forensic financial research in Excel, or executing templated SQL, this library provides frictionless, zero-setup access to institutional-grade data.\n\n## The Data Engine\nPowered by survivorship-bias-free data containing 12M+ filings and 108M+ facts from 10-Ks, 10-Qs, 8-Ks, 20-Fs, and amendments across 10,000+ active and delisted US companies since 1990.\n\n## Why use this toolkit?\n\n⚡ Lightning-Fast Python SDK: Execute blazing-fast queries against remote Parquet files hosted on R2, powered entirely by DuckDB under the hood. No database setup, no massive local downloads.\n\n📊 Excel \u0026 Power Query Ready: Not a Python developer? Fetch, transform, and analyze the data directly within Excel spreadsheets using our provided integrations.\n\n🛠️ Plug-and-Play SQL Templates: Skip the boilerplate. Use our pre-built SQL templates to immediately extract insights, calculate intrinsic values, or model standardized financial statements.\n\n📚 Comprehensive Context: Deep-dive documentation mapping out table schemas, primary keys, and field definitions to support your specific financial research use cases.\n\n## 🚀 Why Valuein Data and SDK Library\n\u003e Easy of use and intelligence.\n\n| Feature                               | Benefit                                                    |\n|---------------------------------------|-----------------------------------------------------------|\n| 🕒 **\u003cspan title=\"Provides historical snapshots for accurate backtesting\"\u003ePoint‑in‑Time Data\u003c/span\u003e** | Eliminate look‑ahead bias in backtests |\n| ⚖️ **\u003cspan title=\"Includes companies that went bankrupt, delisted, or were acquired\"\u003eSurvivorship‑Bias Free\u003c/span\u003e** | Includes bankrupt, delisted, and acquired firms |\n| 📊 **\u003cspan title=\"Maps 15k+ raw XBRL tags to ~150 standard financial concepts\"\u003eStandardized Concepts\u003c/span\u003e** | 15k+ XBRL tags mapped to ~150 canonical financial concepts |\n| 🚀 **\u003cspan title=\"High-speed in-memory SQL engine using DuckDB\"\u003eDuckDB SQL Engine\u003c/span\u003e** | Millisecond analytics directly in Python |\n| ☁️ **\u003cspan title=\"Stream Parquet data from cloud storage without downloading locally\"\u003eCloud Parquet Streaming\u003c/span\u003e** | No local data downloads required |\n| 🧩 **\u003cspan title=\"Ready-to-use financial templates for backtesting and signals\"\u003eFinancial Templates\u003c/span\u003e** | Production‑ready investment signals |\n\n\n## 🧠 What You Can Do With This Repository\n\n| Use Case | Who | Where to Start |\n|---|---|---|\n| **Query financial data via Python** | Quants, data engineers | [Quickstart](#quickstart) |\n| **Run 39 pre-built financial signals** | Analysts, quants | [SQL Templates](#sql-templates) |\n| **Learn with interactive notebooks** | Students, new users | [Examples \u0026 Notebooks](#examples--notebooks) |\n| **Pull data into Excel** | Financial analysts | [Excel Integration](#excel-integration) |\n| **Prove data quality to stakeholders** | Institutional buyers, compliance | [Research \u0026 Quality Proofs](#research--quality-proofs) |\n| **Read methodology and compliance docs** | Due diligence, enterprise | [Documentation](#documentation) |\n| **Contribute templates, examples, research** | Open-source contributors | [Contributing](#contributing) |\n\n---\n\n## ⚡ Quickstart\n\n**1. Install Package**\n\n``` bash\npip install valuein-sdk\n```\n\n### Run the script — no token required\n\nInstall and query real data immediately, no registration needed for the SAMPLE dataset:\n\n```python\nfrom valuein_sdk import ValueinClient\n\nclient = ValueinClient()                            # load all tables by default\nprint(\"Me: \", client.me())                          # dict: plan, status, email, createdAt\nprint(\"Manifest: \", client.manifest())              # dict: snapshot, last_updated, tables (cached 5 min)\nprint(\"Tables: \", client.tables())                  # list of loaded table names\nprint(\"Fact Schema: \", client.get_schema(\"fact\"))  # dict: column → DuckDB type for any loaded table\n\nsql_query = \"SELECT COUNT(cik) FROM entity\"\nresult_df = client.query(sql_query)             # SQL → pandas DataFrame\nprint(f\"Query Results: {result_df}\")\n```\n\nAdd a token at any time to unlock the full dataset — no code changes needed.\n\n## 🔑 2. Get Your API Token\n\n| Data Plan        | Coverage                                                        | Price | Get Access                                                  |\n|------------------|-----------------------------------------------------------------|------|-------------------------------------------------------------|\n| **Sample**       | S\u0026P 500 coverage\u003cbr\u003e5-years only\u003cbr\u003eActive \u0026 inactive companies | **Free** | No registration                                             |\n| **S\u0026P500**       | S\u0026P 500 coverage\u003cbr\u003eFull history\u003cbr\u003eActive \u0026 inactive companies | **Free** | [Register](https://buy.stripe.com/3cI28qgx81Og66weXgco004)  |\n| **Pro**          | Full universe of US stocks\u003cbr\u003eUS core fundamentals              | **$200 / month** | [Subscribe](https://buy.stripe.com/5kQ3cudkW0Kc3Yo02mco005) |\n| **Pro (Annual)** | Same as Pro plan (20% Discount)                                 | **$1920 / year** | [Subscribe](https://buy.stripe.com/eVq00i94GakM52s6qKco003) |\n\n\n## 🔐 3. Set Your API Token\n\n```bash\necho 'VALUEIN_API_KEY=\"your_token\"' \u003e\u003e .env\n```\n\n## ▶️ 4. Production-ready code\n\nThe ValueinClient handles authentication, table discovery, and local caching in a high-performance DuckDB instance.\n\nThe Recommended Way For Production is the Context Manager block/pattern because it ensures that temporary files and database connections are closed automatically, even if your script crashes.\n\n```python\nfrom valuein_sdk import ValueinClient, ValueinError\n\ntry:\n    # load specific tables OR omit to load all tables\n    with ValueinClient() as client:\n                \n        f_df = client.get(table=\"filing\")               # download full table → pandas DataFrame\n        print(f\"Filings: {f_df.head()}\")\n                \n        try:\n            result_df = client.run_template(            # named SQL template → pandas DataFrame\n                \"01_fundamentals_by_ticker\",\n                ticker=\"AAPL\",\n                start_date=\"2020-01-01\",\n                end_date=\"2024-01-01\",\n                form_types=[\"10-K\", \"10-Q\"],\n                metrics=[\"TotalRevenue\", \"NetIncome\", \"OperatingCashFlow\"],  # required — standard_concept filter\n            )\n            print(f\"Template Results: {result_df}\")\n        except ValueinError as e:\n            print(f\"Catch all error types: {e}\")       \nexcept Exception as e:\n    print(f\"Initialization error: {e}\")\n```\n\n---\n\n# 🗂️ Data Schema\n\u003e Find more information regarding all tables, and it fields in [docs/schema.json](docs/schema.json).\n\n| Table              | Description                   | Records |\n|-------------------|-------------------------------|---------|\n| **references**     | **Start here.** Flat join of entity + security + index_membership. One row per security. Boolean flags (`is_sp500`) replace three joins. | ~7K |\n| **entity**         | Company metadata              | 19K+    |\n| **security**       | Ticker history (SCD Type 2)   | 7K+     |\n| **filing**         | Filing metadata               | 12M+    |\n| **fact**           | Financial statement facts     | 108M+   |\n| **valuation**      | Two-stage DCF + DDM intrinsic value per entity per period | 19K+    |\n| **taxonomy_guide** | 2026 US GAAP Taxonomy Guide | 11,966  |\n| **index_membership** | Historical index membership with start/end dates | 8K+     |\n\n\n### 🔗 Key Joins\n\n```\nreferences.cik                  →  entity.cik  (references is the fast entry point)\nsecurity.entity_id              →  entity.cik\nfiling.entity_id                →  entity.cik\nfact.entity_id                  →  entity.cik\nfact.accession_id               →  filing.accession_id\nindex_membership.security_id    →  security.id\n```\n\n### ⚡ DuckDB Query Patterns\n\nThree patterns that eliminate redundant joins and scans on every cross-company query:\n\n**1. `references` replaces entity + security + index_membership**\n```sql\n-- Filter S\u0026P 500 tech companies — zero joins\nSELECT symbol, name, sector\nFROM   references\nWHERE  is_sp500 = TRUE AND sector ILIKE '%technology%' AND is_active = TRUE\n```\n\n**2. `LATERAL` for the latest filing per company**\n```sql\nJOIN LATERAL (\n  SELECT accession_id, filing_date\n  FROM   filing\n  WHERE  entity_id = r.cik AND form_type = '10-K'\n  ORDER  BY filing_date DESC\n  LIMIT  1\n) f ON true\n```\n\n**3. Pivot multiple concepts in one `fact` scan**\n```sql\n-- Debt + equity in one pass — no self-join\nSELECT\n  MAX(CASE WHEN standard_concept = 'LongTermDebt'       THEN numeric_value END) AS debt,\n  MAX(CASE WHEN standard_concept = 'StockholdersEquity' THEN numeric_value END) AS equity\nFROM fact WHERE standard_concept IN ('LongTermDebt', 'StockholdersEquity')\nGROUP BY accession_id\n```\n\n\u003e For quarterly cash flow metrics, use `COALESCE(derived_quarterly_value, numeric_value)` — Q2/Q3 10-Qs report YTD; this column isolates the single quarter.\n\nSee [`valuein_sdk/queries/SQL_CHEATSHEET.md`](valuein_sdk/queries/SQL_CHEATSHEET.md) for 8 complete patterns including FCF screens, PIT backtesting, and restatement auditing.\n\n---\n\n### 🏷️ Standard Concept Names\n\n\u003e [!Note]\n\u003e Raw XBRL tags (11,966 unique) are normalized to canonical `standard_concept` values. We standardized the most used\n3,200 concepts from the US GAAP Taxonomy Code which allows to categorize 95% of all facts, the rest has the 'Other' category.\n\n\u003e Both the raw `concept` tag (xbrl_tag) and the normalized `standard_concept` are on the `fact` table — no join to a separate mapping table needed.\n\n\n### 📅 Date Columns Reference\n\n| Column | Table | Use for |\n|---|---|---|\n| `report_date` / `period_end` | `filing` / `fact` | Aligning to fiscal calendar |\n| `filing_date` | `filing` | **PIT backtest filter** — when the SEC received the filing |\n| `knowledge_at` | `fact` | Millisecond-precision PIT for intraday signal research |\n\n\n### 🧩 Template Categories\n\n| Range | Category | Examples |\n|---|---|---|\n| 01–04 | Data Access | Fundamentals by ticker, FIGI lookup, peer comparison, survivorship-bias-free screen |\n| 05–09 | Income Statement | YoY revenue growth, TTM, margin analysis, FCF, R\u0026D intensity |\n| 10–15 | Balance Sheet | Liquidity, solvency, interest coverage, cash conversion, capex ratios |\n| 16–20 | Investment Scores | DuPont, Piotroski F-Score, Altman Z-Score, accruals anomaly |\n| 21–26 | Valuation \u0026 Screening | Sector aggregates, peer ranking, dilution, arbitrage signals |\n| 27–33 | Short Signals | Late filers, restatements, 8-K events, ghost companies |\n| 34–39 | Advanced Analytics | PIT backtest engine, Z-score outliers, seasonality, XBRL audit |\n\nSee [`valuein_sdk/queries/SQL_CHEATSHEET.md`](https://github.com/valuein/quants/blob/main/valuein_sdk/queries/SQL_CHEATSHEET.md) for the full template reference.\n\n\n## 📚 Documentation\n\n| Document | Description | Format |\n|----------|------------|--------|\n| [`docs/METHODOLOGY.md`](docs/METHODOLOGY.md) | Data sourcing, PIT architecture, restatement handling, XBRL normalization logic | Markdown |\n| [`docs/COMPLIANCE_AND_DDQ.md`](docs/COMPLIANCE_AND_DDQ.md) | Data provenance, MNPI policy, PIT integrity, security, SLA summary | Markdown |\n| [`docs/SLA.md`](docs/SLA.md) | Uptime targets, data freshness SLAs, support response times, SLA credits | Markdown |\n| [`docs/excel-guide.md`](docs/excel-guide.md) | Full Excel / Power Query setup walkthrough | Markdown |\n| [`docs/DATA_CATALOG.xlsx`](docs/DATA_CATALOG.xlsx) | All columns, types, definitions, sample values | Excel |\n| [`docs/schema.json`](docs/schema.json) | Machine-readable JSON schema | JSON |\n\n---\n\n## 🐍 Python Examples\nStandalone Python scripts and four Jupyter notebooks, designed to go from install to insight in under 3 minutes.*\n\n### Ticker lookup example\nRun any SQL against the data lake. No downloads. No local database. DuckDB executes your queries in-process.\n\n```python\nfrom valuein_sdk import ValueinClient\n\nclient = ValueinClient(tables=[\"entity\", \"security\"])\n# This client only fetch these 2 tables, making it faster!\n\ndf = client.query(\"\"\"\n    SELECT e.cik, e.name, e.sector, e.status,\n           s.symbol, s.exchange\n    FROM   security s\n    JOIN   entity   e ON s.entity_id = e.cik\n    WHERE  s.symbol = 'AAPL' AND s.is_active = TRUE\n\"\"\")\nprint(df)\n```\n\nYou are now querying **SEC financial statements directly from the\ncloud**.\n\n\n### Python scripts (`examples/python/`)\n\n| Script | Level | What it demonstrates |\n|---|---|---|\n| [`getting_started.py`](examples/python/getting_started.py) | Beginner | Auth check, first query, entity counts by sector |\n| [`usage.py`](examples/python/usage.py) | Reference | Every public SDK method demonstrated |\n| [`entity_screening.py`](examples/python/entity_screening.py) | Beginner | Screen by sector, SIC code, active vs inactive status |\n| [`financial_analysis.py`](examples/python/financial_analysis.py) | Intermediate | Revenue trends, margins, concept normalization, peer comparison |\n| [`pit_backtest.py`](examples/python/pit_backtest.py) | Intermediate | Correct PIT discipline, restatement impact, `filing_date` vs `report_date` |\n| [`survivorship_bias.py`](examples/python/survivorship_bias.py) | Intermediate | Delisted/bankrupt companies, index_membership, bias quantification |\n\n### Jupyter notebooks (`examples/notebooks/`)\n\n| Notebook | Open in Colab |\n|---|---|\n| [Quickstart](examples/notebooks/quickstart.ipynb) | [![Open in Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/valuein/quants/blob/main/examples/notebooks/quickstart.ipynb) |\n| [Fundamental Analysis](examples/notebooks/fundamental_analysis.ipynb) | [![Open in Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/valuein/quants/blob/main/examples/notebooks/fundamental_analysis.ipynb) |\n| [PIT Backtest](examples/notebooks/pit_backtest.ipynb) | [![Open in Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/valuein/quants/blob/main/examples/notebooks/pit_backtest.ipynb) |\n| [Survivorship Bias](examples/notebooks/survivorship_bias.ipynb) | [![Open in Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/valuein/quants/blob/main/examples/notebooks/survivorship_bias.ipynb) |\n\n---\n\n### 🛡️ Error Handling\n\n```python\nfrom valuein_sdk import (\n    ValueinAuthError,      # HTTP 401/403 — invalid or expired token\n    ValueinPlanError,      # HTTP 403 — endpoint requires a higher plan\n    ValueinNotFoundError,  # HTTP 404 — no table found \n    ValueinRateLimitError, # HTTP 429 — includes .retry_after (seconds)\n    ValueinAPIError,       # HTTP 5xx — includes .status_code\n    ValueinClient\n)\n\nclient = None\ntry:\n    client = ValueinClient()\n    df = client.query(\"SELECT * FROM fact LIMIT 1000000\")\nexcept ValueinAuthError:\n    print(\"Check your VALUEIN_API_KEY. It might be expired or invalid.\")\nexcept ValueinPlanError:\n    print(\"This requires a higher-tier plan. Upgrade at valuein.biz.\")\nexcept ValueinRateLimitError as e:\n    print(f\"Slow down! Retry allowed in {e.retry_after}s.\")\nexcept ValueinNotFoundError as e:\n    print(f\"That table or endpoint doesn't exist: {e}\")\nexcept ConnectionError as e:\n    print(f\"Physical network issue: {e}\")\nexcept ValueinAPIError as e:\n    print(f\"The Gateway is having a bad day (Status {e.status_code}).\")\nexcept Exception as e:\n    print(f\"Non-SDK error (Python/Logic): {e}\")\nfinally:\n    # Always close manually if not using a context manager and if a client was created.\n    if client is not None:\n        client.close()\n```\n\n---\n\n## 🔬 Research \u0026 Quality Proofs\n\n16 runnable research modules that prove every data quality claim with code. Designed for institutional due diligence and quantitative research.\n\n```bash\n# Install research dependencies\nuv sync --group research\n\n# Run a proof\npython research/quantitative/pit_correctness_proof.py\npython research/quality_proof/balance_sheet_check.py\n```\n\n---\n# 📊 Excel Integration\n\n**Stream live SEC fundamental data directly into your spreadsheets. No Python, or complex scripts, just pure data power.**\n\n### ⚡ Quick Start\nGet up and running in less than 60 seconds.\n\n1.  **Download Template:** Get the [`valuein-fundamentals.xlsx`](excel/valuein-fundamentals.xlsx) workbook.\n2.  **Authorize:** Open the workbook and enter your API token in the **Connectivity Guide** sheet.\n3.  **Sync Data:** Click **`Data \u003e Refresh All`**.\n\n\u003e [!TIP]\n\u003e Data streams directly from Parquet files on Cloudflare R2, ensuring high-speed transfers and minimal local overhead.\n\n### 🛠 Requirements\n* **Microsoft 365** (Build 16.0.17531 or later)\n* Active API Token\n\n### 📂 Pre-Configured Sheets\nThe workbook includes **8 high-performance sheets** ready for analysis:\n\n* **Financials:** Income Statement, Balance Sheet, Cash Flow\n* **Metadata:** Entities, Securities, Filings\n* **Reference:** Index Membership, Data Dictionary\n\n### 🧑‍💻 Developer Customization\nFor those who prefer a \"Do It Yourself\" approach, the raw **M-language** source files for Power Query are available in the [`excel/power-query/`](excel/power-query/) directory. You can use these to build custom connections in your existing workbooks.\n\n📖 **Need more help?** View the [Full Setup Walkthrough](docs/excel-guide.md).\n\n\n### 📊 Research Modules\n\n**`research/fundamental/`** — Financial statement analysis workflows\n- Income statement, balance sheet, cash flow, DuPont decomposition, Altman Z-Score\n\n**`research/quantitative/`** — Factor model and strategy research\n- PIT correctness proof, survivorship bias quantification, restatement tracking as short signal, sector rotation\n\n**`research/data_engineering/`** — XBRL normalization and pipeline analysis\n- Concept mapping explorer, taxonomy coverage, filing timeline, data freshness by sector\n\n**`research/quality_proof/`** — Automated data quality validation\n- Zero PIT violations, balance sheet equation check (Assets = Liabilities + Equity within 1%), coverage report, SEC cross-reference spot-check\n\nSee [`research/README.md`](research/README.md) for a full breakdown of what each module proves and the key metric it validates.\n\n---\n\n## 🤝 Contributing\n\nWe welcome contributions including SQL templates, notebooks, scripts, research modules, and documentation improvements.\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for code standards, naming conventions, and the PR process.\n\n## 📄 License\n\nApache-2.0 License — see [LICENSE](LICENSE).\n\n**Disclosure:** This repository is for research and educational purposes\nonly and does not constitute financial advice.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvaluein%2Fquants","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvaluein%2Fquants","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvaluein%2Fquants/lists"}