Throughout the course you have worked "by hand": formulas, tables and a calculator. That was deliberate — whoever understands the calculation understands the result — but in daily work nobody adds up 33,000 receipts with a pencil. This final lesson is the bridge to real work: an honest survey of the tools statistics is done with in a company, from the spreadsheet (which goes much further than people tend to believe) to Python and R (which begin where the spreadsheet runs out), by way of classic statistical software and the sensible use of generative AI. You will see NovaMarket's analysis reproduced with spreadsheet formulas, a first annotated contact with pandas and scipy, and criteria for choosing a tool for each task. And, since it is the last lesson, it also closes the course: the road you have travelled and where to go next.

Contents

  1. The map: which tool for which task
  2. The spreadsheet as a first serious tool
  3. NovaMarket in formulas: the whole course in one sheet
  4. Pivot tables: frequencies and cross-tabs without formulas
  5. Where the spreadsheet ends
  6. Python with pandas and scipy: the next step up
  7. R: the other great path
  8. Classic statistical software: SPSS, Stata, jamovi and JASP
  9. Generative AI as an analysis assistant
  10. A reproducible workflow
  11. Closing the course: the journey, what you can do now, and next steps

The map: which tool for which task

There is no "best" tool: there are better or worse matches between the task, the data volume and the profile of whoever is analysing.

Tool Ideal for Falls short when Learning curve
Spreadsheet Descriptives, CIs, t-tests and chi-square, quick charts, data < ~100,000 rows Repeatable analyses, large data, advanced methods Low (you already use it)
jamovi / JASP Every test in this course with menus and clean output, free Automation, very large data Low
SPSS / Stata The same, the standard in academia and consulting Budget (licences), flexibility Medium
R Any statistical method in existence; publication-quality graphics Anyone unwilling to write any code Medium-high
Python (pandas/scipy) Statistics + automation + integration with systems and ML Very niche statistical methods (R gets there first) Medium-high

The natural trajectory for a business professional runs top to bottom: truly master the spreadsheet, try jamovi/JASP when menus help, and make the jump to Python or R when repetition or volume demands it.

The spreadsheet as a first serious tool

Excel, Google Sheets and LibreOffice Calc share (under near-identical names — localized versions exist in other languages, but the English names below are the reference) a statistical arsenal that covers most of this course. The following table is your map back: each function, with the lesson where you learned what it means.

Function What it calculates Lesson
AVERAGE, MEDIAN, MODE.SNGL Central tendency 02-01
STDEV.S, VAR.S Sample standard deviation and variance (divisor \(n-1\)) 02-02
PERCENTILE.INC, QUARTILE.INC Percentiles and quartiles 02-03
COUNTIF, FREQUENCY Frequencies 02-04
BINOM.DIST, POISSON.DIST Binomial and Poisson probabilities 04-01, 04-03
NORM.DIST, NORM.INV Probabilities and percentiles of the normal 04-02
CONFIDENCE.T Half-width of the CI for the mean (t) 05-02
T.TEST, Z.TEST p-value of t and z tests 05-03
CORREL Pearson correlation 06-01
SLOPE, INTERCEPT, RSQ, LINEST Linear regression 06-02
CHISQ.TEST Chi-square p-value (observed vs expected) 06-04
FORECAST.LINEAR, FORECAST.ETS Forecasting (linear / smoothing with seasonality) 07-01

On top of that, Excel's free Data Analysis add-in (the Analysis ToolPak) adds ANOVA, multiple regression with its full output, and histograms — with it, the spreadsheet covers a good part of modules 6 and 7 as well.

NovaMarket in formulas: the whole course in one sheet

Suppose the receipts sheet holds 500 receipts from Madrid-Centro: amounts in A2:A501 and, in B2:B501, the channel (in-store/online). This is how the course's work is reproduced, formula by formula:

  • Descriptives (module 2):
    • Mean: =AVERAGE(A2:A501) → €32.40
    • Standard deviation: =STDEV.S(A2:A501) → €21.50 (note the .S for sample; STDEV.P would divide by \(n\) and give the population version)
    • Median and P90: =MEDIAN(A2:A501), =PERCENTILE.INC(A2:A501,0.9)
    • CV: =STDEV.S(A2:A501)/AVERAGE(A2:A501) → 0.66: the huge relative dispersion of receipts, an old acquaintance.
  • Probability (module 4): what is the probability that a store sells less than €40,000 in a day, with \(N(43,983;\ 6,200)\)? =NORM.DIST(40000,43983,6200,TRUE) → 0.26. The 95th percentile of demand from the inventory case: =NORM.INV(0.95,720,70) → 835.1.
  • Inference (module 5): 95% CI for the average transaction value:
    • Half-width: =CONFIDENCE.T(0.05,STDEV.S(A2:A501),500) → 1.89
    • Interval: mean ± half-width → (€30.51; €34.29).
  • Testing (module 5): do in-store and online spend the same? With each channel's amounts in D2:D341 and E2:E161: =T.TEST(D2:D341,E2:E161,2,3) → returns the p-value directly (the 2 asks for a two-sided test; the 3, unequal variances — the Welch variant, the prudent default).
  • Regression (module 6): sales vs floor area for the 42 stores in G2:H43: =SLOPE(H2:H43,G2:G43), =INTERCEPT(H2:H43,G2:G43), =RSQ(H2:H43,G2:G43) — and the multiple regression behind the R² = 0.912, with the Data Analysis add-in or =LINEST with several X columns.

The underlying lesson: everything you calculated by hand in this course lives one formula away. The sheet does not think for you — you still need to know that T.TEST compares means and what its p-value means — but it executes for you.

Pivot tables: frequencies and cross-tabs without formulas

For categorical variables, the spreadsheet's crown jewel is the pivot table: drag channel to rows and you get the frequency distribution from 02-04; drag age group to columns and you have the contingency table from 06-04 — the habits × age cross-tab from the social sciences lesson is assembled in 30 seconds. With "show values as % of row" you read the profiles directly. For the test, you calculate the expected counts next to it (row total × column total / total) and finish with CHISQ.TEST(observed,expected). Average amount by segment and store format, minimums and maximums by carrier... any "what is X worth per group?" is a pivot table before it is a hundred formulas.

Where the spreadsheet ends

Honesty is due: the spreadsheet runs out, and it pays to recognize the symptoms:

  • Repetition: the same analysis every week, with the same ritual of copy-paste-adjust-the-ranges. Every manual repetition is an opportunity for a silent error.
  • Volume: hundreds of thousands of rows make it slow and unstable (and NovaMarket's 4.5 million monthly receipts simply do not fit).
  • Traceability: an overwritten cell leaves no trace; auditing who changed what is nearly impossible. Famous spreadsheet errors have cost careers and public budgets.
  • Methods: logistic regression, PCA, k-means, Kaplan-Meier, serious non-parametrics... either they do not exist or they demand contortions.
  • Mixing data and calculation: in a sheet, raw data and formulas live together and contaminate each other; serious workflows keep them apart.

None of these limits invalidates the spreadsheet for what it does well: one-off analyses, moderate sizes, communication. They only mark the frontier.

Python with pandas and scipy: the next step up

Python is today the most common language of data analysis in business. Two libraries are enough to reproduce this course: pandas (data tables) and scipy.stats (statistical methods). A first complete script, line by line:

import pandas as pd                        # pandas: data tables ("DataFrames")
from scipy import stats                    # scipy.stats: statistical functions

df = pd.read_csv("receipts.csv")           # load the CSV: one row per receipt
print(df["amount"].describe())             # n, mean, std, min, quartiles, max
                                           # (all of module 2 in one line)

mean = df["amount"].mean()                 # sample mean
s = df["amount"].std()                     # sample standard deviation (divisor n-1)
n = len(df)                                # sample size

ci = stats.t.interval(0.95, df=n - 1,      # 95% CI with Student's t:
        loc=mean, scale=s / n ** 0.5)      # centre = mean, scale = standard error
print(f"95% CI: {ci}")                     # e.g. (30.51, 34.29) — as in the sheet

in_store = df[df["channel"] == "in-store"]["amount"]   # filter the in-store receipts
online = df[df["channel"] == "online"]["amount"]       # and the online ones
t, p = stats.ttest_ind(in_store, online, equal_var=False)  # Welch's t (two samples)
print(f"t = {t:.2f}, p-value = {p:.4f}")   # the same test as in lesson 05-03

The important thing is not memorizing the syntax, but seeing the pattern: every line executes something you already know how to interpret. describe() is module 2; t.interval, lesson 05-02; ttest_ind, lesson 05-03. Also living in scipy are chi2_contingency (chi-square), f_oneway (ANOVA), pearsonr and mannwhitneyu; multiple and logistic regression, in the statsmodels library; the k-means that segmented Club Nova, in scikit-learn. Learning Python for data is a course in itself — here it is enough to know that the door exists, that it is open, and that the language spoken on the other side is the one you have just learned.

R: the other great path

R was born for statistics and remains the standard in research: any published method has an R package before it exists anywhere else. The equivalent of the previous script:

receipts <- read.csv("receipts.csv") # load the data
summary(receipts$amount)             # basic descriptives
t.test(amount ~ channel,             # Welch's t and 95% CI in a single
       data = receipts)              # call: the formula "amount by channel"

Choosing between Python and R matters less than it seems: the concepts are identical and migrating takes days, not months. Practical guidance: data engineering/ML environments and automation → Python; academic settings, biostatistics or fine statistical graphics → R.

Classic statistical software: SPSS, Stata, jamovi and JASP

Between the spreadsheet and programming there is a third way: menu-driven programs built for statistics.

  • SPSS (IBM) and Stata: veterans of social science, health and consulting; complete, well-documented output, but expensive licences.
  • jamovi and JASP: free, open source, modern and — this is gold for a beginner — with a spotless interface: you load a CSV, tick "independent samples t-test" and get the test with its effect size and its chart, without writing anything. Both run on R under the hood, so growing towards R later is natural. JASP ships Bayesian approaches as standard.

For a business professional with no intention of programming, jamovi or JASP is probably the best second tool after the spreadsheet: every method in this course, tidy output, and zero cost.

Generative AI as an analysis assistant

AI assistants (like the one that may have accompanied you on this campus) have changed the day-to-day of analysis, and they deserve a balanced verdict:

Where they genuinely help:

  • Writing and explaining code ("what does this pandas line do?", "give me the spreadsheet formula for a CI").
  • Exploring approaches: "I have ordinal satisfaction data in 3 groups, which test fits?" — and you now know how to verify that the answer (Kruskal-Wallis) is correct.
  • Drafting: going from a results table to a first draft of an executive report.
  • Interpreting output from software you do not know.

Where they demand caution:

  • Verify the calculations: a language model can get arithmetic wrong or quote an incorrect critical value with total confidence. Numbers are checked with the statistical tool; the AI proposes, the software disposes.
  • Do not upload personal or confidential data to external services: customer receipts and wellness programme data do not leave NovaMarket without going through compliance (you saw this with the GDPR). Corporate deployments exist precisely for this.
  • Judgment is not delegated: the AI does not know whether your sample is biased, whether the control group is missing, or whether the effect matters to the business. That is exactly the judgment you have built over eight modules — and the reason AI multiplies the trained analyst and confuses the untrained one.

A reproducible workflow

Whatever the tool, these are the habits that separate a professional analysis from a lucky botch job:

  1. Keep the raw data intact. A read-only copy, always. All cleaning is done on copies; if the cleaning was wrong, you can start again.
  2. Document every step. What you filtered, which outliers you set aside and why, which version of the data you used. In code this comes for free (the script is the documentation); in a spreadsheet, an "analysis notes" tab plays that role.
  3. Someone else must be able to repeat it. The gold standard: a colleague, with your data and your steps, arrives at your number. If your result depends on twelve clicks only you remember, it is not a result: it is an anecdote.
  4. Version. No final_analysis_v3_DEFINITIVE_this_time.xlsx: dates in file names at a minimum; version control tools once you work with code.
  5. Separate data, calculation and presentation. The report cites the analysis; the analysis cites the data. When Marta asks "where does this 0.32 come from?", the chain must be traceable in a minute.
  6. Record decisions before seeing the results whenever tests are at stake: which hypotheses, which \(\alpha\), which sample size — the antidote to the p-hacking you met in Errors, Power and Sample Size.

Closing the course: the journey, what you can do now, and next steps

The journey

Eight modules ago you walked into NovaMarket's offices unable to tell a median from a mean. Look back at the road:

Module What you built The NovaMarket moment
1 Population, sample, data types, biases Learning to distrust the convenient survey
2 Describing: means, dispersion, percentiles, charts The €32.40 average transaction with its huge \(s = 21.50\)
3 Probability, Bayes, expected value The €5 coupon valued at +€0.36/mailing before launching it
4 Binomial, normal, Poisson, CLT Daily sales \(N(43,983;\ 6,200)\) and why means are normal
5 Inferring: CIs, tests, errors, power Sizing the coupon pilot (7,250 per group)
6 Relating: correlation, regression, ANOVA, chi-square Floor area and sales; formats compared; habits × age
7 Series, multivariate, non-parametrics The €7.1 million forecast for Q4 (MAPE 1.8%); the Cuenca mystery solved; Club Nova's three segments
8 Applying it all: business, society, health, tools The checkout approved, the digital divide measured, the screening read with Bayes

What you can do now

  • Describe a dataset with the measures and charts suited to its type, and spot outliers and skewness before they contaminate everything else.
  • Quantify uncertainty: choose a reasonable probability model, build a confidence interval and explain it to the decision-maker.
  • Test with the full rules of the game: hypotheses and \(\alpha\) up front, sample size calculated, and the difference between significant and relevant always in view.
  • Relate variables — and not confuse correlation with causation, aggregates with individuals, or a raw effect with one adjusted for confounders.
  • Forecast with time series and evaluate the forecast error honestly.
  • Design and read experiments: the A/B test and the clinical trial are the same animal, and you can recognize when an observational study is selling more than it can prove.
  • Choose a tool and set up a workflow that someone else can audit and repeat.

In one sentence: you have gone from consuming figures to interrogating them — and that is the difference between opining with data and deciding with data.

Next steps

  1. Practise with your own data, now. This week. The receipts, surveys or timing data of your organization, or open data (Spain's INE, Eurostat, open data portals): pick a small question and walk the full cycle — question, data, method, result, decision. Statistics sticks by doing.
  2. Adopt a second tool. If you live in the spreadsheet, install jamovi or JASP this week and redo an analysis you have already done; if programming calls you, this lesson's pandas script is your starting point.
  3. Go deeper wherever your work points: regression and modelling if your job is to explain and predict (the natural path towards machine learning), sampling and surveys if you work with people, time series if you live off forecasts.
  4. Stay on the campus: this campus's courses on data analysis, spreadsheets, Python and applied mathematics are the natural continuation of several of the paths opened here.
  5. Re-read your own old reports. It is the most revealing exercise: you will see means without dispersion, percentages without an \(n\), causal claims without a control. Do not be embarrassed — it is a sign of how much you have learned.

Common Mistakes and Tips

  • Confusing STDEV.S with STDEV.P (and VAR.S with VAR.P): the sample variant divides by \(n-1\) and is almost always the one you want; with large \(n\) it barely matters, with small \(n\) it does.
  • Using CONFIDENCE.T as if it returned the interval. It returns the half-width: the interval is mean ± the result. Read carelessly, an "interval" gets reported that is only the margin.
  • Trusting a cell nobody can audit. The sheet keeps no trail of changes: for analyses that matter, document the steps and keep the raw data — or move to code, where the trail is automatic.
  • Switching tools hoping to fix a methods problem. Python computes the same biased mean as Excel, only faster. No syntax fixes problems of sampling, confounding or design.
  • Copying AI-generated code or formulas without verifying. Always ask for the line-by-line explanation (you can follow it now) and check the result against a small case you can solve by hand.
  • Learning tools instead of statistics. The inverse error also exists: whoever collects Python courses without understanding what a p-value is automates confusion at great speed. You already have the foundation; tools are execution.

Exercises

Exercise 1

The amounts of 500 receipts are in A2:A501. Write the spreadsheet formulas for: (a) the mean and sample standard deviation; (b) the 90th percentile; (c) the 95% confidence interval for the mean (both endpoints).

Exercise 2

You run the lesson's Python script and get: t = 2.31, p-value = 0.0214 for in-store vs online. With \(\alpha = 0.05\): what do you conclude, exactly which test was used, and what would you ask to look at before taking the conclusion to Marta?

Exercise 3

Choose a tool and justify it: (a) a one-off t-test on 200 rows for tomorrow's meeting; (b) the weekly deliveries report that currently takes 2 hours of copy-and-paste; (c) a colleague with no programming experience at all wants to run ANOVA and chi-square with presentable output and at no cost.

Solutions

Exercise 1.

(a) =AVERAGE(A2:A501) and =STDEV.S(A2:A501). (b) =PERCENTILE.INC(A2:A501,0.9). (c) Half-width: =CONFIDENCE.T(0.05,STDEV.S(A2:A501),500); endpoints: =AVERAGE(A2:A501)-CONFIDENCE.T(0.05,STDEV.S(A2:A501),500) and the same with +. Common mistakes: passing 0.95 instead of 0.05 (the function asks for \(\alpha\), not the confidence level) and forgetting that it returns the half-width, not the interval.

Exercise 2.

The test used is Welch's t for two independent samples (ttest_ind with equal_var=False), two-sided. Since \(0.0214 < 0.05\), \(H_0\) is rejected: the difference in average spend between channels is statistically detectable. Before going to Marta: (1) the size of the difference with its CI — significant does not say how many euros, and with large samples it can be an irrelevant difference; (2) the descriptives and outliers of each channel (receipt amounts are highly skewed: it may be worth testing with Mann-Whitney as well, as a check); (3) that the sample carries no collection biases. The tool delivered the p-value in a second; the three checks are your job.

Exercise 3.

(a) Spreadsheet: T.TEST solves a one-off analysis of 200 rows in minutes; setting up anything else would be over-engineering. (b) Python (or R): weekly repetition is the classic symptom — a script does it in seconds, without copy errors and with an auditable trail; the 2 hours pay for themselves within a month. (c) jamovi or JASP: free, menu-driven, with ANOVA and chi-square built in and presentable output; SPSS would do the same but with a licence, and programming contradicts the brief. General tip: the question is not "which tool is best?" but "what combination of task, volume, repetition and profile am I looking at?".

Conclusion

Here the course ends. It began with a modest question — what is a data point and how do you summarize it? — and it ends with you choosing between T.TEST, ttest_ind and jamovi to answer business questions with intervals, tests and models you understand from the inside, because you first calculated every one of them by hand. Along the way, NovaMarket has been your laboratory: its receipts taught you to describe, its coupon to compute expected values, its stores to infer, its e-commerce to forecast, its Club Nova to segment, and its final cases to bring the whole arsenal to bear on real decisions — in business, in society, and even when reading a health headline.

Hold on to the three ideas that support everything else: data vary (and variability is measured, not ignored), every conclusion carries uncertainty (and uncertainty is quantified, not hidden) and the method follows the question (never the other way round). The tools will change — the software will change, the AI will change — but that judgment is yours, and nobody can take it from you now. Off you go to your own data: you no longer need Marta.

© Copyright 2026. All rights reserved