Four Years of GitHub Innovation Graph Data Reveals Developer Seasonal Cycles

The GitHub Innovation Graph has reached a milestone: with the Q4 2023 data release, it now covers four complete years of quarterly metrics across eight dimensions—Git pushes, repositories, developers, organizations, programming languages, licenses, topics, and economy collaborators. Alongside this expanded dataset, GitHub has made several updates in response to community feedback received since the graph's initial launch.

Seasonal Patterns in Developer Activity

The longer time series illuminates recurring rhythms in developer behavior. The hacktoberfest topic has long demonstrated clear seasonal variation in global topic rankings:

Rank of topics globally
A line chart of the ranking of the "hacktoberfest" topic over time, showing that the topic spikes upward in popularity in Q4 of each year, but declines in other quarters.

Another cyclical activity with a lower overall profile is Advent of Code, the annual December programming challenge founded by Eric Wastl. Its lower ranking means it doesn't appear in the site's summary charts, so this seasonality only becomes obvious when examining the underlying dataset files directly:

Pushers and rank for the “advent-of-code” topic

Two line charts of the ranking and number of pushers for the "advent-of-code" topic over time, showing that the topic spikes upward in popularity in Q4 of each year, but declines in other quarters, with some quarters missing values because there was insufficient activity volume to satisfy the minimum reporting threshold.

Dotted lines indicate where there are gaps between quarterly data points due to the activity not meeting our minimum threshold for reporting.

The event, which runs from December 1 through December 25, often serves as an opportunity for developers to experiment with less familiar languages—sometimes encouraged by developer advocate programs. This trend appears in the programming languages dataset, with several languages showing notable December spikes, including COBOL (a language that has drawn attention amid concerns about legacy systems maintenance), Julia, ABAP, Elm, Erlang, Processing, Brainf*ck, and LOLCODE:

Pushers and rank for the COBOL programming language

Two line charts of the ranking and number of pushers for the COBOL programming language over time, showing that the language spikes upward in popularity in Q4 of each year.

Pushers and rank for the Julia programming language

Two line charts of the ranking and number of pushers for the Julia programming language over time, showing that the language spikes upward in popularity in Q4 of each year.

Pushers and rank for the ABAP programming language

Two line charts of the ranking and number of pushers for the ABAP programming language over time, showing that the language spikes upward in popularity in Q4 of each year.

Pushers and rank for the Elm programming language

Two line charts of the ranking and number of pushers for the Elm programming language over time, showing that the language spikes upward in popularity in Q4 of each year.

Pushers and rank for the Erlang programming language

Two line charts of the ranking and number of pushers for the Erlang programming language over time, showing that the language spikes upward in popularity in Q4 of each year.

Pushers and rank for the Processing programming language

Two line charts of the ranking and number of pushers for the Processing programming language over time, showing that the language spikes upward in popularity in Q4 of each year.

Pushers and rank for the Brainf*ck programming language

Two line charts of the ranking and number of pushers for the Brainf*ck programming language over time, showing that the language spikes upward in popularity in Q4 of each year.

Pushers and rank for LOLCODE programming language

Two line charts of the ranking and number of pushers for the LOLCODE programming language over time, showing that the language spikes upward in popularity in Q4 of each year.

Dotted lines indicate where there are gaps between quarterly data points due to the activity not meeting our minimum threshold for reporting.

Cycles don't always persist, however. The documentation topic shows a notable break in its historical pattern:

Global ranking of the “documentation” topic

A line chart of the ranking of the "documentation" topic over time, showing that the topic periodically oscillates in popularity from Q1 2020 until Q1 2023, at which point it appears to just continually rise in rank.

From Q1 2020 through Q4 2022, documentation activity followed a seasonal curve, possibly linked to Google Season of Docs, which has supported open source documentation efforts since at least 2019. But the usual cyclical decline didn't occur in 2023. The timing aligns with the release of chat-based generative AI tools—ChatGPT in November 2022, followed by similar products like GitHub Copilot Chat in March 2023. It's plausible these tools are reducing friction around documentation writing, encouraging more consistent and widespread updates to project docs.

Topic Charts Exclude Programming Languages and Profile Config Topics

The Topics bump charts—available on the global metrics page and individual economy pages—now exclude programming languages and topics related to GitHub profile README configuration (config and github-config). Programming language topics were indirectly duplicated in these charts, given the existence of dedicated Programming Languages bump charts. Their presence consumed so much visual space that other topic movements—like the advent-of-code topic's seasonality—were difficult to notice. Profile README configuration topics, meanwhile, were likely of interest primarily to the GitHub teams responsible for that feature.

Before:

A line plot of the rankings of topics over time, where the majority of the topics shown are programming languages, such as "python," "javascript," and "java."

After:

A line plot of the rankings of topics over time, where the topics shown are not programming languages, because they have been excluded from the chart. Instead, the topics are relate to non-language subject matter, such as "machine-learning," "tailwindcss," and "linux."

License Chart Label Clarification

Following community feedback about the confusing NOASSERTION classification, the Licenses bump charts now display "Other" instead of that term.

Before:

A line chart showing the rankings of licenses over time, focusing on the cryptic "NOASSERTION" license.

After:

A line chart showing the rankings of licenses over time, where the cryptic "NOASSERTION" license is instead rendered as "Other" -- a more meaningful term for most visitors of the Innovation Graph.

Metric Definitions Clarified for Counts

Explanatory notes have been added to the repositories, developers, and organizations metrics to clarify that these counts include inactive entities—they are not limited to, for instance, users who were active during a given quarter.

With four years of data now available across the dataset files, there's ample material for further analysis. Developers can explore the data using a Jupyter Notebook via GitHub Codespaces, Microsoft 365 Copilot in Excel, or any of the open source data analysis tools available.