← All Kits

Analyst Guides & How-Tos

131 beginner-friendly guides · Part of the Analyst Prep Kit

A growing library of plain-language guides for people learning data analysis. Some are step-by-step how-tos for getting set up; others explain the SQL and analysis concepts that quietly trip up beginners on the job and in interviews. All of them are written why-before-how, with small examples you can copy.

The sections run roughly from getting set up to the judgment calls that come later, so reading top to bottom works. If you already know what you are stuck on, filter for it.

One word works better than a phrase. Try pivot, join, leading zeros, duplicates. Results update as you type; press / to jump here.

Nothing matches that.

Try one word instead of a phrase, or the name of the thing itself: pivot, join, null, encoding, duplicates, DAX. Or show all guides.

Not sure where to start?

My picks, not a ranking. Each one answers a question that comes up in the first month. All of them appear again in the sections below.

Get something to practise on

The SQL that turns up in every job and every interview

The Excel that shows up on day one

Not being the person who got the number wrong

Start here

If you are brand new, read this one first. The rest of the library goes deeper on parts of it.

Type first, read after2

Some of this lands better once your hands have already done it. Write the queries first, then the guides below explain what you were typing.

Getting set up17

The practical, do-this-once how-tos every analyst needs early.

How to Set Up a SQL Database (No Server, 15 Minutes)

Turn a CSV file into a real SQL database in about 15 minutes with two desktop tools. Written for complete beginners.

Where to Get a Sample Database to Practice SQL

One CSV cannot teach you joins. Download an 11-table database, run the query that proves it loaded, then watch 412 rows become 2,240.

How to Install Python for Data Analysis

The install is easy. The trap is that pip put pandas in one Python and your script ran a different one. Anaconda or python.org, answered in one question.

How to Set Up Jupyter Notebook

Three programs wearing one window: browser, server and kernel. Knowing which is which explains the missing environment, the port already in use, and the notebook that only works on your machine.

How to Install Tableau Public

Tableau ships two free desktop apps with nearly the same name, and only one can publish your portfolio. The comparison, the 15 million row ceiling, and what publishing really uploads.

Where to Find Free Datasets to Practice With

Eight sources worth a bookmark, and the five-minute screen that tells you whether a file can teach you anything before you give it a week.

How to Practice SQL Online With Nothing Installed

Real queries in a browser tab in thirty seconds. Five tools compared, and the question none of them puts on the front page: whether your data leaves your machine.

How to Connect Excel to a SQL Database

Four clicks to a table that refreshes itself instead of being pasted. The Power Query path, the SQLite gap, and why the file fails on a colleague's machine.

How to Install Power BI Desktop

The Microsoft Store route needs no administrator rights and the direct download does. Real system requirements, the display setting that hides buttons, and the Mac answer.

How to Connect Python to a SQL Database

Three lines from a database file to a labelled DataFrame, with real output. Cursors versus read_sql, placeholders instead of f-strings, and the same code against Postgres.

How to Import a CSV into Power BI

Three dropdowns decide how every number, date and accented character is read. Plus the columns=x step that silently ignores new source columns forever.

How to Set Up DuckDB

One install command, then put the filename where the table name goes. SQL on a CSV with no import step, and a whole folder of files as one table.

How to Export SQL Results to CSV and Excel

Your export is fine. Double-clicking it is what strips the leading zeros and mangles the accents. The proof in raw bytes, the one-flag fix, and four checks before you send.

How to Install PostgreSQL for Beginners

Not a file you open, a service you connect to. The four facts every tool asks for, and an honest answer about whether you need a database server yet.

How to Connect Tableau to Your Data

Connecting sorts every column into dimensions or measures, and that split decides what each chart can do. Includes what the free editions can and cannot reach.

How to Handle Large Datasets (Files Too Big for Excel)

What to do when a dataset is too big to open: use a database, index the key, sample first, and watch for the quirks that trip everyone up.

Git and GitHub for Analysts

The everyday Git loop, starting a repo, publishing with GitHub Pages, and fixing the five errors that catch everyone. For analysts, not software engineers.

Building and presenting3

Turning finished analysis into something a room full of people can follow.

Tableau

How Tableau actually thinks, one idea at a time. Start with concepts if the vocabulary is new.

Tableau Sets: What IN and OUT Actually Mean

A set does not remove rows, it labels every row IN or OUT and keeps both halves. Fixed against dynamic, why a set is not a filter or a group, combining sets, and the reuse detail people miss on the exam.

Tableau Hierarchies: One Drag Puts a Drill-Down on Every Chart

Drop one field on another and Tableau builds a hierarchy, which puts plus and minus drill controls on every view that uses it. How to build one, why the order matters, and how a hierarchy differs from a group, a set and a bin.

Tableau Aliases: Rename What Readers See Without Touching the Data

An alias renames the members of a discrete dimension so a chart says East instead of E. Why measures, dates and continuous dimensions cannot have one, how aliases differ from renaming a field, and the published data source limit.

Tableau Sorting: A Rule That Re-Runs, or an Order You Froze

The four Tableau sort options, and the one question that separates them: does this sort re-evaluate when new data arrives? Includes the alphabetic sort that puts Item 10 before Item 2, and how nested sorts behave when you drill.

Tableau Relationships: What the Noodle Actually Does

Why a relationship keeps tables separate, how that stops a $50,000 target reading as $4,150,000, where joins and unions moved to, and what the cardinality and referential integrity settings actually promise.

Your Tableau Dashboard Needs Two or Three Views, Not Eight

Tableau's own guidance is to limit a dashboard to two or three views. How to pick which sheets survive, where the important one goes, and how to choose between fixed, automatic and range sizing.

Tableau Dashboard Extensions: What They Add, and What They Can Read

An extension is a third-party web application running inside your dashboard. The two hosting kinds, what each permission level gives access to, how to add one, and the print behaviour that catches people out.

Tableau Desktop Foundations Exam: 40 Questions, and 20 Right Passes It

The exam facts from Salesforce's own guide: 40 scored questions plus up to five unscored, 70 minutes, 48% to pass, four domains weighted 23/37/25/15, testing on Tableau 2022.3. What that arithmetic says about where to study.

SQL concepts27

The small pieces of SQL that show up in every interview and every dataset.

Customer Segmentation in SQL With CASE WHEN

Aggregate to one row per customer, label with CASE, group by the label. Three of twelve customers turn out to be 46% of the spend, and swapping two conditions makes that whole tier vanish with no error.

How to Reconcile Two Tables in SQL When the Row Counts Match

Sixteen rows against sixteen, and four hundred missing. The full outer join that finds what is on one side only, the value comparison for matched rows, and the fingerprint that narrows a large table down.

Temp Table vs View in SQL: A Saved Answer or a Saved Question

A view stores the query and re-runs it on every read; a temp table stores the rows. Measured at 467.6 ms against nothing, and after a hundred rows arrived only one of the two noticed.

When to Index a Table: A Practical Guide for Analysts

Read the plan, add the index, measure. One index took a lookup on 500,000 rows from 90.9 ms to 0.2 ms, wrapping the column in a function threw it away, and three indexes made writes seven times slower.

Funnel Conversion in SQL, and the Step That Shows 100%

Conditional aggregation gives the whole funnel in one row. Then the check: a checkout converting at 100% turned out to be one session in ten going round it, which moved conversion from 30% to 20%.

Cohort Retention Analysis in SQL, Step by Step

Four short queries to a retention triangle, why the lower-right cells must stay empty rather than become zeros, and the two definitions of retained that give 50% and 33.3% for the same cohort.

Running Total in SQL: The Window Frame That Decides the Answer

SUM OVER ORDER BY accumulates, and the frame clause nobody types decides how. On a column with ties the default gave six of sixteen rows a total that included the row below them.

Subquery vs CTE in SQL: Same Logic, One You Can Check

The four places a subquery can go, the correlated one that runs once per row, the NOT IN that returns zero rows because the list held a NULL, and why a named step gives you a row count a nest cannot.

SQL Date Functions: How to Group by Month Without Losing One

DATE_TRUNC snaps every date to the first of its month, which is what lets GROUP BY work. Half-open period filters, the calendar that makes an empty month appear, and two engines that disagree about 31 January plus a month.

SQL Foundations, Start to Finish

Every core SQL idea in the order they build on each other: grain, the six clauses and the order they really run in, NULL, filtering, aggregation, GROUP BY and HAVING, joins, CASE, CTEs, window functions, keys and indexes. Written to be listened to.

How to Comment SQL So It Teaches

A complete commenting format: a boxed WHY header, a read-out-loud block that paraphrases every clause in order, and a clean query with no inline comments. Full before and after.

SQL JOINs: How to Join Two Tables Without Losing or Doubling Rows

The pair rule that predicts any join's row count, all six join types, the silent delete and the silent multiply, the anti-join, and the two counts that catch each failure. Worked on 41 million rows.

GROUP BY and HAVING: How to Summarize Rows Without Getting a Fake Answer

What grouping does to your grain, which columns you may select afterwards, why WHERE and HAVING sit on opposite sides of the grouping step, and the floor that stops a category of eleven records topping your chart. Worked on 82,956 games.

SQL CTEs: How to Build a Query in Steps You Can Check

The WITH syntax, how to stack named steps, and how to count each one before the next runs. A real four-step definition that narrows 82,956 games to 175, with the row count visible at every stage.

SQL Window Functions: How to Get the Top Row Per Group

OVER and PARTITION BY, the three ranking functions and how each treats a tie, a running total that checks itself, and LAG for year over year. The query GROUP BY cannot write, on a real 175-game list.

SQL Aliases: How to Read a Query Out Loud

What AS actually changes, why tables get one-letter nicknames, and the scope rule that makes an alias work in ORDER BY and fail in WHERE. With the literal sentence to say for every shape.

COUNT in SQL, Explained for Beginners

COUNT(*) vs COUNT(column) vs COUNT(DISTINCT) — what each one really counts, why NULLs matter, and how analysts use COUNT to verify migrations and audit data.

How to Comment in SQL

The two comment syntaxes, where each one goes, the two ways commenting out a line quietly breaks a query, and the one-character habit that prevents both.

SQL Comment Syntax by Database

The comment character in every major database, in one table. Why # is MySQL only, why MySQL rejects --note, and why PostgreSQL is the one place block comments nest.

COMMENT ON TABLE

The other thing called a comment. How to store a table or column description inside the database itself, where the next analyst will actually find it.

Which SQL Database Should You Install?

One question decides between a database that is a file and a database that is a server. SQLite, DuckDB, PostgreSQL, MySQL and SQL Server, and how much of what you learn transfers.

The SQL CASE Expression, Explained for Beginners

CASE WHEN, THEN, ELSE, END — how SQL's if/else really works, taught with a real data-cleaning problem from Billboard chart history.

Entity Resolution: One Real Thing, Many Messy Names

Why one artist appears under seven spellings, how normalization rules get built and tested, match rates, and when not to merge.

How SQL and Python Work Together

When do you need SQL, when do you need Python, and how do they hand off to each other? Explained with a real project that uses both.

How to Find Duplicate Rows in SQL (and Decide What Counts as One)

The GROUP BY HAVING pattern that lists every duplicate, a ten-second COUNT test for any table, and why analysts mark extras instead of deleting them.

NULL in SQL: Why = NULL Finds Nothing and What to Write Instead

NULL means unknown, and a comparison with unknown is never a yes. IS NULL, the NOT IN trap that returns zero rows, COALESCE, and how NULLs quietly move your averages.

Month-over-Month Growth in SQL: LAG, the Growth Formula, and the Traps

Aggregate to one row per month, then LAG to look back. The integer division trap, and the skipped month that makes SQL report a fake 30.6% drop.

Data migration17

Moving a client from the system they have to the system they bought: the eight stages, and the project management half nobody teaches.

What Data Migration Actually Is

What the work is, the vocabulary you will hear, the tools it runs on, and the two failures that cost the most.

The Eight Stages of a Data Migration

The whole shape of a migration on one page, with the checkpoint that has to close before each next stage starts.

Stage 1: Kickoff and Scope

The four questions that define the project, and why the exclusion list matters more than the inclusion list.

Stage 2: Profile the Source

The seven checks to run on every extract, and how each finding becomes a rule, a scope decision, or a risk.

Stage 3: Map the Fields

What each mapping row needs, what to do with fields that have no home, and why nothing moves until it is signed off.

Stage 4: Clean and De-dupe

What a rule can safely fix, what has to go to the client, and how to de-duplicate without merging real records.

Stage 5: The Dry Run

A full load into a sandbox, the four reconciliation checks, and why a manual fix means you are not finished.

Stage 6: User Acceptance Testing

Give named people named records and a named question. Vague invitations produce silence, and silence becomes a dispute.

Stage 7: Freeze, Cutover, Bridge

The freeze, what staff do during the gap, and the bridge import that catches everything created in between.

Stage 8: Hypercare and Close

What actually surfaces after go-live, the final reconciliation report, and a handoff that does not feel like abandonment.

One Migration, Start to Finish

A whole engagement day by day: eight gates, the email that closed each one, four change requests with what each cost, and the paper trail at the end.

Ask the Right Questions First

What success looks like, who signed, who decides, what the recovery plan is, and what happens to work created during the gap.

What Goes Wrong, and What It Costs

Six failures, the cheap check that catches each one early, and the expensive version that catches it late.

When the Client Goes Quiet

An escalation ladder that works, the wording for each rung, and the evidence trail that protects you if the delay is reviewed.

Scope Creep and the Project Plan

Answer every change request with its impact on the plan, never with yes or no.

The Emails That Keep a Migration Moving

Four emails and the four parts every one of them carries: your actions, our actions, the plan, and the impact of delay.

Keeping Your Own Files Straight

One folder per stage, dates at the front of names, never overwrite an extract, and keep every rejected rows file.

Excel for business analysts36

One concept per guide, worked on small tables you can check by hand or on 82,956 real rows.

Absolute vs Relative References in Excel: What the Dollar Sign Locks

Excel stores the distance to a cell, not its address, which is why a copied column can be wrong while its first row is right. The failure worked end to end, the four F4 states in order, mixed references, and when you need no dollar sign at all.

How to Make a Pivot Table, and Read the Answer It Gives You

Four clicks to a summary, then the settings that decide whether it is right: what Rows and Values really do, the function Excel picks for you, Show Values As, grouped dates, and the refresh that never happened.

INDEX MATCH vs VLOOKUP: The Lookup That Survives a New Column

MATCH turns a name into a position, INDEX turns a position into a value. The answer that sits to the left, the hard-coded number that goes stale, and the fourth argument that returns 85 where the answer is 220.

How to Use IFERROR in Excel, and What It Quietly Hides

IFERROR catches every error, not just the one you meant. The choice between 0 and blank changes an average from 77.5 to 103.3, and hiding four unmatched rows moved a reported margin from 38.6% to 47.5%.

Excel Tables vs Ranges: What Ctrl+T Actually Changes

A range is a set of coordinates; a table knows where its own edges are. One added row takes the table total to 10,990 and leaves the fixed range stuck at 9,890, with nothing on the sheet to say which you are reading.

How to Clean Messy Data in Excel: TRIM, CLEAN and the Space You Cannot See

Two cells both read North and one of them is six characters long. LEN and CODE to find it, the space TRIM will not remove, the line break CLEAN welds shut, and the 865 that left a regional total.

Excel Dates: Serial Numbers, Text That Looks Like a Date, and How to Fix It

A date is the number 46027 wearing a format. The two-second test for text pretending to be a date, three ways to convert, why 1/1/29 is 2029 and 1/1/30 is 1930, and the leap day that never existed.

Remove Duplicates in Excel Without Losing Data

The columns you tick are your definition of duplicate, and the dialog only reports a count. Ticking one box took 21 of 56 units off a table, and five of them were a real order that shared a number.

Conditional Formatting Based on Another Cell

The rule is written for the top-left cell and filled like a formula, so one dollar sign is the difference between four coloured cells and four coloured rows. Plus thresholds in cells, rule order, and rules that breed.

Excel Drop Down Lists and Data Validation, and the Paste That Removes Them

Four clicks to a dropdown, a table column as the source so it grows, dependent lists, and the gap nobody mentions: an ordinary Ctrl+V leaves the cell holding a forbidden value and holding no rule.

Power Query for Beginners: The Steps That Run Again Next Month

It is not a cleaning tool, it is a recording of one. The Applied Steps pane, the unpivot that turns a four-by-four report into sixteen usable rows, append and merge, and the load choice that keeps a workbook tidy.

Excel Dynamic Arrays: FILTER, UNIQUE and SORT in One Formula

A formula can return more than one value, and Excel puts the rest in the cells below. The three functions worth learning first, AND and OR done with arithmetic, the A1# reference, and what #SPILL! and #CALC! mean.

Nested IF vs IFS in Excel: The Order That Silently Relabels Your Data

IFS takes the first condition that is true, not the best match. Swapping two conditions moved four orders and 3,710 of revenue into the wrong band with no error, and left every total correct.

SUMPRODUCT Explained: Multiply Down, Then Add

The average price in the column is 132.81 and the price the business actually got is 97.92. Weighted averages, conditions as ones and zeros, counting with the double minus, and the jobs SUMIFS cannot do.

Month-over-Month Growth in Excel, and the Month That Is Not There

A month with no sales never becomes a row, so the growth column quietly compares May with March and reports a calm -6.0%. The calendar table that fixes it, and the divide by zero it exposes.

VLOOKUP vs XLOOKUP: Which One to Use, and How to Switch

VLOOKUP has three ways to hand you a wrong value without an error. What each one looks like, how XLOOKUP's arguments remove all three, and when you still need to read VLOOKUP anyway.

SUMIFS and COUNTIFS: Add Up Only the Rows That Match

Filter and sum in one formula. Why SUMIF and SUMIFS put the sum range in opposite places, criteria in quotes, and the check that catches a wrong total before anyone else does.

Build a Dashboard in This Order: Correct, Then Clear, Then Compelling

Eight steps, three passes, and the reason checking the numbers is step four rather than step nine.

Label Your Rows Before You Chart Them

A filter hides rows and loses the comparison. A label keeps every row and makes the chart possible. One nested IF, checked with COUNTIF, on 82,956 real rows.

Check Your Work Before Anyone Else Does

Wrong Excel does not crash, it returns a confident number. When to check, where the check lives, and why the expected number gets written down before you look.

Name Your Data So Your Formulas Stop Breaking

Ctrl+T and a real name, and every formula after it reads like a sentence, fills itself down, and survives new rows. Structured references from a real 82,956-row build.

The Dialog That Quietly Deletes Your Zip Codes

Why Excel turns 08053 into 8053 and gene names into dates, and the import habit that stops it: Data, From Text/CSV, identifier columns declared Text at the door.

A Pivot Table Is a Question, Not a Report

Rows is what you group by, Values is what you count. Say the question as a sentence and the field list stops being four boxes of dread. Built on the real 82,956-row pivot.

Excel Just Summed Your ID Numbers and Said Nothing

Drop a column into Values and Excel picks Sum, even for ID codes. The one-line test: would adding two of these together mean anything? Caught four times in one real build.

Percentages Are the Whole Story and Excel Hides Them

Right-click, Show Values As, and the real decision hiding inside it: which total is the denominator. 175 games is a count nobody feels. 22.9% of everything loved is a finding.

Show the Unit Without Breaking the Number

Ctrl+1, Custom, and 21.1919 displays as 21.2x while the cell still calculates. Typing the unit turns a number into text and a SUM somewhere quietly skips it.

Pick the Chart Your Number Already Decided

Compare takes a bar, trend takes a line, relate takes a scatter. Say the question's verb and the chart picks itself, with the pie's one honest job and Cleveland and McGill underneath.

Chart Design Basics: Take Things Away, Then Point

Delete every element whose job another element already does, grey the context, and spend the one accent color on the subject, even when the subject is the small bar.

One Row at a Time, or All Rows at Once

IF labels one row and builds a column. COUNTIF, SUMIF and AVERAGEIF sweep every row and hand back one number. The distinction, plus the AVERAGEIFS division behind the 21.2x finding.

Four Numbers Across the Top Do More Than Four Charts

The KPI row: what earns a spot (load-bearing for the claim), narrative order with the punch last, and why every cell is a formula that can disagree with the data, never a typed value.

Sort Your Bar Chart or It Means Nothing

Alphabetical order answers a question nobody asked. Sort descending at the pivot and the chart becomes a ranking, with the one exception for categories that carry their own order.

The Finding That Was Just Your Own Definition

0% hidden in the $20+ band looked like a discovery. Hidden was defined as under $20. The one-sentence audit that catches circular results, and why clean numbers are the tell.

The Names Came In as Gibberish and Excel Said Nothing

4,685 of 82,956 names corrupted and nothing errored. The three-character signature, the File Origin 65001 fix at import, and why it is data loss dressed as a font problem.

Make One Control Drive Every Chart on the Page

Insert Slicer is two clicks. Report Connections is the step everyone misses, and it is the moment a sheet of charts becomes a dashboard that answers follow-up questions without you.

Write the Sentence Your Dashboard Is Arguing

A claim, not a list: one sentence with a number in it, at the top of the page, editing everything below it. The fork it settles, and what it means when the sentence will not come.

Financial analysis5

The finance an analyst is asked for without warning: margins, ratios, break-even, and whether a project is worth funding.

Power BI and Python13

The two tools most job posts name after Excel and SQL, one deciding concept at a time.

Row-Level Security in Power BI: Who Gets Filtered and Who Does Not

A regional manager assigned to the East role reads 9,890 where 3,040 was intended, because her workspace role is Member. Roles are a union, not an intersection, and every test you can run from your own desk passes anyway.

SUM vs SUMX in DAX: Why a Row-by-Row Calculation Needs an Iterator

Sixteen orders total 9,890, and the measure that compiles reports 214,625. Multiplying two totals adds all 256 quantity-and-price pairings, and every single-row check still passes.

Calculated Column vs Measure in Power BI: The Rule That Decides

A margin column summed over four rows reports 120% where the real margin is 21.4%. One question decides column or measure, with arithmetic you can check by hand.

CALCULATE and Filter Context in DAX, Explained on Sixteen Rows

One measure returns 5,060 in every row of a product table and four different numbers in a region table. The add-or-overwrite rule that explains both, plus KEEPFILTERS, REMOVEFILTERS and context transition.

DAX Time Intelligence: DATEADD, TOTALYTD and the Month That Is Not There

Without a date table the report skips April and calls May a 6 percent drop on March. With one, DATEADD works, YTD reaches 9,890, and April shows as the minus 100 percent it was.

Star Schema in Power BI: Why One Flat Table Cannot Answer the Question

Lamps are the smallest product line at 1,600 of 9,890 and the highest margin at 45.0 percent. Fact against dimension, the relationship settings that matter, snowflakes, and role-playing dates.

SWITCH TRUE in DAX: Segmentation, and the Band That Never Appears

Three revenue bands holding 6, 6 and 4 orders. Swap two conditions and it becomes 0, 12 and 4, the totals still reconcile, and nothing errors. The check that catches it takes one glance.

pandas pct_change and cumsum: Percent Change and Running Totals

groupby returned four months and a tidy -6.0%; resample returned five, an empty April at -100% and an infinity. Plus cumsum, share of total, rolling averages and the two assertions that close it.

pandas drop_duplicates: keep='first', and the Row It Chose For You

Eight rows return seven, five or two depending on two keywords, and the units total moves from 35 to 37 on the choice of keep alone. Plus why the same table de-duplicates differently in Excel.

Handling Missing Values in pandas: dropna, fillna and What Each One Claims

Seven missing cells cost four whole rows to a bare dropna. Filling with zero moved the mean from 5.29 to 4.63, filling with the mean left it alone and shrank the spread, and a sentinel value hid from every check.

pandas merge: Left Join, Inner Join, and the One That Doubled the Revenue

The four hows and the rows each keeps, indicator to see which side matched, and one duplicate in a three-row lookup that took 16 rows and 9,890 to 23 rows and 14,950 with no error at all.

pandas read_csv: Your First DataFrame, and What It Guessed

08053 loaded as 8053, a money column stayed text and its sum came back glued together instead of added. The four arguments that stop the guessing, and the six lines that tell you whether you needed them.

pandas GroupBy: How to Summarize a DataFrame Without Losing Track of Your Rows

groupby, agg, size vs count, transform, and the default that silently drops rows with a missing group. Worked on one 14-row table you can follow line by line.

Statistics and charts11

Reading numbers honestly, and putting them in front of people honestly.

Mean vs Median: When to Use Each, and When the Answer Changes

One mistyped order moves the mean 337.50 and the median 30. How each average is built, the question that picks between them, and a four-region ranking where the top spot changes hands.

Standard Deviation in Everyday Words

Built by hand from sixteen orders: why the distances sum to zero, why you square them, why the divisor is 15 and not 16, and what a standard deviation of 236.81 tells you that the average cannot.

Percentiles, the IQR and the 1.5 Outlier Rule

Quartiles by hand on sixteen orders, the fence that flags a mistyped row while leaving the real large orders alone, and why the same percentile comes out differently in Excel, SQL and pandas.

What Is a P-Value? Worked by Shuffling Nine Orders 126 Ways

Two regions differ by 168.50, and 45 of the 126 possible reshuffles beat that by chance. A p-value computed by counting, plus the four things it is routinely claimed to mean and does not.

Confidence Intervals and the Margin of Error

An average of 618.13 on sixteen orders is really 491.94 to 744.31. How the margin of error is built from four numbers, what the 95 percent actually refers to, and the three readings that are wrong.

A/B Testing for Analysts: Sample Size First, Result Second

Detecting a 20 percent lift on a 4 percent baseline needs 10,317 visitors per arm. A simulated test where nothing is happening declares a winner 24 percent of the time if you watch it run.

How Charts Mislead: Eight Distortions on One Real Table

East out-sells West by 1.8 times. Start the bar axis at 1,600 and the same two bars claim 16.9 times. Truncated axes, percentage points, cherry-picked windows, pies, area, dual axes and log scales.

Moving Averages: Smoothing Without Smoothing Away the Truth

A three-week window cuts the wobble from 237 to 101 and a five-week one to 62. Picking the window from the cycle, trailing against centred, and the missing weeks that get averaged straight across.

Forecast Accuracy: MAE, RMSE, MAPE and the Month That Broke One

Five measures on the same forecast. MAPE returns infinity because one month has no orders, RMSE is nearly twice MAE, and MASE says the plan beat the do-nothing baseline by half.

Correlation vs Causation: The Three Explanations for Any Pattern

Ice cream sales and drownings correlate at r = 0.86, until you hold temperature still and it drops to 0.10. The three explanations to say out loud before acting on any pattern.

How to Choose the Right Chart: One Question About Your Data

Ask what the reader must compare: categories, time, a relationship, or parts of a whole. One question, four answers, a decision table, and why a nine-slice pie fails.

Operations analytics1

Measuring how work moves through a process, and finding where it gets stuck.

Thinking like an analyst6

The judgment calls that separate a beginner from someone who can defend their work.

↑ Back to the top

Every guide here answers one question. The habit underneath them is the same one.

Thinking Like an Analyst is 64 pages on how an analyst frames a question, checks their own work and writes up what the numbers do not settle.

Thinking Like an Analyst, $19 →
Ready to practice, not just read?

The Analyst Prep Kit teaches SQL, Excel, Python, Power BI, Tableau, and statistics with worked examples, live in-browser labs, flash cards, and mock exams. Nothing to install.

Open the Analyst Prep Kit →