{"course":{"slug":"ai-for-small-business","title":"AI for a Small Business","url":"https://addaly.com/learn/ai-for-small-business","level":"beginner","track":"work"},"lesson":{"slug":"the-analysis-that-shows-its-working","title":"Make it compute, do not let it estimate","url":"https://addaly.com/learn/ai-for-small-business/the-analysis-that-shows-its-working","position":70,"of":88,"minutes":9,"answer":"A tool that writes and runs code on your file produces arithmetic you can check and rerun, while a model reading the same file produces a plausible figure with no working.","keyIdea":"A tool that writes and runs code on your file produces arithmetic you can check and rerun, while a model reading the same file produces a plausible figure with no working, and the two look identical on screen."},"body":{"format":"markdown","text":"## Two things that look the same\n\nUpload a spreadsheet and ask for total sales by month. You may get either of two things, and the screen does not always distinguish them.\n\n**The model reads and reports.** It takes in the rows as text and produces numbers that look right. With a hundred rows it is often close. With five thousand it is not, and it will not say so. This is the failure module six named: arithmetic is not what the mechanism does.\n\n**The tool writes code and runs it.** It generates a few lines of Python, executes them against your actual file, and reports what came back. The arithmetic is done by a computer doing arithmetic.\n\nThe first is a guess dressed as a figure. The second is a calculation you can audit. Knowing which you are looking at is the single most useful habit in this module.\n\n## How to tell\n\nAsk to see the code. A tool that ran code will show it. A model that estimated will either produce code it did not run, or explain its reasoning in prose.\n\nThe features that execute go by names like Advanced Data Analysis, code interpreter, or analysis tool, depending on the product, and most of the major chat products now have one. Free path: Google Colab runs Python in a browser at no cost and will happily take code a model wrote; a spreadsheet's own formulas are also real computation, which is why module six's advice to ask for the formula works.\n\n## What to do with the code\n\nRead enough of it to check three things, and you do not need to write Python to do this.\n\nWhich file and which column it used. Models pick the wrong column with confident ease when two have similar names: `total` and `total_inc_vat` is the classic.\n\nWhat it excluded. Look for filters. Did it drop refunds, cancelled orders, rows with missing values? Any of those may be right, and all of them change the answer, and none will be mentioned in the summary unless you ask.\n\nHow it handled dates and blanks: the two faults from the previous lesson, which cause silently wrong groupings rather than errors.\n\n## Verify against one number you already know\n\nThis is the whole quality-control procedure and it takes a minute.\n\nPick a figure you know independently: last month's total sales from your accounts, the number of jobs in March from your diary. Ask the tool for the same figure from the file.\n\nIf it matches, the pipeline is sound: the right file, the right column, sensible filters. If it does not, stop. Do not adjust the question until it agrees; find out why it disagrees. Nine times in ten it is a filter or a date parse, and the same fault is affecting every other figure you were about to believe.\n\n## Where it earns its place\n\nHonest assessment: on files under a few thousand rows, a pivot table does most of this and you already know how to check it.\n\nThe code route pulls ahead in three situations. Files too large for a spreadsheet. Analyses you will repeat monthly, where a saved script is rerun in seconds and a remembered click sequence is not. And joins across sources (bookings against till data against weather) which are painful by hand and routine in six lines.\n\n## The chart trap\n\nThese tools produce good-looking charts instantly, which is a hazard.\n\nA chart with no axis labels, no baseline at zero, or a filtered subset presented as the whole is persuasive and wrong, and it is persuasive to *you*, in your own business, about your own money. Check what is on each axis, whether the vertical starts at zero, and how many rows are actually in the picture, before the chart becomes the thing you remember.\n\n## The rule to carry out of this lesson\n\nIf a number is going to change what you do, you should be able to say which file it came from, which rows were included, and what operation produced it.\n\n\"The AI said 4,300\" is not an answer to any of those. \"The sum of the `net` column for rows dated in March, excluding the 14 refunds, from the export dated the 2nd\" is, and getting to that sentence is what separates analysis from a plausible number on a screen."},"check":{"question":"A cafe asks a code-running tool for average spend per visit and gets USD 9.40. Its accounting software reports monthly takings that imply about USD 12. What should the owner do first?","options":[{"text":"Ask the tool to recalculate excluding the lowest-value transactions, since single-coffee sales are pulling the average down and are not representative of a typical visit.","correct":false,"tempting":"Adjusts the question to make the numbers agree, which hides the discrepancy rather than explaining it."},{"text":"Accept both figures, since accounting totals include VAT and card fees while the export is likely to be net, which would explain a gap of roughly this size.","correct":false,"tempting":"A plausible reconciliation, and asserting the cause without checking is how a genuine filter error gets explained away."},{"text":"Check whether the accounting figure covers the same period, because an extra week of trading in the accounting month would raise the implied average without any fault in the export.","correct":false,"tempting":"A period mismatch changes totals, and averages per visit are much less sensitive to it than this reasoning assumes."},{"text":"Read the code to see which rows were included, because a silent filter or a misparsed date would produce exactly this kind of disagreement.","correct":true}]},"prev":{"slug":"cleaning-before-counting","title":"Why cleaning is most of the job","url":"https://addaly.com/learn/ai-for-small-business/cleaning-before-counting"},"next":{"slug":"the-naive-baseline","title":"The number any forecast has to beat","url":"https://addaly.com/learn/ai-for-small-business/the-naive-baseline"},"authorship":"Founder and series editor: Dr Mustafa Mun. Written by AI models to a written standard. Exam keys checked blind by a second model: 3,665 of 3,666 agreed. Academic review invited.","review":{"status":"Draft, open for academic review"},"cite":"Addaly (2026) 'Make it compute, do not let it estimate', in AI for a Small Business. Edited by M. Mun. Addaly. Available at: https://addaly.com/learn/ai-for-small-business/the-analysis-that-shows-its-working (Accessed: 13 October 2026).","licence":{"name":"CC BY-NC-SA 4.0","url":"https://creativecommons.org/licenses/by-nc-sa/4.0/"},"reader":{"schema":1,"title":"Make it compute, do not let it estimate","courseTitle":"AI for a Small Business","module":{"index":8,"slug":"your-own-numbers","title":"Learning from your own numbers"},"answer":null,"keyIdea":"A tool that writes and runs code on your file produces arithmetic you can check and rerun, while a model reading the same file produces a plausible figure with no working, and the two look identical on screen.","hero":{"kind":"plate","image":null,"alt":null,"caption":null},"blocks":[{"t":"h2","id":"two-things-that-look-the-same","runs":[{"text":"Two things that look the same"}]},{"t":"p","runs":[{"text":"Upload a spreadsheet and ask for total sales by month. You may get either of two things, and the screen does not always distinguish them."}]},{"t":"p","runs":[{"text":"The model reads and reports.","b":true},{"text":" It takes in the rows as text and produces numbers that look right. With a hundred rows it is often close. With five thousand it is not, and it will not say so. This is the failure module six named: arithmetic is not what the mechanism does."}]},{"t":"p","runs":[{"text":"The tool writes code and runs it.","b":true},{"text":" It generates a few lines of Python, executes them against your actual file, and reports what came back. The arithmetic is done by a computer doing arithmetic."}]},{"t":"p","runs":[{"text":"The first is a guess dressed as a figure. The second is a calculation you can audit. Knowing which you are looking at is the single most useful habit in this module."}]},{"t":"h2","id":"how-to-tell","runs":[{"text":"How to tell"}]},{"t":"p","runs":[{"text":"Ask to see the code. A tool that ran code will show it. A model that estimated will either produce code it did not run, or explain its reasoning in prose."}]},{"t":"p","runs":[{"text":"The features that execute go by names like Advanced Data Analysis, code interpreter, or analysis tool, depending on the product, and most of the major chat products now have one. Free path: Google Colab runs Python in a browser at no cost and will happily take code a model wrote; a spreadsheet’s own formulas are also real computation, which is why module six’s advice to ask for the formula works."}]},{"t":"h2","id":"what-to-do-with-the-code","runs":[{"text":"What to do with the code"}]},{"t":"p","runs":[{"text":"Read enough of it to check three things, and you do not need to write Python to do this."}]},{"t":"p","runs":[{"text":"Which file and which column it used. Models pick the wrong column with confident ease when two have similar names: "},{"text":"total","code":true},{"text":" and "},{"text":"total_inc_vat","code":true},{"text":" is the classic."}]},{"t":"p","runs":[{"text":"What it excluded. Look for filters. Did it drop refunds, cancelled orders, rows with missing values? Any of those may be right, and all of them change the answer, and none will be mentioned in the summary unless you ask."}]},{"t":"p","runs":[{"text":"How it handled dates and blanks: the two faults from the previous lesson, which cause silently wrong groupings rather than errors."}]},{"t":"h2","id":"verify-against-one-number-you-already-know","runs":[{"text":"Verify against one number you already know"}]},{"t":"p","runs":[{"text":"This is the whole quality-control procedure and it takes a minute."}]},{"t":"p","runs":[{"text":"Pick a figure you know independently: last month’s total sales from your accounts, the number of jobs in March from your diary. Ask the tool for the same figure from the file."}]},{"t":"p","runs":[{"text":"If it matches, the pipeline is sound: the right file, the right column, sensible filters. If it does not, stop. Do not adjust the question until it agrees; find out why it disagrees. Nine times in ten it is a filter or a date parse, and the same fault is affecting every other figure you were about to believe."}]},{"t":"h2","id":"where-it-earns-its-place","runs":[{"text":"Where it earns its place"}]},{"t":"p","runs":[{"text":"Honest assessment: on files under a few thousand rows, a pivot table does most of this and you already know how to check it."}]},{"t":"p","runs":[{"text":"The code route pulls ahead in three situations. Files too large for a spreadsheet. Analyses you will repeat monthly, where a saved script is rerun in seconds and a remembered click sequence is not. And joins across sources (bookings against till data against weather) which are painful by hand and routine in six lines."}]},{"t":"h2","id":"the-chart-trap","runs":[{"text":"The chart trap"}]},{"t":"p","runs":[{"text":"These tools produce good-looking charts instantly, which is a hazard."}]},{"t":"p","runs":[{"text":"A chart with no axis labels, no baseline at zero, or a filtered subset presented as the whole is persuasive and wrong, and it is persuasive to "},{"text":"you","i":true},{"text":", in your own business, about your own money. Check what is on each axis, whether the vertical starts at zero, and how many rows are actually in the picture, before the chart becomes the thing you remember."}]},{"t":"h2","id":"the-rule-to-carry-out-of-this-lesson","runs":[{"text":"The rule to carry out of this lesson"}]},{"t":"p","runs":[{"text":"If a number is going to change what you do, you should be able to say which file it came from, which rows were included, and what operation produced it."}]},{"t":"p","runs":[{"text":"“The AI said 4,300” is not an answer to any of those. “The sum of the "},{"text":"net","code":true},{"text":" column for rows dated in March, excluding the 14 refunds, from the export dated the 2nd” is, and getting to that sentence is what separates analysis from a plausible number on a screen."}]}],"check":{"question":[{"text":"A cafe asks a code-running tool for average spend per visit and gets USD 9.40. Its accounting software reports monthly takings that imply about USD 12. What should the owner do first?"}],"options":[{"text":[{"text":"Ask the tool to recalculate excluding the lowest-value transactions, since single-coffee sales are pulling the average down and are not representative of a typical visit."}],"correct":false,"tempting":[{"text":"Adjusts the question to make the numbers agree, which hides the discrepancy rather than explaining it."}]},{"text":[{"text":"Accept both figures, since accounting totals include VAT and card fees while the export is likely to be net, which would explain a gap of roughly this size."}],"correct":false,"tempting":[{"text":"A plausible reconciliation, and asserting the cause without checking is how a genuine filter error gets explained away."}]},{"text":[{"text":"Check whether the accounting figure covers the same period, because an extra week of trading in the accounting month would raise the implied average without any fault in the export."}],"correct":false,"tempting":[{"text":"A period mismatch changes totals, and averages per visit are much less sensitive to it than this reasoning assumes."}]},{"text":[{"text":"Read the code to see which rows were included, because a silent filter or a misparsed date would produce exactly this kind of disagreement."}],"correct":true,"tempting":null}],"order":[2,3,0,1],"why":null},"prev":{"slug":"cleaning-before-counting","title":"Why cleaning is most of the job","minutes":9},"next":{"slug":"the-naive-baseline","title":"The number any forecast has to beat","minutes":9}}}