tidyr
tidyr replaced separate() with a family that says what it does.
A side-by-side editorial comparison of performance and Omni — release velocity, themes, recent moves, and the top alternatives to consider.
performance keeps adding ways to check a model you have already fitted.
performance is at 0.17.1, which added check_priors() for prior predictive checks on Bayesian models and gave check_overdispersion(), check_model() and check_predictions() arguments to control residual type and plot range. The releases before it are a similar mix: a -2LL criterion column in test_likelihoodratio(), Bayesian predictive checks routed through modelbased, and in 0.16.0 a set of breaking renames including RMSA to the correct RMSR.
Omni ships weekly, and almost every week the headline item is an AI feature
Omni publishes a dated weekly digest whose body is a single line listing that week's items, so each entry compresses several releases into a sentence. Across seven consecutive weeks the pattern is unmistakable: AI-powered semantic model generation reaching general availability, AI Routines creatable from chat and deliverable to Slack, AI model suggestion endpoints, AI credit controls scoped to embed entity groups and individual users, AI Evals support on Azure, and MCP surfaces appearing both in-app and as a searchDashboards tool. The non-AI items are steady BI plumbing — OAuth and GitHub App authentication for dbt connections, mobile dashboard settings, map legend positioning, presentation mode.
performance is at 0.17.1, which added check_priors() for prior predictive checks on Bayesian models and gave check_overdispersion(), check_model() and check_predictions() arguments to control residual type and plot range. The releases before it are a similar mix: a -2LL criterion column in test_likelihoodratio(), Bayesian predictive checks routed through modelbased, and in 0.16.0 a set of breaking renames including RMSA to the correct RMSR.
Two consistent habits. Diagnostics keep gaining arguments to narrow what is examined — ppc_range, x_limits, maximum_dots, show_ci — which reads as a package being used on models large and awkward enough that the defaults stopped working. And simulated residuals via DHARMa keep displacing standard ones as the basis for the checks themselves.
With check_priors() newly added and Bayesian predictive checks now routed through modelbased, the next release most likely extends the Bayesian diagnostic set rather than reworking the frequentist checks.
Omni publishes a dated weekly digest whose body is a single line listing that week's items, so each entry compresses several releases into a sentence. Across seven consecutive weeks the pattern is unmistakable: AI-powered semantic model generation reaching general availability, AI Routines creatable from chat and deliverable to Slack, AI model suggestion endpoints, AI credit controls scoped to embed entity groups and individual users, AI Evals support on Azure, and MCP surfaces appearing both in-app and as a searchDashboards tool. The non-AI items are steady BI plumbing — OAuth and GitHub App authentication for dbt connections, mobile dashboard settings, map legend positioning, presentation mode.
Two things are happening in parallel and they are related. Omni is pushing AI into the modelling layer rather than only the query layer, which is what semantic model generation reaching GA signifies — the artifact that normally takes an analytics engineer weeks is being generated. At the same time it is building the commercial and access controls that AI features require: credit limits per user and per embed entity group arrived within weeks of the AI capabilities that consume them. The MCP work points at a third direction, exposing Omni's content to external agents rather than only serving its own chat.
Credit controls appearing so soon after the AI features suggests consumption limits will keep expanding to cover newer surfaces, and with searchDashboards shipped as an MCP tool, more of Omni's catalog is the obvious next thing to expose that way.
Other Analytics products tracked by Sparkpulse, ranked by recent ship velocity. Each card links to a full editorial trajectory and lets you pivot into a head-to-head comparison with either performance or Omni.
tidyr replaced separate() with a family that says what it does.
modeltime built conformal intervals in, then went quiet on features.
CmdStanPy is clearing deprecations ahead of a 2.0 it keeps announcing.
DoWhy adds one estimation method a year and keeps its identification edge.
OpenHouse is hardening the seams where table policies and jobs quietly fail.
silx 3.0 moved its default Qt binding to PySide6 — a migration for everyone embedding it.
See all performance alternatives → · See all Omni alternatives →
Latest ship moves from both products, interleaved chronologically. ⚡ = editorial spark.
They serve adjacent needs but don't currently overlap on shipped themes. Omni is currently shipping more aggressively (velocity 6.3 vs 0.0), with 1 editorial sparks in the last 30 days against 0. See the at-a-glance table above for a side-by-side breakdown of velocity, recent sparks, and editorial themes.
Sparkpulse doesn't pick a winner — we score release velocity, not feature parity. Omni is currently shipping more aggressively (velocity 6.3 vs 0.0), with 1 editorial sparks in the last 30 days against 0. For your specific use case, the alternatives sections above list other Analytics products to evaluate alongside.
Top performance alternatives in Analytics are ranked by recent ship velocity. Browse the "performance alternatives" section above for the current picks, or visit /alternatives/easystats-performance for the full list with editorial commentary on each.
Top Omni alternatives in Analytics are ranked by recent ship velocity. Browse the "Omni alternatives" section above for the current picks, or visit /alternatives/omni for the full list with editorial commentary on each.