Archive

2024

366 field notes published in 2024.

December 31

  1. An exercise on ab-test-checkout Data quality
  2. Course note — One metric, one definition Analytics engineering
  3. Five minutes with flight_date in flight-delays Data quality
  4. Difference-in-differences, in short Experimentation
  5. The category that eats the chart Visualization
  6. Five minutes with adverse_event in clinical-trial Data quality
  7. Finding the gaps in ride-hail-trips Analytics engineering
  8. Counting rows is not testing grain Analytics engineering
  9. The top of solar_mw is 1.2× the 99th percentile Statistics
  10. The overall average hides 2 different numbers Analytics practice
  11. Five minutes with o3_ppb in city-air-quality Data quality
  12. r = 0.70 between fare_usd and tip_usd Statistics
  13. Charting dep_delay_min by origin Visualization
  14. Reading bmi before trusting it in clinical-trial Data quality
  15. Year two Analytics practice
  16. Cutting a lesson down — Facts, dimensions, and picking a grain Analytics engineering
  17. Forward-chaining split, in short Machine learning
  18. Reading category before trusting it in retail-orders Data quality
  19. The overall average hides 5 different numbers Analytics practice
  20. movie-ratings.genre: 8 values, 54.8% in the top three Visualization
  21. Five minutes with churned_at in saas-subscriptions Data quality
  22. A running total that does not lie about ties Analytics engineering
  23. A strong correlation, and what it is not Statistics
  24. Reading line_no before trusting it in retail-orders Data quality
  25. Counting rows is not testing grain Analytics engineering
  26. The top of temp_c is 1.4× the 99th percentile Statistics
  27. Reading surge_multiplier before trusting it in ride-hail-trips Data quality
  28. Charting gdp_per_capita_usd by region Visualization
  29. Cutting a lesson down — Features, and explaining what the model did Machine learning
  30. Five minutes with sex in clinical-trial Data quality
  31. Median beside the mean, in short Statistics

November 30

  1. The category that eats the chart Visualization
  2. Reading distance_km before trusting it in ride-hail-trips Data quality
  3. Comparing a period to the one before it Analytics engineering
  4. Before you clip the outliers Statistics
  5. Three dashboards, three revenue numbers, ninety minutes Analytics engineering
  6. What user_id actually contains in ab-test-checkout Data quality
  7. Counting rows is not testing grain Analytics engineering
  8. mrr_usd by plan: a 13,612% spread Analytics practice
  9. Five minutes with humidity_pct in sensor-telemetry Data quality
  10. A strong correlation, and what it is not Statistics
  11. Charting csat by queue Visualization
  12. Cutting a lesson down — Writing SQL people can read, and reading the plan Analytics engineering
  13. Reading humidity_pct before trusting it in sensor-telemetry Data quality
  14. Pattern: Difference-in-differences Experimentation
  15. flight-delays.carrier: 6 values, 63.6% in the top three Visualization
  16. Reading country before trusting it in retail-orders Data quality
  17. Sessions out of raw events in ride-hail-trips Analytics engineering
  18. Counting rows is not testing grain Analytics engineering
  19. Five minutes with dropped_out in clinical-trial Data quality
  20. The top of wind_mw is 1.6× the 99th percentile Statistics
  21. The overall average hides 3 different numbers Analytics practice
  22. What sessions actually contains in ab-test-checkout Data quality
  23. r = 0.00 between no2_ppb and o3_ppb Statistics
  24. Charting bmi by site Visualization
  25. What resolved_at actually contains in support-tickets Data quality
  26. data-job-postings.seniority: 5 values, 83.4% in the top three Visualization
  27. Cutting a lesson down — Choosing the form before the colours Visualization
  28. Five minutes with carrier in flight-delays Data quality
  29. As-of feature computation, in short Machine learning
  30. Sessions out of raw events in data-job-postings Analytics engineering

October 31

  1. Five minutes with queue in support-tickets Data quality
  2. Counting rows is not testing grain Analytics engineering
  3. Two more tools, and why the palette is not our taste Visualization
  4. The top of revenue_usd is 3.0× the 99th percentile Statistics
  5. What tip_usd actually contains in ride-hail-trips Data quality
  6. no2_ppb by city: a 129% spread Analytics practice
  7. A weak correlation, and what it is not Statistics
  8. Five minutes with solar_mw in grid-energy-load Data quality
  9. Charting seats by region Visualization
  10. The category that eats the chart Visualization
  11. What posting_id actually contains in data-job-postings Data quality
  12. Reader question — Orchestration, and what "it runs every night" costs Data platform
  13. Gaps and islands, in short Analytics engineering
  14. What revenue_usd actually contains in ab-test-checkout Data quality
  15. Finding the gaps in retail-orders Analytics engineering
  16. Counting rows is not testing grain Analytics engineering
  17. What is_holiday actually contains in grid-energy-load Data quality
  18. r = 0.19 between year and population Statistics
  19. Before you clip the outliers Statistics
  20. Reading pm10 before trusting it in city-air-quality Data quality
  21. The overall average hides 3 different numbers Analytics practice
  22. Charting population by region Visualization
  23. Counting rows is not testing grain Analytics engineering
  24. Reading pm25 before trusting it in city-air-quality Data quality
  25. Cutting a lesson down — Why your query costs what it costs Data platform
  26. Pattern: Lookback window Data engineering
  27. The top of salary_min_usd is 1.2× the 99th percentile Statistics
  28. pm10 by city: a 174% spread Analytics practice
  29. Reading is_holiday before trusting it in grid-energy-load Data quality
  30. sensor-telemetry.site: 3 values, 100.0% in the top three Visualization
  31. Finding the gaps in flight-delays Analytics engineering

September 30

  1. Five minutes with company_size in data-job-postings Data quality
  2. A moderate correlation, and what it is not Statistics
  3. Charting duration_min by payment_type Visualization
  4. The category that eats the chart Visualization
  5. What city actually contains in data-job-postings Data quality
  6. Course note — Idempotency, backfills, and yesterday arriving twice Data engineering
  7. We rewrote our interview loop and the hires got better Analytics practice
  8. Difference-in-differences, in short Experimentation
  9. Five minutes with region in world-indicators Data quality
  10. Is reading_at + site the grain of sensor-telemetry? Analytics engineering
  11. The top of price_eur_mwh is 1.2× the 99th percentile Statistics
  12. Five minutes with fare_usd in ride-hail-trips Data quality
  13. The overall average hides 4 different numbers Analytics practice
  14. A strong correlation, and what it is not Statistics
  15. What wind_kph actually contains in city-air-quality Data quality
  16. Charting salary_min_usd by seniority Visualization
  17. Reader question — Choosing the form before the colours Visualization
  18. Five minutes with plan in saas-subscriptions Data quality
  19. clinical-trial.arm: 2 values, 100.0% in the top three Visualization
  20. Anti-join, in short Analytics engineering
  21. Five minutes with rated_at in movie-ratings Data quality
  22. Is order_id + category the grain of retail-orders? Analytics engineering
  23. The overall average hides 6 different numbers Analytics practice
  24. Five minutes with remote in data-job-postings Data quality
  25. Before you clip the outliers Statistics
  26. A essentially none correlation, and what it is not Statistics
  27. Five minutes with bmi in clinical-trial Data quality
  28. Charting seats_now by region Visualization
  29. Course note — Causal claims when you cannot randomise Experimentation
  30. Reading load_mw before trusting it in grid-energy-load Data quality

August 31

  1. The top of population is 1.1× the 99th percentile Statistics
  2. The category that eats the chart Visualization
  3. Reading pickup_at before trusting it in ride-hail-trips Data quality
  4. The grain uniqueness test, in short Data quality
  5. A backfill that cost $400 in ninety seconds Data platform
  6. The overall average hides 5 different numbers Analytics practice
  7. What seats actually contains in saas-subscriptions Data quality
  8. Is user_id + device the grain of ab-test-checkout? Analytics engineering
  9. r = 0.53 between fare_usd and surge_multiplier Statistics
  10. Five minutes with internet_pct in world-indicators Data quality
  11. Charting dep_delay_min by carrier Visualization
  12. Course note — Monitoring data, not just jobs Data platform
  13. Sessionisation, in short Analytics engineering
  14. The top of co2_tonnes_per_capita is 1.3× the 99th percentile Statistics
  15. What mrr_usd actually contains in saas-subscriptions Data quality
  16. data-job-postings.company_size: 4 values, 81.1% in the top three Visualization
  17. Counting rows is not testing grain Analytics engineering
  18. Reading age before trusting it in clinical-trial Data quality
  19. gdp_per_capita_usd by country: a 3,670% spread Analytics practice
  20. A moderate correlation, and what it is not Statistics
  21. Reading flight_date before trusting it in flight-delays Data quality
  22. Charting mrr_usd by region Visualization
  23. Reader question — Schema drift, and the contract that prevents it Data engineering
  24. Reading payment_type before trusting it in ride-hail-trips Data quality
  25. Slowly changing dimension, type 2, in short Analytics engineering
  26. Is posting_id + city the grain of data-job-postings? Analytics engineering
  27. Reading region before trusting it in world-indicators Data quality
  28. seats_now by plan: a 25,267% spread Analytics practice
  29. The category that eats the chart Visualization
  30. What remote actually contains in data-job-postings Data quality
  31. The top of sessions is 2.8× the 99th percentile Statistics

July 31

  1. saas-subscriptions.industry: 8 values, 39.8% in the top three Visualization
  2. Writing a SQL engine that fits in a browser tab Visualization
  3. Reading units before trusting it in retail-orders Data quality
  4. A essentially none correlation, and what it is not Statistics
  5. Charting age by site Visualization
  6. Five minutes with seats in saas-subscriptions Data quality
  7. Reader question — A working setup that will not embarrass you Data engineering
  8. Lookback window, in short Data engineering
  9. r = 0.07 between age and bmi Statistics
  10. Reading plan before trusting it in saas-subscriptions Data quality
  11. Is line_no + channel the grain of retail-orders? Analytics engineering
  12. Before you clip the outliers Statistics
  13. What age actually contains in clinical-trial Data quality
  14. release_year by genre: a 0% spread Analytics practice
  15. Charting line_no by country Visualization
  16. Reader question — Designing an experiment that can succeed Experimentation
  17. clinical-trial.adverse_event: 4 values, 97.8% in the top three Visualization
  18. Reading posting_id before trusting it in data-job-postings Data quality
  19. Date spine, in short Analytics engineering
  20. Is ticket_id + priority the grain of support-tickets? Analytics engineering
  21. Five minutes with baseline_score in clinical-trial Data quality
  22. The overall average hides 5 different numbers Analytics practice
  23. Before you clip the outliers Statistics
  24. What queue actually contains in support-tickets Data quality
  25. A strong correlation, and what it is not Statistics
  26. Charting duration_min by borough Visualization
  27. Five minutes with site in clinical-trial Data quality
  28. Is ticket_id + resolved_at the grain of support-tickets? Analytics engineering
  29. Cutting a lesson down — Batch, streaming, and the honest difference Data engineering
  30. Fan-out join, in short Analytics engineering
  31. clinical-trial.site: 6 values, 52.7% in the top three Visualization

June 30

  1. Before you clip the outliers Statistics
  2. Five minutes with release_year in movie-ratings Data quality
  3. Charting distance_km by payment_type Visualization
  4. The overall average hides 4 different numbers Analytics practice
  5. What reading_date actually contains in city-air-quality Data quality
  6. The missing values were the finding Statistics
  7. r = 0.77 between gdp_per_capita_usd and life_expectancy Statistics
  8. fare_usd by borough: a 229% spread Analytics practice
  9. What discount_pct actually contains in retail-orders Data quality
  10. Reader question — The five tests that cover most questions Experimentation
  11. Contract check at the boundary, in short Data quality
  12. What passengers actually contains in ride-hail-trips Data quality
  13. saas-subscriptions.channel: 6 values, 60.9% in the top three Visualization
  14. Is movie_id + rated_at the grain of movie-ratings? Analytics engineering
  15. Before you clip the outliers Statistics
  16. A essentially none correlation, and what it is not Statistics
  17. Five minutes with mrr_usd in saas-subscriptions Data quality
  18. Charting humidity_pct by site Visualization
  19. Reader question — Features, and explaining what the model did Machine learning
  20. Five minutes with converted in ab-test-checkout Data quality
  21. Baseline before model, in short Machine learning
  22. Before you clip the outliers Statistics
  23. What release_year actually contains in movie-ratings Data quality
  24. data-job-postings.remote: 3 values, 100.0% in the top three Visualization
  25. Counting rows is not testing grain Analytics engineering
  26. Reading week12_score before trusting it in clinical-trial Data quality
  27. sessions by variant: a 2% spread Analytics practice
  28. r = 0.00 between flight_no and sched_dep_hour Statistics
  29. What country actually contains in retail-orders Data quality
  30. Charting salary_max_usd by city Visualization

May 31

  1. Reader question — Slowly changing dimensions, and the "as of when" problem Analytics engineering
  2. Five minutes with tip_usd in ride-hail-trips Data quality
  3. Pattern: Bootstrap any statistic Statistics
  4. The category that eats the chart Visualization
  5. Reading population before trusting it in world-indicators Data quality
  6. Counting rows is not testing grain Analytics engineering
  7. The top of week12_score is 1.2× the 99th percentile Statistics
  8. What channel actually contains in saas-subscriptions Data quality
  9. discount_pct by channel: a 280% spread Analytics practice
  10. A moderate correlation, and what it is not Statistics
  11. We were wrong about streaming Data engineering
  12. What price_eur_mwh actually contains in grid-energy-load Data quality
  13. Reader question — Colour is an encoding, not decoration Visualization
  14. Conditional pivot, in short Analytics engineering
  15. Reading dep_delay_min before trusting it in flight-delays Data quality
  16. support-tickets.queue: 5 values, 72.2% in the top three Visualization
  17. Counting rows is not testing grain Analytics engineering
  18. Before you clip the outliers Statistics
  19. What sched_dep_hour actually contains in flight-delays Data quality
  20. A essentially none correlation, and what it is not Statistics
  21. The top of fare_usd is 2.4× the 99th percentile Statistics
  22. Five minutes with genre in movie-ratings Data quality
  23. The overall average hides 5 different numbers Analytics practice
  24. Course note — Facts, dimensions, and picking a grain Analytics engineering
  25. r = 0.73 between distance_km and fare_usd Statistics
  26. Reading genre before trusting it in movie-ratings Data quality
  27. Counting rows is not testing grain Analytics engineering
  28. support-tickets.priority: 4 values, 92.6% in the top three Visualization
  29. Reading company_size before trusting it in data-job-postings Data quality
  30. Is trip_id + payment_type the grain of ride-hail-trips? Analytics engineering
  31. The overall average hides 3 different numbers Analytics practice

April 30

  1. Reading region before trusting it in saas-subscriptions Data quality
  2. retail-orders.channel: 4 values, 83.6% in the top three Visualization
  3. The top of distance_km is 1.7× the 99th percentile Statistics
  4. Five minutes with country in data-job-postings Data quality
  5. Pattern: The grain uniqueness test Data quality
  6. The overall average hides 6 different numbers Analytics practice
  7. Reading fare_usd before trusting it in ride-hail-trips Data quality
  8. The `else` branch that ate 4% of revenue Data quality
  9. Cutting a lesson down — Monitoring data, not just jobs Data platform
  10. Pattern: Idempotent window replace Data engineering
  11. retail-orders.country: 8 values, 61.5% in the top three Visualization
  12. What surge_multiplier actually contains in ride-hail-trips Data quality
  13. r = 0.03 between humidity_pct and vibration_mm_s Statistics
  14. Cutting a lesson down — Correlation, confounding, and Simpson's paradox Statistics
  15. What carrier actually contains in flight-delays Data quality
  16. Is order_id + country the grain of retail-orders? Analytics engineering
  17. The left join that became an inner join, in short Analytics engineering
  18. Before you clip the outliers Statistics
  19. flight_no by origin: a 8% spread Analytics practice
  20. What revenue_usd actually contains in retail-orders Data quality
  21. r = 0.00 between temp_c and rpm Statistics
  22. Course note — The first hour with an unfamiliar dataset Data quality
  23. Pattern: The left join that became an inner join Analytics engineering
  24. The category that eats the chart Visualization
  25. Is movie_id + user_id the grain of movie-ratings? Analytics engineering
  26. Reading ticket_id before trusting it in support-tickets Data quality
  27. The top of salary_max_usd is 1.2× the 99th percentile Statistics
  28. The overall average hides 2 different numbers Analytics practice
  29. Five minutes with temp_c in sensor-telemetry Data quality
  30. r = 0.56 between duration_min and tip_usd Statistics

March 31

  1. Course note — Choosing the form before the colours Visualization
  2. Baseline before model, in short Machine learning
  3. Is device_id + site the grain of sensor-telemetry? Analytics engineering
  4. Before you clip the outliers Statistics
  5. Reading is_returning before trusting it in ab-test-checkout Data quality
  6. first_response_min by priority: a 1,095% spread Analytics practice
  7. r = 0.98 between seats and seats_now Statistics
  8. What temp_c actually contains in grid-energy-load Data quality
  9. Reader question — Correlation, confounding, and Simpson's paradox Statistics
  10. Bootstrap any statistic, in short Statistics
  11. What ticket_id actually contains in support-tickets Data quality
  12. bmi by site: a 3% spread Analytics practice
  13. The chart builder is live, and it refuses to do things Visualization
  14. Is user_id + rated_at the grain of movie-ratings? Analytics engineering
  15. Five minutes with reading_at in sensor-telemetry Data quality
  16. The top of seats_now is 1.5× the 99th percentile Statistics
  17. r = 0.01 between age and week12_score Statistics
  18. What pickup_at actually contains in ride-hail-trips Data quality
  19. Cutting a lesson down — Slowly changing dimensions, and the "as of when" problem Analytics engineering
  20. Merge with a recency guard, in short Data engineering
  21. What genre actually contains in movie-ratings Data quality
  22. vibration_mm_s by status: a 191% spread Analytics practice
  23. Is flight_no + origin the grain of flight-delays? Analytics engineering
  24. What company_size actually contains in data-job-postings Data quality
  25. Before you clip the outliers Statistics
  26. r = -0.02 between humidity_pct and rpm Statistics
  27. Reading year before trusting it in world-indicators Data quality
  28. Course note — Uncertainty, sampling, and how much to trust a number Statistics
  29. Is line_no + order_id the grain of retail-orders? Analytics engineering
  30. What load_mw actually contains in grid-energy-load Data quality
  31. Sessionisation, in short Analytics engineering

February 29

  1. Before you clip the outliers Statistics
  2. Is device_id + reading_at the grain of sensor-telemetry? Analytics engineering
  3. Five minutes with temp_c in grid-energy-load Data quality
  4. The overall average hides 3 different numbers Analytics practice
  5. r = 0.09 between duration_min and surge_multiplier Statistics
  6. What vibration_mm_s actually contains in sensor-telemetry Data quality
  7. Reader question — Facts, dimensions, and picking a grain Analytics engineering
  8. Pattern: Sessionisation Analytics engineering
  9. Before you clip the outliers Statistics
  10. We shipped a Simpson's paradox to the exec team Statistics
  11. Five minutes with vibration_mm_s in sensor-telemetry Data quality
  12. seats_now by region: a 20% spread Analytics practice
  13. A essentially none correlation, and what it is not Statistics
  14. What variant actually contains in ab-test-checkout Data quality
  15. Course note — Describing a column without lying Statistics
  16. The grain uniqueness test, in short Data quality
  17. Five minutes with no2_ppb in city-air-quality Data quality
  18. Counting rows is not testing grain Analytics engineering
  19. Before you clip the outliers Statistics
  20. Five minutes with prior_therapy in clinical-trial Data quality
  21. rating by genre: a 16% spread Analytics practice
  22. A essentially none correlation, and what it is not Statistics
  23. What churned_at actually contains in saas-subscriptions Data quality
  24. Cutting a lesson down — Turning a request into a question Analytics practice
  25. Counting rows is not testing grain Analytics engineering
  26. The top of gdp_per_capita_usd is 1.4× the 99th percentile Statistics
  27. What seats_now actually contains in saas-subscriptions Data quality
  28. A proportion with an interval, in short Statistics
  29. The overall average hides 3 different numbers Analytics practice

January 31

  1. Five minutes with posting_id in data-job-postings Data quality
  2. A weak correlation, and what it is not Statistics
  3. Reader question — Communicating a result to someone who will not read your notebook Visualization
  4. Five minutes with device in ab-test-checkout Data quality
  5. Counting rows is not testing grain Analytics engineering
  6. sched_dep_hour by dest: a 8% spread Analytics practice
  7. What temp_c actually contains in sensor-telemetry Data quality
  8. r = -0.25 between temp_c and wind_mw Statistics
  9. Is account_id + industry the grain of saas-subscriptions? Analytics engineering
  10. What country actually contains in data-job-postings Data quality
  11. r = 0.11 between sched_dep_hour and dep_delay_min Statistics
  12. Cutting a lesson down — One metric, one definition Analytics engineering
  13. Five minutes with trip_id in ride-hail-trips Data quality
  14. seats by industry: a 53% spread Analytics practice
  15. Is flight_no + dest the grain of flight-delays? Analytics engineering
  16. A timezone bug that cost us three days Data engineering
  17. Reading solar_mw before trusting it in grid-energy-load Data quality
  18. Pattern: Anti-join Analytics engineering
  19. Cutting a lesson down — The anatomy of a silent failure Data quality
  20. The overall average hides 14 different numbers Analytics practice
  21. Reading hour_at before trusting it in grid-energy-load Data quality
  22. A strong correlation, and what it is not Statistics
  23. Cutting a lesson down — A working setup that will not embarrass you Data engineering
  24. What dropped_out actually contains in clinical-trial Data quality
  25. Counting rows is not testing grain Analytics engineering
  26. mrr_usd by region: a 21% spread Analytics practice
  27. r = 0.08 between population and life_expectancy Statistics
  28. Reading prior_therapy before trusting it in clinical-trial Data quality
  29. Course note — Reading a result without fooling yourself Experimentation
  30. Counting rows is not testing grain Analytics engineering
  31. The overall average hides 6 different numbers Analytics practice

Back to the blog