← Back to home
Comparison · Infra & APIs

ggfootball vs states

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

ggfootball vs states: at a glance

Featureggfootballstates
SectorInfra & APIsInfra & APIs
Velocity score0.00.0
Sparks · 30d00
Top themessports-analytics, r-package, data-scraping, expected-goalspolitical-science, panel-data, country-codes, datasets
Last editorial update3h ago1h ago
WebsiteVisit →Visit →

What is ggfootball?

A football-viz package just swapped scraping for an API and broke its own output to do it.

ggfootball is a small R package for plotting expected-goals and shot data, sourced from Understat. Four releases are visible. The 0.2.x line was argument tidying and dependency pruning; 0.3.0 replaced the data-acquisition layer wholesale, moving get_match_shots() from HTML parsing onto Understat's AJAX endpoints and changing the returned column names in the process.

Read the full ggfootball trajectory →

What is states?

State-panel tooling holding steady since its 2020 data and ergonomics release.

states supplies the Gleditsch & Ward and Correlates of War state lists and the tooling to turn them into country-year or country-month panels, with plot_missing() for coverage checks. The substantive work landed in 2020; the releases since are compatibility fixes against ggplot2, dplyr, readr and testthat. The most recent entry is a single test repair.

Read the full states trajectory →

ggfootball vs states: editorial side-by-side

G
ggfootball
INFRA · APIS
0.0

A football-viz package just swapped scraping for an API and broke its own output to do it.

◆ Current state

ggfootball is a small R package for plotting expected-goals and shot data, sourced from Understat. Four releases are visible. The 0.2.x line was argument tidying and dependency pruning; 0.3.0 replaced the data-acquisition layer wholesale, moving get_match_shots() from HTML parsing onto Understat's AJAX endpoints and changing the returned column names in the process.

◆ Where it's heading

The direction is away from scraped HTML and toward a thinner, more defensible package: four dependencies dropped in 0.3.0 on top of qdapRegex in 0.2.1, input validation added, error messages rewritten. Both breaking changes so far were accepted rather than deferred, which reads as a maintainer treating pre-1.0 as the window to get the shape right. The package is willing to break callers for structural reasons, not cosmetic ones.

◆ Prediction

With the scraper rebuilt and the dependency surface trimmed, the next releases are likely to stabilise the new column names and extend the plotting side, which has seen nothing since 0.2.0. A 1.0 would be the signal that the data structure is now considered fixed.

S
states
INFRA · APIS
0.0

State-panel tooling holding steady since its 2020 data and ergonomics release.

◆ Current state

states supplies the Gleditsch & Ward and Correlates of War state lists and the tooling to turn them into country-year or country-month panels, with plot_missing() for coverage checks. The substantive work landed in 2020; the releases since are compatibility fixes against ggplot2, dplyr, readr and testthat. The most recent entry is a single test repair.

◆ Where it's heading

The package has reached the point where its own data and API are settled and the release trigger is upstream churn in the tidyverse. What movement there is goes toward making the two state lists interchangeable, with the microstates coding carried from G&W onto the COW data as the clearest example, rather than toward new datasets.

◆ Prediction

The next release is most likely another compatibility pass; a data refresh would be the signal that the package is active again.

Alternatives to ggfootball and states

Other Infra & APIs 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 ggfootball or states.

See all ggfootball alternatives → · See all states alternatives →

Recent activity from ggfootball and states

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

  1. 6mo agoggfootballggfootball 0.3.0
  2. 6mo agoggfootballggfootball 0.2.2
  3. 0y agostatesplot_missing() test fixed for the next ggplot2
  4. 1y agoggfootballggfootball 0.2.1
  5. 1y agoggfootballggfootball 0.2.0
  6. 2y agostatesggplot2 and dplyr deprecation cleanup
  7. 2y agostatesBundled state data stripped to plain data frames
  8. 5y agostatesMicrostate coding for COW data and state_panel() shortcuts
  9. 7y agostatesSimpler defaults for state_panel() and plot_missing()

Frequently asked questions

What is the difference between ggfootball and states?

They serve adjacent needs but don't currently overlap on shipped themes. ggfootball and states 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 ggfootball better than states?

Sparkpulse doesn't pick a winner — we score release velocity, not feature parity. ggfootball and states 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 Infra & APIs products to evaluate alongside.

What are the best alternatives to ggfootball?

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

What are the best alternatives to states?

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