{"adoption": {"forks": 914, "observed_at": "2026-08-28T04:10:02.279435+00:00", "stars": 7666}, "canonical_url": "https://ross.abutalabs.com/products/featuretools", "card": {"archived": false, "artifact_type": "library", "description": "An open source python library for automated feature engineering", "domain": ["machine-learning", "data-science"], "enriched": true, "function": ["machine-learning", "data-science", "etl"], "health_score": 83, "homepage": "https://www.featuretools.com", "language": "Python", "license": "BSD-3-Clause", "license_family": "permissive", "maturity": "active", "member_repos": ["alteryx/featuretools"], "name": "alteryx/featuretools", "platform": ["python"], "pushed_at": "2026-07-27T13:04:38+00:00", "repo": "alteryx/featuretools", "stars": 7666, "tags": ["feature-engineering", "automl", "deep-feature-synthesis", "scikit-learn", "data-preparation", "automation"], "topics": ["feature-engineering", "machine-learning", "data-science", "automated-machine-learning", "automl", "python", "scikit-learn", "automated-feature-engineering"], "urls": [], "use_cases": ["automatically generate features from multi-table relational data", "prepare features for machine learning models from timestamped transaction data", "apply deep feature synthesis to a customer transactions dataset", "speed up feature engineering for tabular ML problems", "build an automated feature engineering pipeline in Python", "compute features across related tables without manual joins and aggregations"], "what_it_is": "Featuretools is an open-source Python library for automated feature engineering, using Deep Feature Synthesis (DFS) to generate features from relational and temporal data. It integrates with scikit-learn workflows and supports parallel computation via Dask.", "when_to_avoid": ["you need deep learning feature extraction from raw images, audio, or text", "your data is a single flat table with no relational structure and simple features suffice", "you need a no-code GUI AutoML platform rather than a Python library"], "when_to_choose": ["you have relational or temporal data and want automated feature generation", "you want to reduce manual feature engineering effort in ML pipelines", "you work in Python with pandas, Dask, or scikit-learn ecosystems"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/featuretools", "repo": "alteryx/featuretools", "role": "main", "score": 65}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:10:02.279435+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:36:04.260798+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d29008543765d5d09384ef29b7a06d9c48630aaf4637f16ff84c183bcd6152fd", "fetched_at": "2026-08-28T04:10:02.279435+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alteryx/featuretools"}, {"content_hash": "3a2670497eba3369bf8d0e746ae132c5c28ab4dc835d1a792fac3810c1aef75c", "fetched_at": "2026-08-29T08:31:44.259951+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/featuretools/json"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:10:02.279435+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:36:04.260798+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d29008543765d5d09384ef29b7a06d9c48630aaf4637f16ff84c183bcd6152fd", "fetched_at": "2026-08-28T04:10:02.279435+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alteryx/featuretools"}, {"content_hash": "3a2670497eba3369bf8d0e746ae132c5c28ab4dc835d1a792fac3810c1aef75c", "fetched_at": "2026-08-29T08:31:44.259951+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/featuretools/json"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:36:04.260798+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d29008543765d5d09384ef29b7a06d9c48630aaf4637f16ff84c183bcd6152fd", "fetched_at": "2026-08-28T04:10:02.279435+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alteryx/featuretools"}, {"content_hash": "3a2670497eba3369bf8d0e746ae132c5c28ab4dc835d1a792fac3810c1aef75c", "fetched_at": "2026-08-29T08:31:44.259951+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/featuretools/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:10:02.279435+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:10:02.279435+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:10:02.279435+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:36:04.260798+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d29008543765d5d09384ef29b7a06d9c48630aaf4637f16ff84c183bcd6152fd", "fetched_at": "2026-08-28T04:10:02.279435+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alteryx/featuretools"}, {"content_hash": "3a2670497eba3369bf8d0e746ae132c5c28ab4dc835d1a792fac3810c1aef75c", "fetched_at": "2026-08-29T08:31:44.259951+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/featuretools/json"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:10:02.279435+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:10:02.279435+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:36:04.260798+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d29008543765d5d09384ef29b7a06d9c48630aaf4637f16ff84c183bcd6152fd", "fetched_at": "2026-08-28T04:10:02.279435+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alteryx/featuretools"}, {"content_hash": "3a2670497eba3369bf8d0e746ae132c5c28ab4dc835d1a792fac3810c1aef75c", "fetched_at": "2026-08-29T08:31:44.259951+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/featuretools/json"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:10:02.279435+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:10:02.279435+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:10:02.279435+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:36:04.260798+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d29008543765d5d09384ef29b7a06d9c48630aaf4637f16ff84c183bcd6152fd", "fetched_at": "2026-08-28T04:10:02.279435+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alteryx/featuretools"}, {"content_hash": "3a2670497eba3369bf8d0e746ae132c5c28ab4dc835d1a792fac3810c1aef75c", "fetched_at": "2026-08-29T08:31:44.259951+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/featuretools/json"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:10:02.279435+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:10:02.279435+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:36:04.260798+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d29008543765d5d09384ef29b7a06d9c48630aaf4637f16ff84c183bcd6152fd", "fetched_at": "2026-08-28T04:10:02.279435+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alteryx/featuretools"}, {"content_hash": "3a2670497eba3369bf8d0e746ae132c5c28ab4dc835d1a792fac3810c1aef75c", "fetched_at": "2026-08-29T08:31:44.259951+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/featuretools/json"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:36:04.260798+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d29008543765d5d09384ef29b7a06d9c48630aaf4637f16ff84c183bcd6152fd", "fetched_at": "2026-08-28T04:10:02.279435+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alteryx/featuretools"}, {"content_hash": "3a2670497eba3369bf8d0e746ae132c5c28ab4dc835d1a792fac3810c1aef75c", "fetched_at": "2026-08-29T08:31:44.259951+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/featuretools/json"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:36:04.260798+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d29008543765d5d09384ef29b7a06d9c48630aaf4637f16ff84c183bcd6152fd", "fetched_at": "2026-08-28T04:10:02.279435+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alteryx/featuretools"}, {"content_hash": "3a2670497eba3369bf8d0e746ae132c5c28ab4dc835d1a792fac3810c1aef75c", "fetched_at": "2026-08-29T08:31:44.259951+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/featuretools/json"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:36:04.260798+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d29008543765d5d09384ef29b7a06d9c48630aaf4637f16ff84c183bcd6152fd", "fetched_at": "2026-08-28T04:10:02.279435+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alteryx/featuretools"}, {"content_hash": "3a2670497eba3369bf8d0e746ae132c5c28ab4dc835d1a792fac3810c1aef75c", "fetched_at": "2026-08-29T08:31:44.259951+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/featuretools/json"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 94, "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": 3281, "days_push": 37, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 65, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}