← Back to home
Comparison · Analytics

bpbounds vs socialmixr

A side-by-side editorial comparison of bpbounds and socialmixr — release velocity, themes, recent moves, and the top alternatives to consider.

Shared themes:epidemiology

bpbounds vs socialmixr: at a glance

Featurebpboundssocialmixr
SectorAnalyticsAnalytics
Velocity score0.00.0
Sparks · 30d00
Top themescausal inference, instrumental variables, r, partial identificationcontact matrices, epidemiology, pipeline api, breaking changes
Last editorial update1h ago2h ago
WebsiteVisit →Visit →

What is bpbounds?

bpbounds found the same swapped-cell bug twice and clamped its bounds back into range

bpbounds computes nonparametric Balke-Pearl bounds on the average causal effect from instrumental variable data, in the bivariate and trivariate cases. After years of pure packaging maintenance, the two 2026 releases are analytical corrections. Bounds on intervention probabilities are now clamped to [0, 1] so derived causal risk ratio bounds cannot fall outside their feasible range, and a cell-ordering error in the trivariate three-category instrument path has been repaired.

Read the full bpbounds trajectory →

What is socialmixr?

socialmixr breaks its one-shot contact_matrix() call into a composable pipeline.

socialmixr builds age-structured social contact matrices from survey data for infectious-disease modelling. Version 0.6.0 replaces the monolithic contact_matrix() entry point with a chain of composable steps — filter, assign age groups, weigh, compute, then symmetrise, split or convert per capita — behind a new contact_matrix S3 class. Survey downloading is being handed off to a separate contactsurveys package.

Read the full socialmixr trajectory →

bpbounds vs socialmixr: editorial side-by-side

B
bpbounds
ANALYTICS
0.0

bpbounds found the same swapped-cell bug twice and clamped its bounds back into range

◆ Current state

bpbounds computes nonparametric Balke-Pearl bounds on the average causal effect from instrumental variable data, in the bivariate and trivariate cases. After years of pure packaging maintenance, the two 2026 releases are analytical corrections. Bounds on intervention probabilities are now clamped to [0, 1] so derived causal risk ratio bounds cannot fall outside their feasible range, and a cell-ordering error in the trivariate three-category instrument path has been repaired.

◆ Where it's heading

The direction is toward agreement with the reference Stata implementation and away from silently wrong output. The clamping change is described as matching the same fix in the Stata package, which suggests the two implementations are being reconciled rather than developed independently. The cell-ordering defect is the more instructive one: it was fixed in the calculation function in 0.1.7 and then again in the constraint matrix in 0.1.8, meaning the same x=0,y=1 / x=1,y=0 swap had been written in two places.

◆ Prediction

Since the recent fixes came from an external contributor's report and both touched the trivariate three-category path, the untested corners of that path are where further corrections would surface — but the release notes give no roadmap beyond parity with the Stata package.

S
socialmixr
ANALYTICS
0.0

socialmixr breaks its one-shot contact_matrix() call into a composable pipeline.

◆ Current state

socialmixr builds age-structured social contact matrices from survey data for infectious-disease modelling. Version 0.6.0 replaces the monolithic contact_matrix() entry point with a chain of composable steps — filter, assign age groups, weigh, compute, then symmetrise, split or convert per capita — behind a new contact_matrix S3 class. Survey downloading is being handed off to a separate contactsurveys package.

◆ Where it's heading

The arc from 0.4.0 to 0.6.0 is decomposition: first extracting helpers like assign_age_groups(), then moving downloads out of the package, and now exposing every stage of matrix construction as its own verb. Breaking changes are accepted at each step — preserved empty age groups, arrays instead of xtabs, [N,Inf) labels — with the new class inheriting from list so existing $matrix access keeps working. The label change is explicitly aligned with the contactmatrix package.

◆ Prediction

Expect the deprecated dotted argument names and the remaining in-package download paths to be removed once the contactsurveys handoff completes, leaving contact_matrix() as a thin wrapper over the pipeline.

Alternatives to bpbounds and socialmixr

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 bpbounds or socialmixr.

See all bpbounds alternatives → · See all socialmixr alternatives →

Recent activity from bpbounds and socialmixr

Latest ship moves from both products, interleaved chronologically. ⚡ = editorial spark.

  1. 1mo agobpboundsbpbounds clamps probability bounds and fixes a constraint-matrix swap
  2. 2mo agobpboundsbpbounds fixes swapped cells in the trivariate calculation
  3. 3mo agosocialmixrContact matrices become a composable pipeline
  4. 6mo agosocialmixrPatch: load_survey() handles files without cont_id
  5. 6mo agosocialmixrAge-group assignment and population lookup split out
  6. 1y agosocialmixrFaster survey loading and cached Zenodo lookups
  7. 2y agobpboundsbpbounds 0.1.6
  8. 2y agosocialmixrcontact_matrix() now takes survey objects only
  9. 2y agosocialmixrTest fixes for machine-precision failures
  10. 3y agobpboundsbpbounds 0.1.5
  11. 6y agobpboundsVersion 0.1.4 on CRAN
  12. 7y agobpboundsVersion 0.1.3

Frequently asked questions

What is the difference between bpbounds and socialmixr?

Both compete on the same themes — epidemiology — within Analytics. bpbounds and socialmixr are shipping at a similar cadence (velocity 0.0 vs 0.0, both within Sparkpulse's "active" band). See the at-a-glance table above for a side-by-side breakdown of velocity, recent sparks, and editorial themes.

Is bpbounds better than socialmixr?

Sparkpulse doesn't pick a winner — we score release velocity, not feature parity. bpbounds and socialmixr are shipping at a similar cadence (velocity 0.0 vs 0.0, both within Sparkpulse's "active" band). For your specific use case, the alternatives sections above list other Analytics products to evaluate alongside.

What are the best alternatives to bpbounds?

Top bpbounds alternatives in Analytics are ranked by recent ship velocity. Browse the "bpbounds alternatives" section above for the current picks, or visit /alternatives/bpbounds for the full list with editorial commentary on each.

What are the best alternatives to socialmixr?

Top socialmixr alternatives in Analytics are ranked by recent ship velocity. Browse the "socialmixr alternatives" section above for the current picks, or visit /alternatives/socialmixr for the full list with editorial commentary on each.