{"adoption": {"forks": 523, "observed_at": "2026-08-28T04:08:20.278637+00:00", "stars": 3805}, "canonical_url": "https://ross.abutalabs.com/products/finmarketpy", "card": {"archived": false, "artifact_type": "library", "description": "Python library for backtesting trading strategies & analyzing financial markets (formerly pythalesians)", "domain": ["fintech", "data-science", "analytics"], "enriched": true, "function": ["data-science", "data-visualization", "analytics"], "health_score": 78, "homepage": "http://www.cuemacro.com", "language": "Python", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["cuemacro/finmarketpy"], "name": "cuemacro/finmarketpy", "platform": ["python", "cross-platform"], "pushed_at": "2026-04-16T09:29:35+00:00", "repo": "cuemacro/finmarketpy", "stars": 3805, "tags": ["backtesting", "trading-strategies", "financial-markets", "seasonality", "event-studies", "market-data", "quantitative-finance"], "topics": ["python", "trading-strategies", "backtesting-trading-strategies"], "urls": [], "use_cases": ["backtest trading strategies in python", "analyze historical returns of a trading strategy", "study seasonality of assets like gold or fx volatility", "run event studies around economic data releases", "download and analyze market data from Bloomberg or Yahoo", "apply volatility targeting to strategy risk weights"], "what_it_is": "finmarketpy is a Python library for analyzing financial market data and backtesting trading strategies through a simple, object-oriented API with prebuilt backtest templates. It supports seasonality analysis, event studies, volatility-targeted risk weighting, and integrates with findatapy for market data downloads and chartpy for visualization.", "when_to_avoid": ["you need production-grade, fully documented trading infrastructure - the API is still under continual development", "you want a standalone library - it requires the author's findatapy and chartpy dependencies", "you need live trading execution rather than research and backtesting"], "when_to_choose": ["you need a Python framework for backtesting trading strategies with prebuilt templates", "you want seasonality and market event study analysis out of the box", "you want pluggable charting backends (matplotlib, plotly, bokeh) and market data sources"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/finmarketpy", "repo": "cuemacro/finmarketpy", "role": "main", "score": 69}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:20.278637+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:26:47.139228+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ca8c1cab83018e02901d9bd796d76695708dc642e9edc5af70d4a22f5c82a25a", "fetched_at": "2026-08-28T04:08:20.278637+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cuemacro/finmarketpy"}, {"content_hash": "763422ffce666710e3ba61a0563fb3b88f21628f3e10b3a0bd3456559bcf3a81", "fetched_at": "2026-08-29T09:21:41.782418+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/finmarketpy/json"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:20.278637+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:26:47.139228+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ca8c1cab83018e02901d9bd796d76695708dc642e9edc5af70d4a22f5c82a25a", "fetched_at": "2026-08-28T04:08:20.278637+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cuemacro/finmarketpy"}, {"content_hash": "763422ffce666710e3ba61a0563fb3b88f21628f3e10b3a0bd3456559bcf3a81", "fetched_at": "2026-08-29T09:21:41.782418+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/finmarketpy/json"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:26:47.139228+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ca8c1cab83018e02901d9bd796d76695708dc642e9edc5af70d4a22f5c82a25a", "fetched_at": "2026-08-28T04:08:20.278637+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cuemacro/finmarketpy"}, {"content_hash": "763422ffce666710e3ba61a0563fb3b88f21628f3e10b3a0bd3456559bcf3a81", "fetched_at": "2026-08-29T09:21:41.782418+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/finmarketpy/json"}], "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:08:20.278637+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:20.278637+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:20.278637+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:26:47.139228+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ca8c1cab83018e02901d9bd796d76695708dc642e9edc5af70d4a22f5c82a25a", "fetched_at": "2026-08-28T04:08:20.278637+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cuemacro/finmarketpy"}, {"content_hash": "763422ffce666710e3ba61a0563fb3b88f21628f3e10b3a0bd3456559bcf3a81", "fetched_at": "2026-08-29T09:21:41.782418+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/finmarketpy/json"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:20.278637+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:20.278637+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:26:47.139228+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ca8c1cab83018e02901d9bd796d76695708dc642e9edc5af70d4a22f5c82a25a", "fetched_at": "2026-08-28T04:08:20.278637+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cuemacro/finmarketpy"}, {"content_hash": "763422ffce666710e3ba61a0563fb3b88f21628f3e10b3a0bd3456559bcf3a81", "fetched_at": "2026-08-29T09:21:41.782418+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/finmarketpy/json"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:20.278637+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:20.278637+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:20.278637+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:26:47.139228+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ca8c1cab83018e02901d9bd796d76695708dc642e9edc5af70d4a22f5c82a25a", "fetched_at": "2026-08-28T04:08:20.278637+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cuemacro/finmarketpy"}, {"content_hash": "763422ffce666710e3ba61a0563fb3b88f21628f3e10b3a0bd3456559bcf3a81", "fetched_at": "2026-08-29T09:21:41.782418+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/finmarketpy/json"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:20.278637+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:20.278637+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:26:47.139228+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ca8c1cab83018e02901d9bd796d76695708dc642e9edc5af70d4a22f5c82a25a", "fetched_at": "2026-08-28T04:08:20.278637+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cuemacro/finmarketpy"}, {"content_hash": "763422ffce666710e3ba61a0563fb3b88f21628f3e10b3a0bd3456559bcf3a81", "fetched_at": "2026-08-29T09:21:41.782418+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/finmarketpy/json"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:26:47.139228+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ca8c1cab83018e02901d9bd796d76695708dc642e9edc5af70d4a22f5c82a25a", "fetched_at": "2026-08-28T04:08:20.278637+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cuemacro/finmarketpy"}, {"content_hash": "763422ffce666710e3ba61a0563fb3b88f21628f3e10b3a0bd3456559bcf3a81", "fetched_at": "2026-08-29T09:21:41.782418+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/finmarketpy/json"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:26:47.139228+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ca8c1cab83018e02901d9bd796d76695708dc642e9edc5af70d4a22f5c82a25a", "fetched_at": "2026-08-28T04:08:20.278637+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cuemacro/finmarketpy"}, {"content_hash": "763422ffce666710e3ba61a0563fb3b88f21628f3e10b3a0bd3456559bcf3a81", "fetched_at": "2026-08-29T09:21:41.782418+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/finmarketpy/json"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:26:47.139228+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ca8c1cab83018e02901d9bd796d76695708dc642e9edc5af70d4a22f5c82a25a", "fetched_at": "2026-08-28T04:08:20.278637+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cuemacro/finmarketpy"}, {"content_hash": "763422ffce666710e3ba61a0563fb3b88f21628f3e10b3a0bd3456559bcf3a81", "fetched_at": "2026-08-29T09:21:41.782418+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/finmarketpy/json"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 77, "longevity": 100, "rhythm": 40}, "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": 4213, "days_push": 139, "days_rel": 541, "gap_med": 0.5, "n_releases_24m": 3}, "score": 69, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}