Archive

2025

365 field notes published in 2025.

December 31

  1. data-job-postings.country: 7 values, 69.5% in the top three Visualization
  2. The average duration min is not the typical one Statistics
  3. Keeping one row per key in movie-ratings Analytics engineering
  4. Is account_id + plan the grain of saas-subscriptions? Analytics engineering
  5. Check the blanks before you drop them Statistics
  6. Five minutes with duration_min in ride-hail-trips Data quality
  7. Reading 3 columns instead of 7 Data platform
  8. Before you clip the outliers Statistics
  9. The overall average hides 4 different numbers Analytics practice
  10. A essentially none correlation, and what it is not Statistics
  11. Correction: Anti-join Analytics engineering
  12. Charting line_no by channel Visualization
  13. What SQL Playground will not do Visualization
  14. What is deliberately wrong with ab-test-checkout Data quality
  15. Course note — When not to build a model Machine learning
  16. Year three Analytics practice
  17. Median beside the mean, in short Statistics
  18. Is subject_id + sex the grain of clinical-trial? Analytics engineering
  19. ordered_at runs 2023-01-01 to 2024-12-30 Data engineering
  20. The category that eats the chart Visualization
  21. Finding the gaps in data-job-postings Analytics engineering
  22. 9.9% of week12_score is missing Statistics
  23. The average line no is not the typical one Statistics
  24. Five minutes with account_id in saas-subscriptions Data quality
  25. The arithmetic behind a cheap query Data platform
  26. Before you clip the outliers Statistics
  27. bmi by arm: a 0% spread Analytics practice
  28. A weak correlation, and what it is not Statistics
  29. Correction: Lookback window Data engineering
  30. Charting salary_min_usd by city Visualization
  31. Why Data Explorer works the way it does Visualization

November 30

  1. An exercise on sensor-telemetry Data quality
  2. Cutting a lesson down — Testing data like you test code Data quality
  3. The category that eats the chart Visualization
  4. Comparing a period to the one before it Analytics engineering
  5. Idempotent window replace, in short Data engineering
  6. Fifteen minutes a month on the warehouse bill Data platform
  7. The time coverage of flight-delays Data engineering
  8. Is subject_id + site the grain of clinical-trial? Analytics engineering
  9. The average first response min is not the typical one Statistics
  10. Reading reading_at before trusting it in sensor-telemetry Data quality
  11. Reading 3 columns instead of 10 Data platform
  12. The top of no2_ppb is 1.2× the 99th percentile Statistics
  13. salary_max_usd by city: a 427% spread Analytics practice
  14. A weak correlation, and what it is not Statistics
  15. Correction: Difference-in-differences Experimentation
  16. Charting release_year by genre Visualization
  17. Distribution Lab works offline Visualization
  18. An exercise on flight-delays Data quality
  19. Course note — Window functions, properly Analytics engineering
  20. Is order_id + line_no the grain of retail-orders? Analytics engineering
  21. Conditional pivot, in short Analytics engineering
  22. The time coverage of support-tickets Data engineering
  23. The category that eats the chart Visualization
  24. The average units is not the typical one Statistics
  25. Sessions out of raw events in ab-test-checkout Analytics engineering
  26. Five minutes with subject_id in clinical-trial Data quality
  27. Reading 3 columns instead of 10 Data platform
  28. The top of discount_pct is 1.1× the 99th percentile Statistics
  29. seats by plan: a 21,443% spread Analytics practice
  30. A essentially none correlation, and what it is not Statistics

October 31

  1. Correction: Conditional pivot Analytics engineering
  2. Charting first_response_min by queue Visualization
  3. The chart rules behind Correlation Explorer Visualization
  4. The question that kills the most projects Analytics practice
  5. The category that eats the chart Visualization
  6. An exercise on data-job-postings Data quality
  7. Cutting a lesson down — Idempotency, backfills, and yesterday arriving twice Data engineering
  8. As-of feature computation, in short Machine learning
  9. Comparing a period to the one before it Analytics engineering
  10. The time coverage of saas-subscriptions Data engineering
  11. Counting rows is not testing grain Analytics engineering
  12. Reading 3 columns instead of 8 Data platform
  13. The average fare usd is not the typical one Statistics
  14. Five minutes with city in city-air-quality Data quality
  15. The top of baseline_score is 1.1× the 99th percentile Statistics
  16. humidity_pct by status: a 4% spread Analytics practice
  17. r = 0.10 between sched_dep_hour and arr_delay_min Statistics
  18. Correction: Baseline before model Machine learning
  19. Charting age by arm Visualization
  20. Correlation Explorer works offline Visualization
  21. World development indicators, in one paragraph Data quality
  22. Reader question — Window functions, properly Analytics engineering
  23. Deduplicate by rank, in short Analytics engineering
  24. exposed_on runs 2024-03-04 to 2024-03-31 Data engineering
  25. clinical-trial.sex: 2 values, 100.0% in the top three Visualization
  26. A running total that does not lie about ties Analytics engineering
  27. Reading flight_no before trusting it in flight-delays Data quality
  28. Is reading_at + status the grain of sensor-telemetry? Analytics engineering
  29. The average gdp per capita usd is not the typical one Statistics
  30. Before you clip the outliers Statistics
  31. sched_dep_hour by carrier: a 3% spread Analytics practice

September 30

  1. Four charts I deleted from this site Visualization
  2. A essentially none correlation, and what it is not Statistics
  3. Correction: Median beside the mean Statistics
  4. Charting sessions by device Visualization
  5. What Regression Lab will not do Visualization
  6. Ride-hail trips, in one paragraph Data quality
  7. Course note — Designing an experiment that can succeed Experimentation
  8. Pattern: Median beside the mean Statistics
  9. The time coverage of movie-ratings Data engineering
  10. The category that eats the chart Visualization
  11. Keeping one row per key in ride-hail-trips Analytics engineering
  12. Five minutes with origin in flight-delays Data quality
  13. The average seats now is not the typical one Statistics
  14. Is device_id + reading_at the grain of sensor-telemetry? Analytics engineering
  15. Before you clip the outliers Statistics
  16. dep_delay_min by dest: a 38% spread Analytics practice
  17. Charting seats_now by plan Visualization
  18. A strong correlation, and what it is not Statistics
  19. Correction: Date spine Analytics engineering
  20. Experiment Calculator works offline Visualization
  21. churned_at runs 2023-03-17 to 2026-01-24 Data engineering
  22. What is deliberately wrong with ride-hail-trips Data quality
  23. Course note — Writing SQL people can read, and reading the plan Analytics engineering
  24. Gaps and islands, in short Analytics engineering
  25. saas-subscriptions.region: 4 values, 93.3% in the top three Visualization
  26. Comparing a period to the one before it Analytics engineering
  27. Is user_id + movie_id the grain of movie-ratings? Analytics engineering
  28. The average co2 tonnes per capita is not the typical one Statistics
  29. The top of o3_ppb is 1.2× the 99th percentile Statistics
  30. Five minutes with revenue_usd in retail-orders Data quality

August 31

  1. r = -0.00 between vibration_mm_s and rpm Statistics
  2. The overall average hides 3 different numbers Analytics practice
  3. Charting no2_ppb by city Visualization
  4. Why Distribution Lab works the way it does Visualization
  5. Factory sensor telemetry, in one paragraph Data quality
  6. No runbook, no page Data platform
  7. Cutting a lesson down — Rows, grain, and the shape of a dataset Analytics practice
  8. Counting your tests, in short Experimentation
  9. rated_at runs 2023-01-01 to 2025-06-19 Data engineering
  10. The category that eats the chart Visualization
  11. The average surge multiplier is not the typical one Statistics
  12. A running total that does not lie about ties Analytics engineering
  13. Counting rows is not testing grain Analytics engineering
  14. What arr_delay_min actually contains in flight-delays Data quality
  15. The top of duration_min is 1.3× the 99th percentile Statistics
  16. discount_pct by country: a 14% spread Analytics practice
  17. r = 0.75 between life_expectancy and co2_tonnes_per_capita Statistics
  18. Charting rating by genre Visualization
  19. What Experiment Calculator will not do Visualization
  20. The time coverage of data-job-postings Data engineering
  21. An exercise on dirty-customers Data quality
  22. Course note — Schema drift, and the contract that prevents it Data engineering
  23. The left join that became an inner join, in short Analytics engineering
  24. data-job-postings.city: 10 values, 41.8% in the top three Visualization
  25. passengers: mean 2, median 1 Statistics
  26. The top of unit_price_usd is 1.7× the 99th percentile Statistics
  27. A running total that does not lie about ties Analytics engineering
  28. Counting rows is not testing grain Analytics engineering
  29. Five minutes with passengers in ride-hail-trips Data quality
  30. discount_pct by category: a 16% spread Analytics practice
  31. r = 0.04 between temp_c and price_eur_mwh Statistics

July 31

  1. Charting pm25 by city Visualization
  2. Checkout A/B test, in one paragraph Data quality
  3. The CLT does not always save you Statistics
  4. Data Explorer works offline Visualization
  5. Cutting a lesson down — Joins that do not fan out Analytics engineering
  6. Cohort retention triangle, in short Analytics practice
  7. ab-test-checkout.device: 3 values, 100.0% in the top three Visualization
  8. Comparing a period to the one before it Analytics engineering
  9. Counting rows is not testing grain Analytics engineering
  10. The average unit price usd is not the typical one Statistics
  11. What site actually contains in sensor-telemetry Data quality
  12. The top of mrr_usd is 1.6× the 99th percentile Statistics
  13. distance_km by payment_type: a 3% spread Analytics practice
  14. r = 0.72 between load_mw and price_eur_mwh Statistics
  15. Charting year by region Visualization
  16. Why Experiment Calculator works the way it does Visualization
  17. City air quality, in one paragraph Data quality
  18. Comparing a period to the one before it Analytics engineering
  19. Course note — The anatomy of a silent failure Data quality
  20. Contract check at the boundary, in short Data quality
  21. city-air-quality.city: 4 values, 75.0% in the top three Visualization
  22. Counting rows is not testing grain Analytics engineering
  23. dep_delay_min: mean 10, median 5 Statistics
  24. What signed_up_on actually contains in saas-subscriptions Data quality
  25. Before you clip the outliers Statistics
  26. The overall average hides 4 different numbers Analytics practice
  27. r = -0.36 between pm10 and o3_ppb Statistics
  28. The category that eats the chart Visualization
  29. Charting year by country Visualization
  30. What Correlation Explorer will not do Visualization
  31. What is deliberately wrong with support-tickets Data quality

June 30

  1. Counting rows is not testing grain Analytics engineering
  2. Cutting a lesson down — Orchestration, and what "it runs every night" costs Data platform
  3. Lookback window, in short Data engineering
  4. A running total that does not lie about ties Analytics engineering
  5. The average seats is not the typical one Statistics
  6. What co2_tonnes_per_capita actually contains in world-indicators Data quality
  7. We turned off 80% of our alerts and caught more incidents Data platform
  8. Before you clip the outliers Statistics
  9. salary_max_usd by seniority: a 162% spread Analytics practice
  10. A essentially none correlation, and what it is not Statistics
  11. Charting revenue_usd by variant Visualization
  12. The chart rules behind Experiment Calculator Visualization
  13. Customer support tickets, in one paragraph Data quality
  14. Cutting a lesson down — Causal claims when you cannot randomise Experimentation
  15. Fan-out join, in short Analytics engineering
  16. The category that eats the chart Visualization
  17. Comparing a period to the one before it Analytics engineering
  18. distance_km: mean 4.83, median 3.20 Statistics
  19. What pm25 actually contains in city-air-quality Data quality
  20. Is resolved_at + priority the grain of support-tickets? Analytics engineering
  21. The top of humidity_pct is 1.1× the 99th percentile Statistics
  22. fare_usd by payment_type: a 4% spread Analytics practice
  23. A strong correlation, and what it is not Statistics
  24. Charting flight_no by carrier Visualization
  25. The chart rules behind SQL Playground Visualization
  26. An exercise on support-tickets Data quality
  27. Cutting a lesson down — Describing a column without lying Statistics
  28. Counting rows is not testing grain Analytics engineering
  29. Pattern: Date spine Analytics engineering
  30. world-indicators.region: 5 values, 70.0% in the top three Visualization

May 31

  1. Sessions out of raw events in sensor-telemetry Analytics engineering
  2. sched_dep_hour by origin: a 4% spread Analytics practice
  3. Five minutes with opened_at in support-tickets Data quality
  4. line_no: mean 2, median 1 Statistics
  5. Our most popular dataset is the broken one Data quality
  6. Before you clip the outliers Statistics
  7. A essentially none correlation, and what it is not Statistics
  8. Charting first_response_min by channel Visualization
  9. What Distribution Lab will not do Visualization
  10. What is deliberately wrong with dirty-customers Data quality
  11. Course note — Testing data like you test code Data quality
  12. Pattern: Counting your tests Experimentation
  13. The category that eats the chart Visualization
  14. A running total that does not lie about ties Analytics engineering
  15. Counting rows is not testing grain Analytics engineering
  16. unit_price_usd: mean 72.66, median 48.86 Statistics
  17. The top of temp_c is 1.1× the 99th percentile Statistics
  18. What humidity_pct actually contains in sensor-telemetry Data quality
  19. The overall average hides 7 different numbers Analytics practice
  20. r = -0.01 between distance_km and surge_multiplier Statistics
  21. Charting pm10 by city Visualization
  22. The chart rules behind Chart Builder Visualization
  23. Movie ratings, in one paragraph Data quality
  24. Reader question — What a data team is actually for Analytics practice
  25. Pattern: As-of feature computation Machine learning
  26. The category that eats the chart Visualization
  27. Comparing a period to the one before it Analytics engineering
  28. Is flight_no + carrier the grain of flight-delays? Analytics engineering
  29. tip_usd: mean 3.13, median 1.96 Statistics
  30. Five minutes with category in retail-orders Data quality
  31. Before you clip the outliers Statistics

April 30

  1. The overall average hides 2 different numbers Analytics practice
  2. The churn model that broke its own evaluation Machine learning
  3. r = 0.38 between tip_usd and surge_multiplier Statistics
  4. Charting temp_c by status Visualization
  5. Regression Lab works offline Visualization
  6. What is deliberately wrong with data-job-postings Data quality
  7. Reader question — Idempotency, backfills, and yesterday arriving twice Data engineering
  8. The category that eats the chart Visualization
  9. Deterministic surrogate key, in short Data engineering
  10. What flight_no actually contains in flight-delays Data quality
  11. Is posting_id + seniority the grain of data-job-postings? Analytics engineering
  12. Finding the gaps in city-air-quality Analytics engineering
  13. co2_tonnes_per_capita: mean 3.67, median 2.80 Statistics
  14. The top of dep_delay_min is 3.1× the 99th percentile Statistics
  15. The overall average hides 5 different numbers Analytics practice
  16. r = -0.09 between solar_mw and wind_mw Statistics
  17. Charting vibration_mm_s by site Visualization
  18. What Chart Builder will not do Visualization
  19. An exercise on ride-hail-trips Data quality
  20. Course note — What a data team is actually for Analytics practice
  21. A proportion with an interval, in short Statistics
  22. A running total that does not lie about ties Analytics engineering
  23. Counting rows is not testing grain Analytics engineering
  24. The category that eats the chart Visualization
  25. The overall average hides 14 different numbers Analytics practice
  26. Five minutes with priority in support-tickets Data quality
  27. The average revenue usd is not the typical one Statistics
  28. The top of pm25 is 2.7× the 99th percentile Statistics
  29. What cancelled actually contains in flight-delays Data quality
  30. r = 0.92 between distance_km and duration_min Statistics

March 31

  1. Charting temp_c by site Visualization
  2. Reading subject_id before trusting it in clinical-trial Data quality
  3. An exercise on city-air-quality Data quality
  4. Reader question — Causal claims when you cannot randomise Experimentation
  5. Reading temp_c before trusting it in grid-energy-load Data quality
  6. Pattern: A proportion with an interval Statistics
  7. We cut the modelling module in half Machine learning
  8. sensor-telemetry.status: 3 values, 100.0% in the top three Visualization
  9. What flight_date actually contains in flight-delays Data quality
  10. Sessions out of raw events in saas-subscriptions Analytics engineering
  11. Counting rows is not testing grain Analytics engineering
  12. Five minutes with country in world-indicators Data quality
  13. Before you clip the outliers Statistics
  14. seats_now: mean 59, median 8 Statistics
  15. What rated_at actually contains in movie-ratings Data quality
  16. The overall average hides 14 different numbers Analytics practice
  17. r = -0.37 between wind_mw and price_eur_mwh Statistics
  18. Charting seats by plan Visualization
  19. Reading release_year before trusting it in movie-ratings Data quality
  20. Retail orders, in one paragraph Data quality
  21. Reader question — Writing SQL people can read, and reading the plan Analytics engineering
  22. What dep_delay_min actually contains in flight-delays Data quality
  23. Anti-join, in short Analytics engineering
  24. The category that eats the chart Visualization
  25. Keeping one row per key in support-tickets Analytics engineering
  26. Counting rows is not testing grain Analytics engineering
  27. Five minutes with wind_mw in grid-energy-load Data quality
  28. A strong correlation, and what it is not Statistics
  29. Before you clip the outliers Statistics
  30. Five minutes with first_response_min in support-tickets Data quality
  31. The overall average hides 8 different numbers Analytics practice

February 28

  1. Charting fare_usd by borough Visualization
  2. Reading sessions before trusting it in ab-test-checkout Data quality
  3. Randomised trial results, in one paragraph Data quality
  4. Course note — Frame the problem, then beat a stupid baseline Machine learning
  5. What units actually contains in retail-orders Data quality
  6. ride-hail-trips.payment_type: 3 values, 100.0% in the top three Visualization
  7. Counting rows is not testing grain Analytics engineering
  8. Five minutes with rpm in sensor-telemetry Data quality
  9. Counting your tests, in short Experimentation
  10. Counting rows is not testing grain Analytics engineering
  11. CUPED gave us back 40% of our sample size for ten lines of code Experimentation
  12. What distance_km actually contains in ride-hail-trips Data quality
  13. Keeping one row per key in ab-test-checkout Analytics engineering
  14. Before you clip the outliers Statistics
  15. What line_no actually contains in retail-orders Data quality
  16. seats_now by industry: a 57% spread Analytics practice
  17. A essentially none correlation, and what it is not Statistics
  18. Charting bmi by arm Visualization
  19. Five minutes with discount_pct in retail-orders Data quality
  20. An exercise on grid-energy-load Data quality
  21. Cutting a lesson down — Schema drift, and the contract that prevents it Data engineering
  22. support-tickets.channel: 4 values, 87.8% in the top three Visualization
  23. Five minutes with returned in retail-orders Data quality
  24. age by sex: a 1% spread Analytics practice
  25. Pattern: Forward-chaining split Machine learning
  26. Finding the gaps in support-tickets Analytics engineering
  27. Before you clip the outliers Statistics
  28. What baseline_score actually contains in clinical-trial Data quality

January 31

  1. A essentially none correlation, and what it is not Statistics
  2. Charting population by country Visualization
  3. What returned actually contains in retail-orders Data quality
  4. What is deliberately wrong with movie-ratings Data quality
  5. Reader question — Joins that do not fan out Analytics engineering
  6. What life_expectancy actually contains in world-indicators Data quality
  7. Pattern: Contract check at the boundary Data quality
  8. Sessions out of raw events in support-tickets Analytics engineering
  9. Reading carrier before trusting it in flight-delays Data quality
  10. The top of age is 1.1× the 99th percentile Statistics
  11. Most of our experiments could never have worked Experimentation
  12. The category that eats the chart Visualization
  13. Five minutes with signed_up_on in saas-subscriptions Data quality
  14. Counting rows is not testing grain Analytics engineering
  15. The overall average hides 2 different numbers Analytics practice
  16. A weak correlation, and what it is not Statistics
  17. Charting mrr_usd by plan Visualization
  18. What is deliberately wrong with world-indicators Data quality
  19. Reading remote before trusting it in data-job-postings Data quality
  20. Course note — Communicating a result to someone who will not read your notebook Visualization
  21. Finding the gaps in sensor-telemetry Analytics engineering
  22. Five minutes with arm in clinical-trial Data quality
  23. Pattern: Gaps and islands Analytics engineering
  24. flight-delays.origin: 14 values, 22.6% in the top three Visualization
  25. What channel actually contains in support-tickets Data quality
  26. Counting rows is not testing grain Analytics engineering
  27. Before you clip the outliers Statistics
  28. What is_returning actually contains in ab-test-checkout Data quality
  29. salary_min_usd by country: a 379% spread Analytics practice
  30. A moderate correlation, and what it is not Statistics
  31. Charting vibration_mm_s by status Visualization

Back to the blog