Skip to main content

factcat

Product analytics on the event model already in your warehouse. Your grain, your periods, your definitions.

Every other product analytics tool hard-codes entity = user, period = a calendar bucket, and retained = did any event. Real definitions violate all three:

from factcat import RetentionSpec, retention_sql

spec = RetentionSpec(
    table="analytics.fct_subscription_payments",
    entity="subscription_id",   # not the user
    entity_time="sub_start",
    event_time="paid_at",
    period_days=35,             # a billing cycle plus dunning, not a calendar bucket
    n_periods=12,
    retained="status = 'collected' AND within_period_offset <= 5",
)

print(retention_sql(spec, dialect="snowflake"))

retained is arbitrary SQL over any column in your table, plus the derived columns offset_days, period_index and within_period_offset.

Generates SQL and queries in place. No SDK, no ingestion, no copy of your data. Supports DuckDB, Postgres, BigQuery, Snowflake, Databricks, Spark, Trino, Presto, ClickHouse and Redshift.

Full documentation: https://github.com/gordonkjlee/factcat

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

factcat-0.1.0.tar.gz (10.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

factcat-0.1.0-py3-none-any.whl (9.5 kB view details)

Uploaded Python 3

File details

Details for the file factcat-0.1.0.tar.gz.

File metadata

  • Download URL: factcat-0.1.0.tar.gz
  • Upload date:
  • Size: 10.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for factcat-0.1.0.tar.gz
Algorithm Hash digest
SHA256 5aff6b3d7ecab7606a5fc88136c6777b0014c779188cec91be9032f2e29a9cc6
MD5 ab130eca9585e09d71b0cac1a5f2bce8
BLAKE2b-256 9245a304f5a1e5aa3d92934c7370d7d7179af02ea1dff4a6bd78cadcfbf5766e

See more details on using hashes here.

Provenance

The following attestation bundles were made for factcat-0.1.0.tar.gz:

Publisher: publish.yml on gordonkjlee/factcat

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file factcat-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: factcat-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 9.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for factcat-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b7a1f5b7145d7306fb0ebbba1338e781c85871f8db66208954bb1cc22d6541f0
MD5 9e8b81937daf434ca557022db1cae62c
BLAKE2b-256 214b94cf3489febd98f2fe7da8d5125abb3e2b32b2411abb46453ae8ed306539

See more details on using hashes here.

Provenance

The following attestation bundles were made for factcat-0.1.0-py3-none-any.whl:

Publisher: publish.yml on gordonkjlee/factcat

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.4.1

2 files

0.3.0

2 files

0.2.0

2 files

This release

0.1.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page