Do developer-adoption signals lead revenue?
A research note on six public data-infrastructure companies: Snowflake, Datadog, MongoDB, Confluent, Elastic and Cloudflare.
SummaryQuestionDataMethodFindingsInterpretationLimitationsAll results
- HN hiring-post share: No detectable lead. 0 of 10 pooled lag × fixed-effect cells have p < 0.05; 0 of 8 leading cells (k ≥ 1) have a 95% CI entirely above zero. (no cell reaches p < 0.05; strongest cell: lag 1q, company FE, r = +0.11 [-0.05, +0.27], p = 0.180, lag-adjusted p = 0.899, n = 161 quarter-obs across 6 companies)
- npm downloads: Weak / inconsistent evidence. 8 of 10 pooled lag × fixed-effect cells have p < 0.05; 7 of 8 leading cells (k ≥ 1) have a 95% CI entirely above zero. (some cells have p < 0.05 but none survive lag adjustment under both FE variants; strongest cell: lag 0q, company FE, r = +0.51 [+0.18, +0.74], p = 0.005, lag-adjusted p = 0.023, n = 142 quarter-obs across 5 companies)
- PyPI downloads: not testable yet (not enough overlapping quarters yet).
- npm vs baseline (post-hoc): Weak / inconsistent evidence. 7 of 10 pooled lag × fixed-effect cells have p < 0.05; 6 of 8 leading cells (k ≥ 1) have a 95% CI entirely above zero. (some cells have p < 0.05 but none survive lag adjustment under both FE variants; strongest cell: lag 0q, company FE, r = +0.42 [+0.11, +0.66], p = 0.011, lag-adjusted p = 0.056, n = 142 quarter-obs across 5 companies)
- Company by company: 0 of 55 pre-registered tests have p < 0.05, against ≈2.8 expected from chance alone; 0 survive a false-discovery-rate correction.
- What it means: the interpretation (section 4.5) →
- PyPI downloads cannot be tested yet (only ~180 days of history), and every result rests on 6 companies with short, smooth series. Treat the verdicts as “what this data can detect”, not as proof either way.
1. Question
Analysts increasingly use alternative data such as package downloads and job postings to read product adoption ahead of reported numbers. If developers adopting a data-infrastructure product shows up first in what they install and what employers hire for, then growth in those signals should precede growth in reported revenue. This note tests that directly: does year-over-year growth in a company's developer-adoption signals correlate with its year-over-year revenue growth 0–4 quarters later?
2. Data
| Company | FY ends | Revenue quarters | # quarters | # revenue YoY | # HN YoY | # npm YoY | npm proxy |
|---|---|---|---|---|---|---|---|
| Snowflake (SNOW) | 01-31 | 2019-10 → 2026-07 | 28 | 24 | 24 | 24 | snowflake-sdk |
| Datadog (DDOG) | 12-31 | 2018-09 → 2026-06 | 32 | 28 | 28 | 28 | dd-trace |
| MongoDB (MDB) | 01-31 | 2016-10 → 2026-07 | 40 | 36 | 36 | 36 | mongodb |
| Confluent (CFLT) | 12-31 | 2020-06 → 2025-12 | 23 | 19 | 19 | 3 | @confluentinc/kafka-javascript |
| Elastic (ESTC) | 04-30 | 2017-10 → 2026-07 | 36 | 32 | 32 | 26 | @elastic/elasticsearch |
| Cloudflare (NET) | 12-31 | 2018-09 → 2026-06 | 32 | 28 | 28 | 28 | wrangler |
Revenue: SEC XBRL company facts (10-K/10-Q). Q4 is derived as full-year minus nine-month YTD. Fiscal years ending in January (SNOW, MDB) and April (ESTC) are handled by aggregating every signal over each company's exact fiscal-quarter dates. HN share: share of monthly Who is hiring? job posts mentioning the product, excluding the company's own job posts and customer/investor lists. npm: the company's official client package (proxy rationale). PyPI history only began ~180 days before the first pull, so PyPI cannot be tested yet.
3. Method
- Variables: log YoY growth (same fiscal quarter a year earlier) of revenue and of each signal.
- Lags: corr(signalt−k, revenuet) for k = 0, 1, 2, 3, 4 quarters. All lags are reported; none is selected.
- Uncertainty: YoY series are highly autocorrelated, so 30 quarters are worth far fewer independent observations. CIs and p-values use a Bartlett effective sample size (neff). A null simulation run before any data was pulled showed that a naive test flags up to 58% of unrelated persistent series as “significant”; the neff test keeps that near 5%.
- Multiple testing: a Bonferroni p over the five lags (paying for “picking the best lag”) and Benjamini-Hochberg q-values across all company tests.
- Pooled panel: the six companies stacked with company fixed effects, and with company + calendar-quarter fixed effects. The second version removes anything common to all six in a quarter (rates, the 2021 boom and 2022–23 cost-cutting, registry-wide download inflation).
- Pre-registration: specifications, lags and verdict rules were committed to the repo before the first data pull (commit
b02b808, 17 minutes before the first pull incd5a0b6; both on 2026-11-04, so this guards against tuning to the results, not against prior familiarity with the data). Two signals were added after seeing the data and are labelled post-hoc: npm downloads relative to a basket of mature packages, added because every npm package's downloads inflated together in 2026. Post-hoc results are kept in a separate multiple-testing family.
4. Findings
4.1 Pooled across the six companies
Dots: correlation r at each lag; bars: 95% CI using the effective sample size. Blue: company fixed effects. Orange: company + calendar-quarter fixed effects. A real lead would show up as a positive r at k ≥ 1 that stays clear of zero in both versions.
| Signal | Fixed effects | lag 0 | lag 1 | lag 2 | lag 3 | lag 4 | Verdict |
|---|---|---|---|---|---|---|---|
| HN hiring-post share | company | +0.09 [-0.07, +0.24] | +0.11 [-0.05, +0.27] | +0.09 [-0.07, +0.25] | +0.07 [-0.10, +0.24] | +0.07 [-0.11, +0.25] | null |
| HN hiring-post share | company + quarter | +0.07 [-0.09, +0.23] | +0.08 [-0.09, +0.24] | +0.06 [-0.11, +0.23] | +0.02 [-0.15, +0.19] | -0.00 [-0.17, +0.17] | |
| npm downloads | company | +0.51* [+0.18, +0.74] | +0.51* [+0.16, +0.75] | +0.51* [+0.15, +0.76] | +0.49* [+0.11, +0.74] | +0.49* [+0.11, +0.75] | mixed/weak |
| npm downloads | company + quarter | +0.19 [-0.07, +0.42] | +0.24 [-0.02, +0.47] | +0.30* [+0.04, +0.52] | +0.31* [+0.05, +0.52] | +0.29* [+0.04, +0.51] | |
| npm vs baseline post-hoc | company | +0.42* [+0.11, +0.66] | +0.40* [+0.07, +0.65] | +0.39* [+0.04, +0.65] | +0.37* [+0.00, +0.64] | +0.37 [-0.00, +0.65] | mixed/weak |
| npm vs baseline post-hoc | company + quarter | +0.19 [-0.07, +0.42] | +0.24 [-0.02, +0.47] | +0.30* [+0.04, +0.52] | +0.31* [+0.06, +0.52] | +0.29* [+0.04, +0.51] |
4.2 Company by company
Cell = r between the signal's YoY growth k quarters earlier and revenue YoY growth. * marks unadjusted p < 0.05. With 5 lags × several signals × 6 companies, some * cells are expected by chance alone (2.8 expected among 55 pre-registered tests).
4.3 Robustness: acceleration instead of growth
Using the quarter-on-quarter change in YoY growth (acceleration) on both sides strips out slow shared trends. In the pooled panel, 0 of 20 cells have p < 0.05 and 0 survive the lag adjustment. Strongest cell: HN hiring-post share, lag 1, company FE, r = +0.13 [-0.03, +0.29], p = 0.120.
4.4 Look at the raw series
Log YoY growth by fiscal quarter (0.4 ≈ +49%). Seeing the series explains most of the results above: these are short, smooth, trending series, and a few early hyper-growth quarters can dominate a correlation.
4.5 Interpretation
Written 2026-11-04 on data through the week ending 2026-11-01 (SEC filings through 2026-09). The tables and charts above regenerate weekly; this paragraph is updated by hand when the picture changes.
HN hiring-post share: a clean null. Pooled correlations are small (between −0.01 and +0.11) at every lag, every 95% CI includes zero, and nothing survives the lag adjustment. Faster growth in how often job posts mention Snowflake, Datadog, MongoDB, Kafka, Elastic or Cloudflare did not precede faster revenue growth, at least not by enough to see in 19 to 36 quarters per company.
npm downloads: a real co-movement, and at most a weak hint of a lead. With company fixed effects the pooled correlation is about +0.5 at every lag, including lag 0, and flat across lags. A flat profile is the signature of a shared slow trend: young products start with hyper-growth in both their client library and their revenue, and both decelerate together. Once that trend is stripped out, what is left is small and not statistically detectable:
- removing anything common to all companies in a quarter (company + quarter fixed effects) shrinks r to +0.19 at lag 0, but it rises with the lag, to +0.30 and +0.31 at lags 2 and 3, and lags 2 to 4 have p < 0.05 with 95% CIs above zero before any correction. That is the shape a lead would have, and at lags 2 and 3 the CIs clear zero in both fixed-effect versions. It does not survive the correction for trying five lags (best lag-adjusted p = 0.09), so it is a pattern to keep watching, not a finding;
- switching to acceleration (change in YoY growth) on both sides removes slow trends, and all 30 pooled cells (including the post-hoc ones) then have p > 0.1;
- company by company, r is high (median +0.66) and positive in 25 of 25 cells, but each series has an effective sample of only about 3 to 11 independent observations, so none is significant on its own.
Bottom line: developer-adoption signals track the long arc of these companies' growth. HN hiring share shows no lead at all. npm downloads show no lead that survives the pre-registered correction, but the stricter specification leaves a modest lead-shaped pattern (r ≈ +0.3 at two to three quarters) that this sample, five companies with an npm proxy, is too small to confirm or rule out. So: no detectable lead, not evidence of no lead. The weekly rebuild will firm the pattern up or erase it. The usual limits apply: small samples, CI and bot noise in downloads. PyPI becomes testable in late 2027.
5. What this can and can't tell you
- Whether, over the available history, faster growth in a developer signal was followed by faster reported revenue growth, with honest uncertainty bands.
- Whether any apparent relationship survives autocorrelation, the five lags tried, and a common cycle hitting all six companies at once.
- Prove causation or forecast revenue. A shared driver (rates, the 2021 boom, 2022–23 cost-cutting) can move both.
- Detect small effects. Each company has roughly 15–35 quarterly YoY points, and an effective sample often under 10. A null result here means “not detectable with this data”, not “no relationship”.
- Isolate paid usage. Proxies include open-source and free-tier use (community MongoDB, Apache Kafka, OpenSearch users of Elastic clients) and CI or bot downloads. HN skews toward US startups.
- Use PyPI yet. pypistats keeps only ~180 days; PyPI YoY becomes testable after about a year of weekly appends.
This is a research exercise, not investment advice.
Appendix: every test run
Show all 300 company-level tests
| Ticker | Signal | Spec | Lag | n | n_eff | r | CI low | CI high | p | p (lag-adj) | q (BH) | p (perm) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| CFLT | HN hiring-post share | d_yoy | 0 | 18 | 18 | -0.09 | -0.53 | +0.40 | 0.735 | 1.000 | 0.939 | 0.849 |
| CFLT | HN hiring-post share | d_yoy | 1 | 17 | 17 | -0.00 | -0.48 | +0.48 | 1.000 | 1.000 | 1.000 | 1.000 |
| CFLT | HN hiring-post share | d_yoy | 2 | 16 | 16 | +0.32 | -0.21 | +0.71 | 0.223 | 1.000 | 0.893 | 0.118 |
| CFLT | HN hiring-post share | d_yoy | 3 | 15 | 15 | -0.37 | -0.74 | +0.18 | 0.176 | 0.881 | 0.893 | 0.130 |
| CFLT | HN hiring-post share | d_yoy | 4 | 14 | 13 | +0.33 | -0.27 | +0.75 | 0.274 | 1.000 | 0.893 | 0.394 |
| DDOG | HN hiring-post share | d_yoy | 0 | 27 | 27 | -0.09 | -0.46 | +0.30 | 0.646 | 1.000 | 0.939 | 0.629 |
| DDOG | HN hiring-post share | d_yoy | 1 | 26 | 26 | +0.22 | -0.18 | +0.56 | 0.284 | 1.000 | 0.893 | 0.219 |
| DDOG | HN hiring-post share | d_yoy | 2 | 25 | 25 | +0.03 | -0.37 | +0.42 | 0.891 | 1.000 | 1.000 | 0.821 |
| DDOG | HN hiring-post share | d_yoy | 3 | 24 | 24 | -0.07 | -0.46 | +0.34 | 0.739 | 1.000 | 0.939 | 0.732 |
| DDOG | HN hiring-post share | d_yoy | 4 | 23 | 23 | +0.12 | -0.30 | +0.51 | 0.576 | 1.000 | 0.939 | 0.549 |
| ESTC | HN hiring-post share | d_yoy | 0 | 31 | 28 | +0.09 | -0.29 | +0.44 | 0.660 | 1.000 | 0.939 | 0.644 |
| ESTC | HN hiring-post share | d_yoy | 1 | 30 | 26 | -0.00 | -0.39 | +0.38 | 0.983 | 1.000 | 1.000 | 0.982 |
| ESTC | HN hiring-post share | d_yoy | 2 | 29 | 21 | -0.01 | -0.43 | +0.42 | 0.982 | 1.000 | 1.000 | 0.977 |
| ESTC | HN hiring-post share | d_yoy | 3 | 28 | 20 | +0.00 | -0.44 | +0.44 | 0.999 | 1.000 | 1.000 | 0.999 |
| ESTC | HN hiring-post share | d_yoy | 4 | 27 | 18 | +0.09 | -0.40 | +0.53 | 0.734 | 1.000 | 0.939 | 0.691 |
| MDB | HN hiring-post share | d_yoy | 0 | 35 | 35 | +0.06 | -0.28 | +0.39 | 0.728 | 1.000 | 0.939 | 0.696 |
| MDB | HN hiring-post share | d_yoy | 1 | 34 | 34 | +0.21 | -0.14 | +0.51 | 0.234 | 1.000 | 0.893 | 0.256 |
| MDB | HN hiring-post share | d_yoy | 2 | 33 | 27 | -0.16 | -0.51 | +0.23 | 0.413 | 1.000 | 0.939 | 0.355 |
| MDB | HN hiring-post share | d_yoy | 3 | 32 | 27 | -0.09 | -0.45 | +0.30 | 0.665 | 1.000 | 0.939 | 0.618 |
| MDB | HN hiring-post share | d_yoy | 4 | 31 | 25 | +0.27 | -0.13 | +0.60 | 0.184 | 0.922 | 0.893 | 0.162 |
| NET | HN hiring-post share | d_yoy | 0 | 27 | 21 | -0.08 | -0.49 | +0.37 | 0.746 | 1.000 | 0.939 | 0.746 |
| NET | HN hiring-post share | d_yoy | 1 | 26 | 23 | +0.23 | -0.20 | +0.59 | 0.282 | 1.000 | 0.893 | 0.290 |
| NET | HN hiring-post share | d_yoy | 2 | 25 | 22 | -0.14 | -0.53 | +0.29 | 0.517 | 1.000 | 0.939 | 0.375 |
| NET | HN hiring-post share | d_yoy | 3 | 24 | 21 | -0.10 | -0.50 | +0.35 | 0.679 | 1.000 | 0.939 | 0.640 |
| NET | HN hiring-post share | d_yoy | 4 | 23 | 23 | -0.13 | -0.51 | +0.30 | 0.564 | 1.000 | 0.939 | 0.572 |
| SNOW | HN hiring-post share | d_yoy | 0 | 23 | 20 | +0.12 | -0.33 | +0.53 | 0.600 | 1.000 | 0.939 | 0.708 |
| SNOW | HN hiring-post share | d_yoy | 1 | 22 | 20 | +0.21 | -0.26 | +0.59 | 0.379 | 1.000 | 0.939 | 0.310 |
| SNOW | HN hiring-post share | d_yoy | 2 | 21 | 19 | +0.03 | -0.43 | +0.47 | 0.909 | 1.000 | 1.000 | 0.890 |
| SNOW | HN hiring-post share | d_yoy | 3 | 20 | 18 | -0.14 | -0.57 | +0.35 | 0.587 | 1.000 | 0.939 | 0.618 |
| SNOW | HN hiring-post share | d_yoy | 4 | 19 | 16 | +0.18 | -0.34 | +0.61 | 0.505 | 1.000 | 0.939 | 0.580 |
| CFLT | HN hiring-post share | yoy | 0 | 19 | 7 | +0.36 | -0.55 | +0.88 | 0.440 | 1.000 | 0.715 | 0.357 |
| CFLT | HN hiring-post share | yoy | 1 | 18 | 6 | +0.33 | -0.64 | +0.90 | 0.513 | 1.000 | 0.715 | 0.326 |
| CFLT | HN hiring-post share | yoy | 2 | 17 | 6 | +0.36 | -0.65 | +0.91 | 0.491 | 1.000 | 0.715 | 0.331 |
| CFLT | HN hiring-post share | yoy | 3 | 16 | 6 | +0.38 | -0.61 | +0.91 | 0.449 | 1.000 | 0.715 | 0.314 |
| CFLT | HN hiring-post share | yoy | 4 | 15 | 6 | +0.44 | -0.65 | +0.94 | 0.422 | 1.000 | 0.715 | 0.286 |
| DDOG | HN hiring-post share | yoy | 0 | 28 | 28 | +0.05 | -0.33 | +0.42 | 0.792 | 1.000 | 0.851 | 0.849 |
| DDOG | HN hiring-post share | yoy | 1 | 27 | 27 | +0.12 | -0.27 | +0.48 | 0.552 | 1.000 | 0.730 | 0.642 |
| DDOG | HN hiring-post share | yoy | 2 | 26 | 26 | +0.14 | -0.27 | +0.50 | 0.508 | 1.000 | 0.715 | 0.595 |
| DDOG | HN hiring-post share | yoy | 3 | 25 | 25 | +0.12 | -0.29 | +0.49 | 0.568 | 1.000 | 0.730 | 0.621 |
| DDOG | HN hiring-post share | yoy | 4 | 24 | 24 | +0.15 | -0.27 | +0.52 | 0.476 | 1.000 | 0.715 | 0.554 |
| ESTC | HN hiring-post share | yoy | 0 | 32 | 28 | +0.13 | -0.26 | +0.48 | 0.516 | 1.000 | 0.715 | 0.654 |
| ESTC | HN hiring-post share | yoy | 1 | 31 | 28 | +0.15 | -0.24 | +0.49 | 0.452 | 1.000 | 0.715 | 0.598 |
| ESTC | HN hiring-post share | yoy | 2 | 30 | 30 | +0.22 | -0.15 | +0.54 | 0.236 | 1.000 | 0.715 | 0.393 |
| ESTC | HN hiring-post share | yoy | 3 | 29 | 18 | +0.20 | -0.30 | +0.61 | 0.436 | 1.000 | 0.715 | 0.486 |
| ESTC | HN hiring-post share | yoy | 4 | 28 | 16 | +0.19 | -0.33 | +0.62 | 0.479 | 1.000 | 0.715 | 0.506 |
| MDB | HN hiring-post share | yoy | 0 | 36 | 36 | +0.21 | -0.12 | +0.51 | 0.211 | 1.000 | 0.715 | 0.272 |
| MDB | HN hiring-post share | yoy | 1 | 35 | 35 | +0.27 | -0.07 | +0.56 | 0.113 | 0.565 | 0.715 | 0.167 |
| MDB | HN hiring-post share | yoy | 2 | 34 | 34 | +0.18 | -0.17 | +0.49 | 0.320 | 1.000 | 0.715 | 0.343 |
| MDB | HN hiring-post share | yoy | 3 | 33 | 33 | +0.18 | -0.18 | +0.49 | 0.322 | 1.000 | 0.715 | 0.358 |
| MDB | HN hiring-post share | yoy | 4 | 32 | 32 | +0.24 | -0.12 | +0.54 | 0.195 | 0.976 | 0.715 | 0.244 |
| NET | HN hiring-post share | yoy | 0 | 28 | 28 | +0.06 | -0.32 | +0.42 | 0.772 | 1.000 | 0.851 | 0.825 |
| NET | HN hiring-post share | yoy | 1 | 27 | 27 | +0.05 | -0.34 | +0.42 | 0.808 | 1.000 | 0.851 | 0.866 |
| NET | HN hiring-post share | yoy | 2 | 26 | 26 | -0.05 | -0.43 | +0.35 | 0.825 | 1.000 | 0.851 | 0.864 |
| NET | HN hiring-post share | yoy | 3 | 25 | 25 | -0.08 | -0.46 | +0.33 | 0.721 | 1.000 | 0.846 | 0.757 |
| NET | HN hiring-post share | yoy | 4 | 24 | 24 | -0.08 | -0.47 | +0.33 | 0.705 | 1.000 | 0.846 | 0.754 |
| SNOW | HN hiring-post share | yoy | 0 | 24 | 24 | +0.06 | -0.35 | +0.45 | 0.783 | 1.000 | 0.851 | 0.888 |
| SNOW | HN hiring-post share | yoy | 1 | 23 | 23 | +0.09 | -0.34 | +0.48 | 0.694 | 1.000 | 0.846 | 0.857 |
| SNOW | HN hiring-post share | yoy | 2 | 22 | 22 | +0.05 | -0.38 | +0.46 | 0.835 | 1.000 | 0.851 | 0.927 |
| SNOW | HN hiring-post share | yoy | 3 | 21 | 21 | -0.02 | -0.45 | +0.42 | 0.933 | 1.000 | 0.933 | 0.968 |
| SNOW | HN hiring-post share | yoy | 4 | 20 | 20 | -0.07 | -0.50 | +0.38 | 0.763 | 1.000 | 0.851 | 0.908 |
| CFLT | npm downloads | d_yoy | 0 | 2 | – | – | – | – | – | – | – | – |
| CFLT | npm downloads | d_yoy | 1 | 1 | – | – | – | – | – | – | – | – |
| CFLT | npm downloads | d_yoy | 2 | 0 | – | – | – | – | – | – | – | – |
| CFLT | npm downloads | d_yoy | 3 | 0 | – | – | – | – | – | – | – | – |
| CFLT | npm downloads | d_yoy | 4 | 0 | – | – | – | – | – | – | – | – |
| DDOG | npm downloads | d_yoy | 0 | 27 | 26 | -0.02 | -0.40 | +0.37 | 0.933 | 1.000 | 1.000 | 0.941 |
| DDOG | npm downloads | d_yoy | 1 | 26 | 25 | +0.13 | -0.28 | +0.50 | 0.547 | 1.000 | 0.939 | 0.520 |
| DDOG | npm downloads | d_yoy | 2 | 25 | 22 | +0.35 | -0.09 | +0.67 | 0.113 | 0.566 | 0.893 | 0.243 |
| DDOG | npm downloads | d_yoy | 3 | 24 | 16 | +0.37 | -0.15 | +0.73 | 0.153 | 0.765 | 0.893 | 0.169 |
| DDOG | npm downloads | d_yoy | 4 | 23 | 16 | +0.21 | -0.33 | +0.64 | 0.444 | 1.000 | 0.939 | 0.429 |
| ESTC | npm downloads | d_yoy | 0 | 25 | 25 | +0.31 | -0.10 | +0.63 | 0.132 | 0.660 | 0.893 | 0.179 |
| ESTC | npm downloads | d_yoy | 1 | 24 | 24 | +0.04 | -0.37 | +0.44 | 0.845 | 1.000 | 1.000 | 0.862 |
| ESTC | npm downloads | d_yoy | 2 | 23 | 23 | +0.03 | -0.38 | +0.44 | 0.881 | 1.000 | 1.000 | 0.805 |
| ESTC | npm downloads | d_yoy | 3 | 22 | 20 | -0.39 | -0.71 | +0.07 | 0.091 | 0.455 | 0.893 | 0.193 |
| ESTC | npm downloads | d_yoy | 4 | 21 | 20 | -0.25 | -0.63 | +0.22 | 0.292 | 1.000 | 0.893 | 0.371 |
| MDB | npm downloads | d_yoy | 0 | 35 | 35 | +0.06 | -0.28 | +0.38 | 0.751 | 1.000 | 0.939 | 0.771 |
| MDB | npm downloads | d_yoy | 1 | 34 | 34 | +0.12 | -0.22 | +0.44 | 0.490 | 1.000 | 0.939 | 0.459 |
| MDB | npm downloads | d_yoy | 2 | 33 | 25 | +0.14 | -0.27 | +0.51 | 0.498 | 1.000 | 0.939 | 0.430 |
| MDB | npm downloads | d_yoy | 3 | 32 | 25 | +0.23 | -0.18 | +0.57 | 0.268 | 1.000 | 0.893 | 0.155 |
| MDB | npm downloads | d_yoy | 4 | 31 | 24 | -0.28 | -0.61 | +0.13 | 0.175 | 0.874 | 0.893 | 0.163 |
| NET | npm downloads | d_yoy | 0 | 27 | 27 | +0.04 | -0.34 | +0.41 | 0.838 | 1.000 | 1.000 | 0.803 |
| NET | npm downloads | d_yoy | 1 | 26 | 26 | -0.11 | -0.48 | +0.29 | 0.591 | 1.000 | 0.939 | 0.614 |
| NET | npm downloads | d_yoy | 2 | 25 | 25 | +0.08 | -0.32 | +0.46 | 0.689 | 1.000 | 0.939 | 0.719 |
| NET | npm downloads | d_yoy | 3 | 24 | 24 | -0.14 | -0.51 | +0.28 | 0.525 | 1.000 | 0.939 | 0.467 |
| NET | npm downloads | d_yoy | 4 | 23 | 22 | -0.28 | -0.63 | +0.16 | 0.201 | 1.000 | 0.893 | 0.169 |
| SNOW | npm downloads | d_yoy | 0 | 23 | 21 | +0.28 | -0.17 | +0.63 | 0.218 | 1.000 | 0.893 | 0.289 |
| SNOW | npm downloads | d_yoy | 1 | 22 | 21 | +0.27 | -0.18 | +0.62 | 0.235 | 1.000 | 0.893 | 0.275 |
| SNOW | npm downloads | d_yoy | 2 | 21 | 20 | +0.08 | -0.37 | +0.51 | 0.724 | 1.000 | 0.939 | 0.736 |
| SNOW | npm downloads | d_yoy | 3 | 20 | 19 | +0.35 | -0.12 | +0.69 | 0.139 | 0.695 | 0.893 | 0.245 |
| SNOW | npm downloads | d_yoy | 4 | 19 | 17 | -0.03 | -0.50 | +0.46 | 0.923 | 1.000 | 1.000 | 0.919 |
| CFLT | npm downloads | yoy | 0 | 3 | – | – | – | – | – | – | – | – |
| CFLT | npm downloads | yoy | 1 | 2 | – | – | – | – | – | – | – | – |
| CFLT | npm downloads | yoy | 2 | 1 | – | – | – | – | – | – | – | – |
| CFLT | npm downloads | yoy | 3 | 0 | – | – | – | – | – | – | – | – |
| CFLT | npm downloads | yoy | 4 | 0 | – | – | – | – | – | – | – | – |
| DDOG | npm downloads | yoy | 0 | 28 | 4 | +0.75 | -0.80 | +1.00 | 0.268 | 1.000 | 0.715 | 0.015 |
| DDOG | npm downloads | yoy | 1 | 27 | 4 | +0.78 | -0.82 | +1.00 | 0.250 | 1.000 | 0.715 | 0.010 |
| DDOG | npm downloads | yoy | 2 | 26 | 4 | +0.81 | -0.84 | +1.00 | 0.241 | 1.000 | 0.715 | <0.001 |
| DDOG | npm downloads | yoy | 3 | 25 | 4 | +0.78 | -0.90 | +1.00 | 0.285 | 1.000 | 0.715 | 0.008 |
| DDOG | npm downloads | yoy | 4 | 24 | 4 | +0.76 | -0.80 | +1.00 | 0.259 | 1.000 | 0.715 | 0.029 |
| ESTC | npm downloads | yoy | 0 | 26 | 3 | +0.67 | – | – | 0.493 | 1.000 | 0.715 | 0.015 |
| ESTC | npm downloads | yoy | 1 | 25 | 3 | +0.63 | – | – | 0.567 | 1.000 | 0.730 | 0.027 |
| ESTC | npm downloads | yoy | 2 | 24 | 3 | +0.65 | – | – | 0.473 | 1.000 | 0.715 | 0.006 |
| ESTC | npm downloads | yoy | 3 | 23 | 3 | +0.66 | – | – | 0.492 | 1.000 | 0.715 | 0.024 |
| ESTC | npm downloads | yoy | 4 | 22 | 3 | +0.77 | – | – | – | – | – | 0.008 |
| MDB | npm downloads | yoy | 0 | 36 | 11 | +0.32 | -0.34 | +0.77 | 0.330 | 1.000 | 0.715 | 0.178 |
| MDB | npm downloads | yoy | 1 | 35 | 10 | +0.53 | -0.18 | +0.88 | 0.128 | 0.641 | 0.715 | 0.014 |
| MDB | npm downloads | yoy | 2 | 34 | 8 | +0.56 | -0.21 | +0.90 | 0.135 | 0.674 | 0.715 | 0.011 |
| MDB | npm downloads | yoy | 3 | 33 | 8 | +0.55 | -0.24 | +0.90 | 0.152 | 0.759 | 0.715 | 0.012 |
| MDB | npm downloads | yoy | 4 | 32 | 8 | +0.48 | -0.33 | +0.88 | 0.224 | 1.000 | 0.715 | 0.043 |
| NET | npm downloads | yoy | 0 | 28 | 7 | +0.60 | -0.34 | +0.94 | 0.178 | 0.890 | 0.715 | 0.090 |
| NET | npm downloads | yoy | 1 | 27 | 6 | +0.52 | -0.53 | +0.94 | 0.300 | 1.000 | 0.715 | 0.150 |
| NET | npm downloads | yoy | 2 | 26 | 6 | +0.45 | -0.61 | +0.93 | 0.396 | 1.000 | 0.715 | 0.238 |
| NET | npm downloads | yoy | 3 | 25 | 6 | +0.35 | -0.67 | +0.91 | 0.510 | 1.000 | 0.715 | 0.381 |
| NET | npm downloads | yoy | 4 | 24 | 6 | +0.27 | -0.71 | +0.89 | 0.617 | 1.000 | 0.774 | 0.509 |
| SNOW | npm downloads | yoy | 0 | 24 | 4 | +0.81 | -0.54 | +0.99 | 0.155 | 0.774 | 0.715 | 0.008 |
| SNOW | npm downloads | yoy | 1 | 23 | 4 | +0.89 | -0.58 | +1.00 | 0.126 | 0.628 | 0.715 | 0.003 |
| SNOW | npm downloads | yoy | 2 | 22 | 4 | +0.89 | -0.69 | +1.00 | 0.139 | 0.694 | 0.715 | 0.001 |
| SNOW | npm downloads | yoy | 3 | 21 | 4 | +0.89 | -0.82 | +1.00 | 0.168 | 0.841 | 0.715 | 0.001 |
| SNOW | npm downloads | yoy | 4 | 20 | 3 | +0.83 | – | – | 0.271 | 1.000 | 0.715 | 0.001 |
| CFLT | PyPI downloads | d_yoy | 0 | 0 | – | – | – | – | – | – | – | – |
| CFLT | PyPI downloads | d_yoy | 1 | 0 | – | – | – | – | – | – | – | – |
| CFLT | PyPI downloads | d_yoy | 2 | 0 | – | – | – | – | – | – | – | – |
| CFLT | PyPI downloads | d_yoy | 3 | 0 | – | – | – | – | – | – | – | – |
| CFLT | PyPI downloads | d_yoy | 4 | 0 | – | – | – | – | – | – | – | – |
| DDOG | PyPI downloads | d_yoy | 0 | 0 | – | – | – | – | – | – | – | – |
| DDOG | PyPI downloads | d_yoy | 1 | 0 | – | – | – | – | – | – | – | – |
| DDOG | PyPI downloads | d_yoy | 2 | 0 | – | – | – | – | – | – | – | – |
| DDOG | PyPI downloads | d_yoy | 3 | 0 | – | – | – | – | – | – | – | – |
| DDOG | PyPI downloads | d_yoy | 4 | 0 | – | – | – | – | – | – | – | – |
| ESTC | PyPI downloads | d_yoy | 0 | 0 | – | – | – | – | – | – | – | – |
| ESTC | PyPI downloads | d_yoy | 1 | 0 | – | – | – | – | – | – | – | – |
| ESTC | PyPI downloads | d_yoy | 2 | 0 | – | – | – | – | – | – | – | – |
| ESTC | PyPI downloads | d_yoy | 3 | 0 | – | – | – | – | – | – | – | – |
| ESTC | PyPI downloads | d_yoy | 4 | 0 | – | – | – | – | – | – | – | – |
| MDB | PyPI downloads | d_yoy | 0 | 0 | – | – | – | – | – | – | – | – |
| MDB | PyPI downloads | d_yoy | 1 | 0 | – | – | – | – | – | – | – | – |
| MDB | PyPI downloads | d_yoy | 2 | 0 | – | – | – | – | – | – | – | – |
| MDB | PyPI downloads | d_yoy | 3 | 0 | – | – | – | – | – | – | – | – |
| MDB | PyPI downloads | d_yoy | 4 | 0 | – | – | – | – | – | – | – | – |
| NET | PyPI downloads | d_yoy | 0 | 0 | – | – | – | – | – | – | – | – |
| NET | PyPI downloads | d_yoy | 1 | 0 | – | – | – | – | – | – | – | – |
| NET | PyPI downloads | d_yoy | 2 | 0 | – | – | – | – | – | – | – | – |
| NET | PyPI downloads | d_yoy | 3 | 0 | – | – | – | – | – | – | – | – |
| NET | PyPI downloads | d_yoy | 4 | 0 | – | – | – | – | – | – | – | – |
| SNOW | PyPI downloads | d_yoy | 0 | 0 | – | – | – | – | – | – | – | – |
| SNOW | PyPI downloads | d_yoy | 1 | 0 | – | – | – | – | – | – | – | – |
| SNOW | PyPI downloads | d_yoy | 2 | 0 | – | – | – | – | – | – | – | – |
| SNOW | PyPI downloads | d_yoy | 3 | 0 | – | – | – | – | – | – | – | – |
| SNOW | PyPI downloads | d_yoy | 4 | 0 | – | – | – | – | – | – | – | – |
| CFLT | PyPI downloads | yoy | 0 | 0 | – | – | – | – | – | – | – | – |
| CFLT | PyPI downloads | yoy | 1 | 0 | – | – | – | – | – | – | – | – |
| CFLT | PyPI downloads | yoy | 2 | 0 | – | – | – | – | – | – | – | – |
| CFLT | PyPI downloads | yoy | 3 | 0 | – | – | – | – | – | – | – | – |
| CFLT | PyPI downloads | yoy | 4 | 0 | – | – | – | – | – | – | – | – |
| DDOG | PyPI downloads | yoy | 0 | 0 | – | – | – | – | – | – | – | – |
| DDOG | PyPI downloads | yoy | 1 | 0 | – | – | – | – | – | – | – | – |
| DDOG | PyPI downloads | yoy | 2 | 0 | – | – | – | – | – | – | – | – |
| DDOG | PyPI downloads | yoy | 3 | 0 | – | – | – | – | – | – | – | – |
| DDOG | PyPI downloads | yoy | 4 | 0 | – | – | – | – | – | – | – | – |
| ESTC | PyPI downloads | yoy | 0 | 0 | – | – | – | – | – | – | – | – |
| ESTC | PyPI downloads | yoy | 1 | 0 | – | – | – | – | – | – | – | – |
| ESTC | PyPI downloads | yoy | 2 | 0 | – | – | – | – | – | – | – | – |
| ESTC | PyPI downloads | yoy | 3 | 0 | – | – | – | – | – | – | – | – |
| ESTC | PyPI downloads | yoy | 4 | 0 | – | – | – | – | – | – | – | – |
| MDB | PyPI downloads | yoy | 0 | 0 | – | – | – | – | – | – | – | – |
| MDB | PyPI downloads | yoy | 1 | 0 | – | – | – | – | – | – | – | – |
| MDB | PyPI downloads | yoy | 2 | 0 | – | – | – | – | – | – | – | – |
| MDB | PyPI downloads | yoy | 3 | 0 | – | – | – | – | – | – | – | – |
| MDB | PyPI downloads | yoy | 4 | 0 | – | – | – | – | – | – | – | – |
| NET | PyPI downloads | yoy | 0 | 0 | – | – | – | – | – | – | – | – |
| NET | PyPI downloads | yoy | 1 | 0 | – | – | – | – | – | – | – | – |
| NET | PyPI downloads | yoy | 2 | 0 | – | – | – | – | – | – | – | – |
| NET | PyPI downloads | yoy | 3 | 0 | – | – | – | – | – | – | – | – |
| NET | PyPI downloads | yoy | 4 | 0 | – | – | – | – | – | – | – | – |
| SNOW | PyPI downloads | yoy | 0 | 0 | – | – | – | – | – | – | – | – |
| SNOW | PyPI downloads | yoy | 1 | 0 | – | – | – | – | – | – | – | – |
| SNOW | PyPI downloads | yoy | 2 | 0 | – | – | – | – | – | – | – | – |
| SNOW | PyPI downloads | yoy | 3 | 0 | – | – | – | – | – | – | – | – |
| SNOW | PyPI downloads | yoy | 4 | 0 | – | – | – | – | – | – | – | – |
| CFLT | npm vs baseline (post-hoc) | d_yoy | 0 | 2 | – | – | – | – | – | – | – | – |
| CFLT | npm vs baseline (post-hoc) | d_yoy | 1 | 1 | – | – | – | – | – | – | – | – |
| CFLT | npm vs baseline (post-hoc) | d_yoy | 2 | 0 | – | – | – | – | – | – | – | – |
| CFLT | npm vs baseline (post-hoc) | d_yoy | 3 | 0 | – | – | – | – | – | – | – | – |
| CFLT | npm vs baseline (post-hoc) | d_yoy | 4 | 0 | – | – | – | – | – | – | – | – |
| DDOG | npm vs baseline (post-hoc) | d_yoy | 0 | 27 | 26 | -0.12 | -0.49 | +0.28 | 0.544 | 1.000 | 0.993 | 0.567 |
| DDOG | npm vs baseline (post-hoc) | d_yoy | 1 | 26 | 25 | +0.07 | -0.33 | +0.45 | 0.738 | 1.000 | 0.993 | 0.737 |
| DDOG | npm vs baseline (post-hoc) | d_yoy | 2 | 25 | 25 | +0.27 | -0.14 | +0.60 | 0.197 | 0.984 | 0.827 | 0.358 |
| DDOG | npm vs baseline (post-hoc) | d_yoy | 3 | 24 | 19 | +0.35 | -0.12 | +0.69 | 0.143 | 0.716 | 0.827 | 0.201 |
| DDOG | npm vs baseline (post-hoc) | d_yoy | 4 | 23 | 19 | +0.14 | -0.34 | +0.56 | 0.576 | 1.000 | 0.993 | 0.606 |
| ESTC | npm vs baseline (post-hoc) | d_yoy | 0 | 25 | 25 | +0.27 | -0.15 | +0.60 | 0.199 | 0.993 | 0.827 | 0.279 |
| ESTC | npm vs baseline (post-hoc) | d_yoy | 1 | 24 | 22 | +0.01 | -0.41 | +0.43 | 0.957 | 1.000 | 0.993 | 0.963 |
| ESTC | npm vs baseline (post-hoc) | d_yoy | 2 | 23 | 21 | +0.02 | -0.41 | +0.45 | 0.918 | 1.000 | 0.993 | 0.869 |
| ESTC | npm vs baseline (post-hoc) | d_yoy | 3 | 22 | 17 | -0.39 | -0.73 | +0.10 | 0.112 | 0.562 | 0.827 | 0.168 |
| ESTC | npm vs baseline (post-hoc) | d_yoy | 4 | 21 | 18 | -0.23 | -0.63 | +0.27 | 0.362 | 1.000 | 0.919 | 0.421 |
| MDB | npm vs baseline (post-hoc) | d_yoy | 0 | 35 | 35 | -0.10 | -0.42 | +0.24 | 0.557 | 1.000 | 0.993 | 0.564 |
| MDB | npm vs baseline (post-hoc) | d_yoy | 1 | 34 | 34 | -0.00 | -0.34 | +0.34 | 0.988 | 1.000 | 0.993 | 0.989 |
| MDB | npm vs baseline (post-hoc) | d_yoy | 2 | 33 | 29 | +0.00 | -0.37 | +0.37 | 0.991 | 1.000 | 0.993 | 0.990 |
| MDB | npm vs baseline (post-hoc) | d_yoy | 3 | 32 | 28 | +0.12 | -0.26 | +0.47 | 0.537 | 1.000 | 0.993 | 0.462 |
| MDB | npm vs baseline (post-hoc) | d_yoy | 4 | 31 | 27 | -0.33 | -0.63 | +0.05 | 0.090 | 0.452 | 0.827 | 0.086 |
| NET | npm vs baseline (post-hoc) | d_yoy | 0 | 27 | 27 | +0.00 | -0.38 | +0.38 | 0.993 | 1.000 | 0.993 | 0.992 |
| NET | npm vs baseline (post-hoc) | d_yoy | 1 | 26 | 26 | -0.18 | -0.53 | +0.22 | 0.367 | 1.000 | 0.919 | 0.401 |
| NET | npm vs baseline (post-hoc) | d_yoy | 2 | 25 | 25 | +0.06 | -0.34 | +0.45 | 0.770 | 1.000 | 0.993 | 0.806 |
| NET | npm vs baseline (post-hoc) | d_yoy | 3 | 24 | 24 | -0.10 | -0.49 | +0.31 | 0.630 | 1.000 | 0.993 | 0.547 |
| NET | npm vs baseline (post-hoc) | d_yoy | 4 | 23 | 22 | -0.32 | -0.65 | +0.11 | 0.143 | 0.715 | 0.827 | 0.097 |
| SNOW | npm vs baseline (post-hoc) | d_yoy | 0 | 23 | 23 | +0.10 | -0.33 | +0.49 | 0.662 | 1.000 | 0.993 | 0.685 |
| SNOW | npm vs baseline (post-hoc) | d_yoy | 1 | 22 | 22 | +0.22 | -0.23 | +0.58 | 0.334 | 1.000 | 0.919 | 0.392 |
| SNOW | npm vs baseline (post-hoc) | d_yoy | 2 | 21 | 21 | -0.06 | -0.48 | +0.38 | 0.783 | 1.000 | 0.993 | 0.809 |
| SNOW | npm vs baseline (post-hoc) | d_yoy | 3 | 20 | 20 | +0.27 | -0.20 | +0.64 | 0.251 | 1.000 | 0.897 | 0.368 |
| SNOW | npm vs baseline (post-hoc) | d_yoy | 4 | 19 | 19 | -0.00 | -0.46 | +0.45 | 0.988 | 1.000 | 0.993 | 0.986 |
| CFLT | npm vs baseline (post-hoc) | yoy | 0 | 3 | – | – | – | – | – | – | – | – |
| CFLT | npm vs baseline (post-hoc) | yoy | 1 | 2 | – | – | – | – | – | – | – | – |
| CFLT | npm vs baseline (post-hoc) | yoy | 2 | 1 | – | – | – | – | – | – | – | – |
| CFLT | npm vs baseline (post-hoc) | yoy | 3 | 0 | – | – | – | – | – | – | – | – |
| CFLT | npm vs baseline (post-hoc) | yoy | 4 | 0 | – | – | – | – | – | – | – | – |
| DDOG | npm vs baseline (post-hoc) | yoy | 0 | 28 | 4 | +0.68 | -0.83 | +0.99 | 0.324 | 1.000 | 0.516 | 0.030 |
| DDOG | npm vs baseline (post-hoc) | yoy | 1 | 27 | 4 | +0.71 | -0.83 | +0.99 | 0.307 | 1.000 | 0.516 | 0.026 |
| DDOG | npm vs baseline (post-hoc) | yoy | 2 | 26 | 4 | +0.74 | -0.85 | +1.00 | 0.295 | 1.000 | 0.516 | 0.009 |
| DDOG | npm vs baseline (post-hoc) | yoy | 3 | 25 | 4 | +0.72 | -0.89 | +1.00 | 0.330 | 1.000 | 0.516 | 0.014 |
| DDOG | npm vs baseline (post-hoc) | yoy | 4 | 24 | 4 | +0.71 | -0.80 | +0.99 | 0.293 | 1.000 | 0.516 | 0.041 |
| ESTC | npm vs baseline (post-hoc) | yoy | 0 | 26 | 4 | +0.63 | -0.97 | +1.00 | 0.457 | 1.000 | 0.546 | 0.013 |
| ESTC | npm vs baseline (post-hoc) | yoy | 1 | 25 | 3 | +0.57 | – | – | 0.525 | 1.000 | 0.570 | 0.056 |
| ESTC | npm vs baseline (post-hoc) | yoy | 2 | 24 | 4 | +0.59 | -0.94 | +1.00 | 0.465 | 1.000 | 0.546 | 0.012 |
| ESTC | npm vs baseline (post-hoc) | yoy | 3 | 23 | 4 | +0.60 | -0.96 | +1.00 | 0.475 | 1.000 | 0.546 | 0.031 |
| ESTC | npm vs baseline (post-hoc) | yoy | 4 | 22 | 3 | +0.73 | – | – | 0.400 | 1.000 | 0.546 | 0.017 |
| MDB | npm vs baseline (post-hoc) | yoy | 0 | 36 | 16 | -0.40 | -0.75 | +0.13 | 0.130 | 0.649 | 0.361 | 0.093 |
| MDB | npm vs baseline (post-hoc) | yoy | 1 | 35 | 15 | -0.41 | -0.76 | +0.13 | 0.129 | 0.643 | 0.361 | 0.107 |
| MDB | npm vs baseline (post-hoc) | yoy | 2 | 34 | 12 | -0.50 | -0.83 | +0.09 | 0.089 | 0.445 | 0.361 | 0.041 |
| MDB | npm vs baseline (post-hoc) | yoy | 3 | 33 | 10 | -0.53 | -0.86 | +0.13 | 0.104 | 0.521 | 0.361 | 0.023 |
| MDB | npm vs baseline (post-hoc) | yoy | 4 | 32 | 9 | -0.57 | -0.89 | +0.13 | 0.101 | 0.507 | 0.361 | 0.017 |
| NET | npm vs baseline (post-hoc) | yoy | 0 | 28 | 7 | +0.53 | -0.40 | +0.92 | 0.237 | 1.000 | 0.516 | 0.139 |
| NET | npm vs baseline (post-hoc) | yoy | 1 | 27 | 6 | +0.42 | -0.56 | +0.91 | 0.386 | 1.000 | 0.546 | 0.259 |
| NET | npm vs baseline (post-hoc) | yoy | 2 | 26 | 6 | +0.34 | -0.60 | +0.89 | 0.480 | 1.000 | 0.546 | 0.370 |
| NET | npm vs baseline (post-hoc) | yoy | 3 | 25 | 7 | +0.24 | -0.64 | +0.85 | 0.607 | 1.000 | 0.632 | 0.541 |
| NET | npm vs baseline (post-hoc) | yoy | 4 | 24 | 7 | +0.16 | -0.69 | +0.82 | 0.739 | 1.000 | 0.739 | 0.695 |
| SNOW | npm vs baseline (post-hoc) | yoy | 0 | 24 | 5 | +0.78 | -0.29 | +0.98 | 0.112 | 0.562 | 0.361 | 0.022 |
| SNOW | npm vs baseline (post-hoc) | yoy | 1 | 23 | 5 | +0.80 | -0.28 | +0.99 | 0.106 | 0.529 | 0.361 | 0.017 |
| SNOW | npm vs baseline (post-hoc) | yoy | 2 | 22 | 5 | +0.80 | -0.28 | +0.99 | 0.105 | 0.527 | 0.361 | 0.021 |
| SNOW | npm vs baseline (post-hoc) | yoy | 3 | 21 | 5 | +0.81 | -0.31 | +0.99 | 0.108 | 0.542 | 0.361 | 0.028 |
| SNOW | npm vs baseline (post-hoc) | yoy | 4 | 20 | 5 | +0.76 | -0.47 | +0.99 | 0.161 | 0.804 | 0.402 | 0.027 |
| CFLT | PyPI vs baseline (post-hoc) | d_yoy | 0 | 0 | – | – | – | – | – | – | – | – |
| CFLT | PyPI vs baseline (post-hoc) | d_yoy | 1 | 0 | – | – | – | – | – | – | – | – |
| CFLT | PyPI vs baseline (post-hoc) | d_yoy | 2 | 0 | – | – | – | – | – | – | – | – |
| CFLT | PyPI vs baseline (post-hoc) | d_yoy | 3 | 0 | – | – | – | – | – | – | – | – |
| CFLT | PyPI vs baseline (post-hoc) | d_yoy | 4 | 0 | – | – | – | – | – | – | – | – |
| DDOG | PyPI vs baseline (post-hoc) | d_yoy | 0 | 0 | – | – | – | – | – | – | – | – |
| DDOG | PyPI vs baseline (post-hoc) | d_yoy | 1 | 0 | – | – | – | – | – | – | – | – |
| DDOG | PyPI vs baseline (post-hoc) | d_yoy | 2 | 0 | – | – | – | – | – | – | – | – |
| DDOG | PyPI vs baseline (post-hoc) | d_yoy | 3 | 0 | – | – | – | – | – | – | – | – |
| DDOG | PyPI vs baseline (post-hoc) | d_yoy | 4 | 0 | – | – | – | – | – | – | – | – |
| ESTC | PyPI vs baseline (post-hoc) | d_yoy | 0 | 0 | – | – | – | – | – | – | – | – |
| ESTC | PyPI vs baseline (post-hoc) | d_yoy | 1 | 0 | – | – | – | – | – | – | – | – |
| ESTC | PyPI vs baseline (post-hoc) | d_yoy | 2 | 0 | – | – | – | – | – | – | – | – |
| ESTC | PyPI vs baseline (post-hoc) | d_yoy | 3 | 0 | – | – | – | – | – | – | – | – |
| ESTC | PyPI vs baseline (post-hoc) | d_yoy | 4 | 0 | – | – | – | – | – | – | – | – |
| MDB | PyPI vs baseline (post-hoc) | d_yoy | 0 | 0 | – | – | – | – | – | – | – | – |
| MDB | PyPI vs baseline (post-hoc) | d_yoy | 1 | 0 | – | – | – | – | – | – | – | – |
| MDB | PyPI vs baseline (post-hoc) | d_yoy | 2 | 0 | – | – | – | – | – | – | – | – |
| MDB | PyPI vs baseline (post-hoc) | d_yoy | 3 | 0 | – | – | – | – | – | – | – | – |
| MDB | PyPI vs baseline (post-hoc) | d_yoy | 4 | 0 | – | – | – | – | – | – | – | – |
| NET | PyPI vs baseline (post-hoc) | d_yoy | 0 | 0 | – | – | – | – | – | – | – | – |
| NET | PyPI vs baseline (post-hoc) | d_yoy | 1 | 0 | – | – | – | – | – | – | – | – |
| NET | PyPI vs baseline (post-hoc) | d_yoy | 2 | 0 | – | – | – | – | – | – | – | – |
| NET | PyPI vs baseline (post-hoc) | d_yoy | 3 | 0 | – | – | – | – | – | – | – | – |
| NET | PyPI vs baseline (post-hoc) | d_yoy | 4 | 0 | – | – | – | – | – | – | – | – |
| SNOW | PyPI vs baseline (post-hoc) | d_yoy | 0 | 0 | – | – | – | – | – | – | – | – |
| SNOW | PyPI vs baseline (post-hoc) | d_yoy | 1 | 0 | – | – | – | – | – | – | – | – |
| SNOW | PyPI vs baseline (post-hoc) | d_yoy | 2 | 0 | – | – | – | – | – | – | – | – |
| SNOW | PyPI vs baseline (post-hoc) | d_yoy | 3 | 0 | – | – | – | – | – | – | – | – |
| SNOW | PyPI vs baseline (post-hoc) | d_yoy | 4 | 0 | – | – | – | – | – | – | – | – |
| CFLT | PyPI vs baseline (post-hoc) | yoy | 0 | 0 | – | – | – | – | – | – | – | – |
| CFLT | PyPI vs baseline (post-hoc) | yoy | 1 | 0 | – | – | – | – | – | – | – | – |
| CFLT | PyPI vs baseline (post-hoc) | yoy | 2 | 0 | – | – | – | – | – | – | – | – |
| CFLT | PyPI vs baseline (post-hoc) | yoy | 3 | 0 | – | – | – | – | – | – | – | – |
| CFLT | PyPI vs baseline (post-hoc) | yoy | 4 | 0 | – | – | – | – | – | – | – | – |
| DDOG | PyPI vs baseline (post-hoc) | yoy | 0 | 0 | – | – | – | – | – | – | – | – |
| DDOG | PyPI vs baseline (post-hoc) | yoy | 1 | 0 | – | – | – | – | – | – | – | – |
| DDOG | PyPI vs baseline (post-hoc) | yoy | 2 | 0 | – | – | – | – | – | – | – | – |
| DDOG | PyPI vs baseline (post-hoc) | yoy | 3 | 0 | – | – | – | – | – | – | – | – |
| DDOG | PyPI vs baseline (post-hoc) | yoy | 4 | 0 | – | – | – | – | – | – | – | – |
| ESTC | PyPI vs baseline (post-hoc) | yoy | 0 | 0 | – | – | – | – | – | – | – | – |
| ESTC | PyPI vs baseline (post-hoc) | yoy | 1 | 0 | – | – | – | – | – | – | – | – |
| ESTC | PyPI vs baseline (post-hoc) | yoy | 2 | 0 | – | – | – | – | – | – | – | – |
| ESTC | PyPI vs baseline (post-hoc) | yoy | 3 | 0 | – | – | – | – | – | – | – | – |
| ESTC | PyPI vs baseline (post-hoc) | yoy | 4 | 0 | – | – | – | – | – | – | – | – |
| MDB | PyPI vs baseline (post-hoc) | yoy | 0 | 0 | – | – | – | – | – | – | – | – |
| MDB | PyPI vs baseline (post-hoc) | yoy | 1 | 0 | – | – | – | – | – | – | – | – |
| MDB | PyPI vs baseline (post-hoc) | yoy | 2 | 0 | – | – | – | – | – | – | – | – |
| MDB | PyPI vs baseline (post-hoc) | yoy | 3 | 0 | – | – | – | – | – | – | – | – |
| MDB | PyPI vs baseline (post-hoc) | yoy | 4 | 0 | – | – | – | – | – | – | – | – |
| NET | PyPI vs baseline (post-hoc) | yoy | 0 | 0 | – | – | – | – | – | – | – | – |
| NET | PyPI vs baseline (post-hoc) | yoy | 1 | 0 | – | – | – | – | – | – | – | – |
| NET | PyPI vs baseline (post-hoc) | yoy | 2 | 0 | – | – | – | – | – | – | – | – |
| NET | PyPI vs baseline (post-hoc) | yoy | 3 | 0 | – | – | – | – | – | – | – | – |
| NET | PyPI vs baseline (post-hoc) | yoy | 4 | 0 | – | – | – | – | – | – | – | – |
| SNOW | PyPI vs baseline (post-hoc) | yoy | 0 | 0 | – | – | – | – | – | – | – | – |
| SNOW | PyPI vs baseline (post-hoc) | yoy | 1 | 0 | – | – | – | – | – | – | – | – |
| SNOW | PyPI vs baseline (post-hoc) | yoy | 2 | 0 | – | – | – | – | – | – | – | – |
| SNOW | PyPI vs baseline (post-hoc) | yoy | 3 | 0 | – | – | – | – | – | – | – | – |
| SNOW | PyPI vs baseline (post-hoc) | yoy | 4 | 0 | – | – | – | – | – | – | – | – |
Downloads: leadlag_company.csv · leadlag_pooled.csv · quarterly_panel.csv · revenue_quarterly.csv. Columns: p = effective-n t-test; p_lag_adj = Bonferroni over lags; q_bh = Benjamini-Hochberg; p_perm = block permutation (secondary; anti-conservative on persistent series).