Skip to content

Re-adopt pymc-marketing transform backends once it supports PyMC 6 #214

Description

@drbenvincent

Summary

As part of #212 (PyMC 6 / ArviZ 1 upgrade + conda removal), the pymc-marketing dependency was dropped because no released version supports PyMC 6 / ArviZ 1 (pymc-marketing currently pins pymc<6 and arviz<1). The two transform kernels pathmc used — geometric adstock and logistic saturation — are now vendored as plain pytensor implementations in pathmc/transforms.py (_geometric_adstock, _logistic_saturation).

Once pymc-marketing ships PyMC 6 / ArviZ 1 support, decide whether to delegate the built-in transforms back to pymc_marketing.mmm.transformers or keep the vendored kernels.

Upstream tracking: pymc-labs/pymc-marketing#2486 (compatibility issue) and pymc-labs/pymc-marketing#2616 (migration PR). Expected upstream ETA: end of July 2026.

Proposed work

  • Watch for a pymc-marketing release with pymc>=6 support.
  • Evaluate whether delegating buys anything beyond the vendored ~30 lines (e.g. additional adstock/saturation variants worth exposing through the transform registry).
  • If re-adopting: restore the dependency in pyproject.toml, reinstate the xtensor bridging helpers, and remove the vendored kernels. If not: close this issue and keep the vendored implementations as the permanent home.
  • Either way, verify numerical equivalence on the transform gate tests (tests/test_transforms_*.py) and refresh any affected docs freeze caches.

Notes

This is not a release blocker for 0.1.0 — the vendored kernels are tested and behaviorally equivalent (truncated-at-l_max geometric adstock, same logistic saturation formula).

Metadata

Metadata

Assignees

No one assigned

    Labels

    stress-testSurfaced by demanding end-to-end workflows that expose general capability gaps

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions