The algorithm proceeds as follows. Iterate once through the univariate time series. When an observation is "going up threshold" parts per million (ppm) greater than the previous observation, start a spike. Remain in the spike until the concentration values return to "return threshold" percent of the maximum concentration encountered during the spike. After exiting the spike, average the concentration values immediately preceding and following the spike and use this value as the background estimate for the spike, which imposes no assumptions on the spatial or temporal homogeneity of the methane background. Subtract the background estimate from all observations within the spike, and if the maximum background-corrected concentration in the spike is less than "amplitude threshold" ppm, discard the spike. This loop results in a mask that records if each entry in the concentration time series is a spike or background. The algorithm relies on three parameters: (1) the going up threshold in ppm, which is used to identify the start of an event, (2) the return threshold as a percent, which is used to identify the end of an event, and (3) the amplitude threshold in ppm, which is used to filter spikes by their background-corrected amplitude. We set these parameters to 0.25 ppm, 5%, and 1 ppm, respectively, after applying the algorithm to months of raw concentration data from multiple production sites. No controlled release data were used to set these default values. Furthermore, the algorithm requires only a single loop through the methane concentration time series, meaning that it can be run on historical or real-time data. See Section S3 in the SI file for a detailed description of the spike detection algorithm.