{"adoption": {"forks": 292, "observed_at": "2026-08-28T04:04:08.523250+00:00", "stars": 1253}, "canonical_url": "https://ross.abutalabs.com/products/cvxportfolio", "card": {"archived": false, "artifact_type": "library", "description": "Portfolio optimization and back-testing.", "domain": ["fintech", "time-series", "data-science", "mathematics"], "enriched": true, "function": ["trading", "simulation", "math", "data-science"], "health_score": 81, "homepage": "https://www.cvxportfolio.com", "language": "Python", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["cvxgrp/cvxportfolio"], "name": "cvxgrp/cvxportfolio", "platform": ["python", "cross-platform"], "pushed_at": "2026-04-27T14:11:17+00:00", "repo": "cvxgrp/cvxportfolio", "stars": 1253, "tags": ["convex-optimization", "portfolio-optimization", "backtesting", "quantitative-finance", "markowitz", "cvxpy", "market-simulator", "trading-strategies", "risk-models", "transaction-costs"], "topics": ["convex-optimization", "finance", "optimization", "optimization-algorithms", "optimization-methods", "optimizer", "portfolio-optimization", "python", "time-series"], "urls": [], "use_cases": ["backtest a portfolio optimization strategy in Python", "build a Markowitz mean-variance asset allocation policy", "simulate trading strategy performance including transaction and holding costs", "optimize asset allocation with long-only, leverage, or factor-neutral constraints", "research quantitative trading strategies on historical market data", "compare multiple trading policies with a market simulator", "define custom return forecasts and covariance risk models for trading policies"], "what_it_is": "Cvxportfolio is an object-oriented Python library for portfolio optimization and back-testing, implementing the convex-optimization trading models from the Stanford/BlackRock paper. It provides a market simulator, symbolic optimization-based trading policies, cost and risk models, and forecasters, built on CVXPY and Pandas.", "when_to_avoid": ["You need live order execution or broker connectivity - the library computes target weights and simulates rather than trading in production", "You need machine-learning or combinatorial (non-convex) portfolio optimization outside the CVXPY convex framework", "You need tick-level or high-frequency market microstructure simulation", "The GPL-3.0 license is incompatible with your project's licensing"], "when_to_choose": ["You want convex-optimization-based portfolio construction and back-testing in a Python library", "You prefer symbolic trading policies (objectives plus constraints) that work with any asset universe and Pandas time-series data", "You want a realistic market simulator with stock-specific transaction and holding cost defaults", "You plan to extend the framework with custom costs, constraints, or forecast models"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/cvxportfolio", "repo": "cvxgrp/cvxportfolio", "role": "main", "score": 58}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:08.523250+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T05:07:28.228912+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "57f1375701b2ffedcc9b1199645bc86834c4a2b17abf4036d4d9b4ddb14e2967", "fetched_at": "2026-08-28T04:04:08.523250+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cvxgrp/cvxportfolio"}, {"content_hash": "0a20ccecb8f1ec07b7a3eace47aebd5614bfc95106b6b0a9d737a4ad4cb651fa", "fetched_at": "2026-08-29T12:18:17.007508+00:00", "kind": "homepage", "missing": false, "url": "https://www.cvxportfolio.com"}, {"content_hash": "a5a86b5d0bd7984240a19a36986deb407244f4589586aeafc7c57f978a9c29a3", "fetched_at": "2026-08-29T12:18:17.025482+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/cvxportfolio/json"}, {"content_hash": "7fea9dba7b382a487a9e3fdced1719f51477ecbd12279b50b3ea1cedf8e68679", "fetched_at": "2026-08-29T12:18:17.016901+00:00", "kind": "site_page", "missing": false, "url": "https://www.cvxportfolio.com/en/1.5.0/api.html"}, {"content_hash": "bd7b0276e1bbea0d03fc27b39959ce8ebf872a4a78f6a22bdef4394c9a87b554", "fetched_at": "2026-08-29T12:18:17.018900+00:00", "kind": "site_page", "missing": false, "url": "https://www.cvxportfolio.com/en/1.5.0/manual.html"}, {"content_hash": "6d60c600915d68797b8eee7243e9cae5245e865e68d25fb053fcd5286cb0834f", "fetched_at": "2026-08-29T12:18:17.021641+00:00", "kind": "site_page", "missing": false, "url": "https://www.cvxportfolio.com/en/1.5.0/costs.html"}, {"content_hash": "d84b32ec926737ccc182995c9b3abe2e81fa01111b65df70575ce08af34b5329", "fetched_at": "2026-08-29T12:18:17.023589+00:00", "kind": "site_page", "missing": false, "url": "https://www.cvxportfolio.com/en/1.5.0/forecasts.html"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:08.523250+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T05:07:28.228912+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "57f1375701b2ffedcc9b1199645bc86834c4a2b17abf4036d4d9b4ddb14e2967", "fetched_at": "2026-08-28T04:04:08.523250+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cvxgrp/cvxportfolio"}, {"content_hash": "0a20ccecb8f1ec07b7a3eace47aebd5614bfc95106b6b0a9d737a4ad4cb651fa", "fetched_at": "2026-08-29T12:18:17.007508+00:00", "kind": "homepage", "missing": false, "url": "https://www.cvxportfolio.com"}, {"content_hash": "a5a86b5d0bd7984240a19a36986deb407244f4589586aeafc7c57f978a9c29a3", "fetched_at": "2026-08-29T12:18:17.025482+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/cvxportfolio/json"}, {"content_hash": "7fea9dba7b382a487a9e3fdced1719f51477ecbd12279b50b3ea1cedf8e68679", "fetched_at": "2026-08-29T12:18:17.016901+00:00", "kind": "site_page", "missing": false, "url": "https://www.cvxportfolio.com/en/1.5.0/api.html"}, {"content_hash": "bd7b0276e1bbea0d03fc27b39959ce8ebf872a4a78f6a22bdef4394c9a87b554", "fetched_at": "2026-08-29T12:18:17.018900+00:00", "kind": "site_page", "missing": false, "url": "https://www.cvxportfolio.com/en/1.5.0/manual.html"}, {"content_hash": "6d60c600915d68797b8eee7243e9cae5245e865e68d25fb053fcd5286cb0834f", "fetched_at": "2026-08-29T12:18:17.021641+00:00", "kind": "site_page", "missing": false, "url": "https://www.cvxportfolio.com/en/1.5.0/costs.html"}, {"content_hash": "d84b32ec926737ccc182995c9b3abe2e81fa01111b65df70575ce08af34b5329", "fetched_at": "2026-08-29T12:18:17.023589+00:00", "kind": "site_page", "missing": false, "url": "https://www.cvxportfolio.com/en/1.5.0/forecasts.html"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T05:07:28.228912+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "57f1375701b2ffedcc9b1199645bc86834c4a2b17abf4036d4d9b4ddb14e2967", "fetched_at": "2026-08-28T04:04:08.523250+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cvxgrp/cvxportfolio"}, {"content_hash": "0a20ccecb8f1ec07b7a3eace47aebd5614bfc95106b6b0a9d737a4ad4cb651fa", "fetched_at": "2026-08-29T12:18:17.007508+00:00", "kind": "homepage", "missing": false, "url": "https://www.cvxportfolio.com"}, {"content_hash": "a5a86b5d0bd7984240a19a36986deb407244f4589586aeafc7c57f978a9c29a3", "fetched_at": "2026-08-29T12:18:17.025482+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/cvxportfolio/json"}, {"content_hash": "7fea9dba7b382a487a9e3fdced1719f51477ecbd12279b50b3ea1cedf8e68679", "fetched_at": "2026-08-29T12:18:17.016901+00:00", "kind": "site_page", "missing": false, "url": "https://www.cvxportfolio.com/en/1.5.0/api.html"}, {"content_hash": "bd7b0276e1bbea0d03fc27b39959ce8ebf872a4a78f6a22bdef4394c9a87b554", "fetched_at": "2026-08-29T12:18:17.018900+00:00", "kind": "site_page", "missing": false, "url": "https://www.cvxportfolio.com/en/1.5.0/manual.html"}, {"content_hash": "6d60c600915d68797b8eee7243e9cae5245e865e68d25fb053fcd5286cb0834f", "fetched_at": "2026-08-29T12:18:17.021641+00:00", "kind": "site_page", "missing": false, "url": "https://www.cvxportfolio.com/en/1.5.0/costs.html"}, {"content_hash": "d84b32ec926737ccc182995c9b3abe2e81fa01111b65df70575ce08af34b5329", "fetched_at": "2026-08-29T12:18:17.023589+00:00", "kind": "site_page", "missing": false, "url": "https://www.cvxportfolio.com/en/1.5.0/forecasts.html"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:04:08.523250+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:08.523250+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:08.523250+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T05:07:28.228912+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "57f1375701b2ffedcc9b1199645bc86834c4a2b17abf4036d4d9b4ddb14e2967", "fetched_at": "2026-08-28T04:04:08.523250+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cvxgrp/cvxportfolio"}, {"content_hash": "0a20ccecb8f1ec07b7a3eace47aebd5614bfc95106b6b0a9d737a4ad4cb651fa", "fetched_at": "2026-08-29T12:18:17.007508+00:00", "kind": "homepage", "missing": false, "url": "https://www.cvxportfolio.com"}, {"content_hash": "a5a86b5d0bd7984240a19a36986deb407244f4589586aeafc7c57f978a9c29a3", "fetched_at": "2026-08-29T12:18:17.025482+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/cvxportfolio/json"}, {"content_hash": "7fea9dba7b382a487a9e3fdced1719f51477ecbd12279b50b3ea1cedf8e68679", "fetched_at": "2026-08-29T12:18:17.016901+00:00", "kind": "site_page", "missing": false, "url": "https://www.cvxportfolio.com/en/1.5.0/api.html"}, {"content_hash": "bd7b0276e1bbea0d03fc27b39959ce8ebf872a4a78f6a22bdef4394c9a87b554", "fetched_at": "2026-08-29T12:18:17.018900+00:00", "kind": "site_page", "missing": false, "url": "https://www.cvxportfolio.com/en/1.5.0/manual.html"}, {"content_hash": "6d60c600915d68797b8eee7243e9cae5245e865e68d25fb053fcd5286cb0834f", "fetched_at": "2026-08-29T12:18:17.021641+00:00", "kind": "site_page", "missing": false, "url": "https://www.cvxportfolio.com/en/1.5.0/costs.html"}, {"content_hash": "d84b32ec926737ccc182995c9b3abe2e81fa01111b65df70575ce08af34b5329", "fetched_at": "2026-08-29T12:18:17.023589+00:00", "kind": "site_page", "missing": false, "url": "https://www.cvxportfolio.com/en/1.5.0/forecasts.html"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:08.523250+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:08.523250+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T05:07:28.228912+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "57f1375701b2ffedcc9b1199645bc86834c4a2b17abf4036d4d9b4ddb14e2967", "fetched_at": "2026-08-28T04:04:08.523250+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cvxgrp/cvxportfolio"}, {"content_hash": "0a20ccecb8f1ec07b7a3eace47aebd5614bfc95106b6b0a9d737a4ad4cb651fa", "fetched_at": "2026-08-29T12:18:17.007508+00:00", "kind": "homepage", "missing": false, "url": "https://www.cvxportfolio.com"}, {"content_hash": "a5a86b5d0bd7984240a19a36986deb407244f4589586aeafc7c57f978a9c29a3", "fetched_at": "2026-08-29T12:18:17.025482+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/cvxportfolio/json"}, {"content_hash": "7fea9dba7b382a487a9e3fdced1719f51477ecbd12279b50b3ea1cedf8e68679", "fetched_at": "2026-08-29T12:18:17.016901+00:00", "kind": "site_page", "missing": false, "url": "https://www.cvxportfolio.com/en/1.5.0/api.html"}, {"content_hash": "bd7b0276e1bbea0d03fc27b39959ce8ebf872a4a78f6a22bdef4394c9a87b554", "fetched_at": "2026-08-29T12:18:17.018900+00:00", "kind": "site_page", "missing": false, "url": "https://www.cvxportfolio.com/en/1.5.0/manual.html"}, {"content_hash": "6d60c600915d68797b8eee7243e9cae5245e865e68d25fb053fcd5286cb0834f", "fetched_at": "2026-08-29T12:18:17.021641+00:00", "kind": "site_page", "missing": false, "url": "https://www.cvxportfolio.com/en/1.5.0/costs.html"}, {"content_hash": "d84b32ec926737ccc182995c9b3abe2e81fa01111b65df70575ce08af34b5329", "fetched_at": "2026-08-29T12:18:17.023589+00:00", "kind": "site_page", "missing": false, "url": "https://www.cvxportfolio.com/en/1.5.0/forecasts.html"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:08.523250+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:08.523250+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:08.523250+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T05:07:28.228912+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "57f1375701b2ffedcc9b1199645bc86834c4a2b17abf4036d4d9b4ddb14e2967", "fetched_at": "2026-08-28T04:04:08.523250+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cvxgrp/cvxportfolio"}, {"content_hash": "0a20ccecb8f1ec07b7a3eace47aebd5614bfc95106b6b0a9d737a4ad4cb651fa", "fetched_at": "2026-08-29T12:18:17.007508+00:00", "kind": "homepage", "missing": false, "url": "https://www.cvxportfolio.com"}, {"content_hash": "a5a86b5d0bd7984240a19a36986deb407244f4589586aeafc7c57f978a9c29a3", "fetched_at": "2026-08-29T12:18:17.025482+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/cvxportfolio/json"}, {"content_hash": "7fea9dba7b382a487a9e3fdced1719f51477ecbd12279b50b3ea1cedf8e68679", "fetched_at": "2026-08-29T12:18:17.016901+00:00", "kind": "site_page", "missing": false, "url": "https://www.cvxportfolio.com/en/1.5.0/api.html"}, {"content_hash": "bd7b0276e1bbea0d03fc27b39959ce8ebf872a4a78f6a22bdef4394c9a87b554", "fetched_at": "2026-08-29T12:18:17.018900+00:00", "kind": "site_page", "missing": false, "url": "https://www.cvxportfolio.com/en/1.5.0/manual.html"}, {"content_hash": "6d60c600915d68797b8eee7243e9cae5245e865e68d25fb053fcd5286cb0834f", "fetched_at": "2026-08-29T12:18:17.021641+00:00", "kind": "site_page", "missing": false, "url": "https://www.cvxportfolio.com/en/1.5.0/costs.html"}, {"content_hash": "d84b32ec926737ccc182995c9b3abe2e81fa01111b65df70575ce08af34b5329", "fetched_at": "2026-08-29T12:18:17.023589+00:00", "kind": "site_page", "missing": false, "url": "https://www.cvxportfolio.com/en/1.5.0/forecasts.html"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:08.523250+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:08.523250+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T05:07:28.228912+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "57f1375701b2ffedcc9b1199645bc86834c4a2b17abf4036d4d9b4ddb14e2967", "fetched_at": "2026-08-28T04:04:08.523250+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cvxgrp/cvxportfolio"}, {"content_hash": "0a20ccecb8f1ec07b7a3eace47aebd5614bfc95106b6b0a9d737a4ad4cb651fa", "fetched_at": "2026-08-29T12:18:17.007508+00:00", "kind": "homepage", "missing": false, "url": "https://www.cvxportfolio.com"}, {"content_hash": "a5a86b5d0bd7984240a19a36986deb407244f4589586aeafc7c57f978a9c29a3", "fetched_at": "2026-08-29T12:18:17.025482+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/cvxportfolio/json"}, {"content_hash": "7fea9dba7b382a487a9e3fdced1719f51477ecbd12279b50b3ea1cedf8e68679", "fetched_at": "2026-08-29T12:18:17.016901+00:00", "kind": "site_page", "missing": false, "url": "https://www.cvxportfolio.com/en/1.5.0/api.html"}, {"content_hash": "bd7b0276e1bbea0d03fc27b39959ce8ebf872a4a78f6a22bdef4394c9a87b554", "fetched_at": "2026-08-29T12:18:17.018900+00:00", "kind": "site_page", "missing": false, "url": "https://www.cvxportfolio.com/en/1.5.0/manual.html"}, {"content_hash": "6d60c600915d68797b8eee7243e9cae5245e865e68d25fb053fcd5286cb0834f", "fetched_at": "2026-08-29T12:18:17.021641+00:00", "kind": "site_page", "missing": false, "url": "https://www.cvxportfolio.com/en/1.5.0/costs.html"}, {"content_hash": "d84b32ec926737ccc182995c9b3abe2e81fa01111b65df70575ce08af34b5329", "fetched_at": "2026-08-29T12:18:17.023589+00:00", "kind": "site_page", "missing": false, "url": "https://www.cvxportfolio.com/en/1.5.0/forecasts.html"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T05:07:28.228912+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "57f1375701b2ffedcc9b1199645bc86834c4a2b17abf4036d4d9b4ddb14e2967", "fetched_at": "2026-08-28T04:04:08.523250+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cvxgrp/cvxportfolio"}, {"content_hash": "0a20ccecb8f1ec07b7a3eace47aebd5614bfc95106b6b0a9d737a4ad4cb651fa", "fetched_at": "2026-08-29T12:18:17.007508+00:00", "kind": "homepage", "missing": false, "url": "https://www.cvxportfolio.com"}, {"content_hash": "a5a86b5d0bd7984240a19a36986deb407244f4589586aeafc7c57f978a9c29a3", "fetched_at": "2026-08-29T12:18:17.025482+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/cvxportfolio/json"}, {"content_hash": "7fea9dba7b382a487a9e3fdced1719f51477ecbd12279b50b3ea1cedf8e68679", "fetched_at": "2026-08-29T12:18:17.016901+00:00", "kind": "site_page", "missing": false, "url": "https://www.cvxportfolio.com/en/1.5.0/api.html"}, {"content_hash": "bd7b0276e1bbea0d03fc27b39959ce8ebf872a4a78f6a22bdef4394c9a87b554", "fetched_at": "2026-08-29T12:18:17.018900+00:00", "kind": "site_page", "missing": false, "url": "https://www.cvxportfolio.com/en/1.5.0/manual.html"}, {"content_hash": "6d60c600915d68797b8eee7243e9cae5245e865e68d25fb053fcd5286cb0834f", "fetched_at": "2026-08-29T12:18:17.021641+00:00", "kind": "site_page", "missing": false, "url": "https://www.cvxportfolio.com/en/1.5.0/costs.html"}, {"content_hash": "d84b32ec926737ccc182995c9b3abe2e81fa01111b65df70575ce08af34b5329", "fetched_at": "2026-08-29T12:18:17.023589+00:00", "kind": "site_page", "missing": false, "url": "https://www.cvxportfolio.com/en/1.5.0/forecasts.html"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T05:07:28.228912+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "57f1375701b2ffedcc9b1199645bc86834c4a2b17abf4036d4d9b4ddb14e2967", "fetched_at": "2026-08-28T04:04:08.523250+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cvxgrp/cvxportfolio"}, {"content_hash": "0a20ccecb8f1ec07b7a3eace47aebd5614bfc95106b6b0a9d737a4ad4cb651fa", "fetched_at": "2026-08-29T12:18:17.007508+00:00", "kind": "homepage", "missing": false, "url": "https://www.cvxportfolio.com"}, {"content_hash": "a5a86b5d0bd7984240a19a36986deb407244f4589586aeafc7c57f978a9c29a3", "fetched_at": "2026-08-29T12:18:17.025482+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/cvxportfolio/json"}, {"content_hash": "7fea9dba7b382a487a9e3fdced1719f51477ecbd12279b50b3ea1cedf8e68679", "fetched_at": "2026-08-29T12:18:17.016901+00:00", "kind": "site_page", "missing": false, "url": "https://www.cvxportfolio.com/en/1.5.0/api.html"}, {"content_hash": "bd7b0276e1bbea0d03fc27b39959ce8ebf872a4a78f6a22bdef4394c9a87b554", "fetched_at": "2026-08-29T12:18:17.018900+00:00", "kind": "site_page", "missing": false, "url": "https://www.cvxportfolio.com/en/1.5.0/manual.html"}, {"content_hash": "6d60c600915d68797b8eee7243e9cae5245e865e68d25fb053fcd5286cb0834f", "fetched_at": "2026-08-29T12:18:17.021641+00:00", "kind": "site_page", "missing": false, "url": "https://www.cvxportfolio.com/en/1.5.0/costs.html"}, {"content_hash": "d84b32ec926737ccc182995c9b3abe2e81fa01111b65df70575ce08af34b5329", "fetched_at": "2026-08-29T12:18:17.023589+00:00", "kind": "site_page", "missing": false, "url": "https://www.cvxportfolio.com/en/1.5.0/forecasts.html"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T05:07:28.228912+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "57f1375701b2ffedcc9b1199645bc86834c4a2b17abf4036d4d9b4ddb14e2967", "fetched_at": "2026-08-28T04:04:08.523250+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cvxgrp/cvxportfolio"}, {"content_hash": "0a20ccecb8f1ec07b7a3eace47aebd5614bfc95106b6b0a9d737a4ad4cb651fa", "fetched_at": "2026-08-29T12:18:17.007508+00:00", "kind": "homepage", "missing": false, "url": "https://www.cvxportfolio.com"}, {"content_hash": "a5a86b5d0bd7984240a19a36986deb407244f4589586aeafc7c57f978a9c29a3", "fetched_at": "2026-08-29T12:18:17.025482+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/cvxportfolio/json"}, {"content_hash": "7fea9dba7b382a487a9e3fdced1719f51477ecbd12279b50b3ea1cedf8e68679", "fetched_at": "2026-08-29T12:18:17.016901+00:00", "kind": "site_page", "missing": false, "url": "https://www.cvxportfolio.com/en/1.5.0/api.html"}, {"content_hash": "bd7b0276e1bbea0d03fc27b39959ce8ebf872a4a78f6a22bdef4394c9a87b554", "fetched_at": "2026-08-29T12:18:17.018900+00:00", "kind": "site_page", "missing": false, "url": "https://www.cvxportfolio.com/en/1.5.0/manual.html"}, {"content_hash": "6d60c600915d68797b8eee7243e9cae5245e865e68d25fb053fcd5286cb0834f", "fetched_at": "2026-08-29T12:18:17.021641+00:00", "kind": "site_page", "missing": false, "url": "https://www.cvxportfolio.com/en/1.5.0/costs.html"}, {"content_hash": "d84b32ec926737ccc182995c9b3abe2e81fa01111b65df70575ce08af34b5329", "fetched_at": "2026-08-29T12:18:17.023589+00:00", "kind": "site_page", "missing": false, "url": "https://www.cvxportfolio.com/en/1.5.0/forecasts.html"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 79, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3522, "days_push": 128, "days_rel": 423, "gap_med": null, "n_releases_24m": 1}, "score": 58, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}