AI & automation
Precision vs Recall: How to Measure AI Accuracy in a Workflow
Precision is the share of AI flags that were right; recall is the share of real cases the AI caught. Choose the balance by what each mistake costs your business, and test on a labeled sample of your own work first.

The short answer
Precision is the share of items an AI system flagged that were correct: true positives divided by everything it flagged. Recall looks the other way, at the real cases, and gives the share it found: true positives divided by all actual positives. High precision means few false alarms, and high recall means few misses. F1 combines the two into one number. Favor recall when a miss costs more than a false alarm, such as an urgent support ticket, and favor precision when acting on a wrong flag is costly. Measure both on a labeled sample from your own work.
- Low precision means false alarms; low recall means misses.
- Accuracy can look high while a system misses most of the rare cases you care about.
- Put a cost on each type of mistake before you choose a threshold.
Precision vs recall in one business example
For example, suppose a 15-person software company uses an AI step to flag incoming support tickets as urgent so they jump the queue. Two different things can go wrong. The AI can flag a routine ticket as urgent, so someone drops other work for nothing. Or it can miss a ticket that really was urgent, so a customer with an outage waits in the normal queue.
Precision tracks the first problem by asking what share of flagged tickets really were urgent. Recall tracks misses: out of all truly urgent tickets, it gives the share the AI caught. Scikit-learn's documentation describes precision as a classifier's ability not to label a negative sample as positive, and recall as its ability to find all the positive samples. You need both numbers, because improving one usually costs you some of the other.
The confusion matrix behind precision and recall
Every evaluation starts from four counts. Compare the AI's label for each ticket with the correct label a person assigned, and sort each ticket into one of four boxes. Google's Machine Learning Crash Course calls this layout a confusion matrix. The numbers below are invented for illustration: 500 labeled tickets, of which 40 were truly urgent.
| AI label | Actually urgent (40) | Actually not urgent (460) |
|---|---|---|
| Flagged urgent (50) | True positives: 34 | False positives: 16 |
| Not flagged (450) | False negatives: 6 | True negatives: 444 |
- True positive: an urgent ticket the AI correctly flagged.
- False positive: a routine ticket flagged as urgent, which is a false alarm.
- False negative: an urgent ticket the AI missed.
- True negative: a routine ticket correctly left in the normal queue.
Precision and recall formulas, with F1
Precision divides true positives by everything the AI flagged, while recall divides them by every ticket that was truly positive. Both formulas appear in the scikit-learn and Google references listed below.
F1 is the harmonic mean of precision and recall. Google's course notes that when the two are far apart, F1 lands close to the worse one, so a system can't earn a good F1 by excelling at one and failing at the other. If misses matter more than false alarms, the F-beta score weights recall more heavily. Scikit-learn's documentation explains that a beta of 2 makes recall twice as important as precision, and a beta of 0.5 does the opposite.
- Precision = TP / (TP + FP) = 34 / 50 = 0.68. About two in three flags were real.
- Recall = TP / (TP + FN) = 34 / 40 = 0.85. The AI caught 34 of 40 urgent tickets and missed 6.
- F1 = 2TP / (2TP + FP + FN) = 68 / 90 = 0.76, rounded.
- Accuracy = (TP + TN) / all tickets = 478 / 500 = 0.956.
Precision vs recall vs accuracy: why accuracy can mislead
In the example, accuracy is 95.6 percent, which sounds excellent. Now picture a system that never flags anything. It would be right about all 460 routine tickets and wrong about all 40 urgent ones, for an accuracy of 92 percent and a recall of zero. Its precision can't even be calculated, because it made no positive predictions.
Google's course makes the same point: when one class is rare, a model that always predicts the common class can score well on accuracy and still be useless. Urgent tickets, duplicate invoices and contracts that need legal review are often a small share of the total. For cases like these, report precision and recall, and treat accuracy as a supporting number at most.
How the threshold trades precision against recall
Many AI classifiers produce a score, and someone picks the cutoff above which an item counts as positive. Google's course explains that raising this classification threshold usually means fewer false positives and more false negatives, and lowering it does the reverse. That's why precision and recall often move in opposite directions.
The table runs the same 500 tickets, 40 of them urgent, at three made-up thresholds. The F2 column weights recall twice as heavily as precision. If your tool returns labels without scores, you can still shift the balance by changing its instructions, its examples or the rule for what goes to review, then measuring again.
| Threshold | Flagged | True positives | False positives | Missed urgent | Precision | Recall | F1 | F2 |
|---|---|---|---|---|---|---|---|---|
| Low | 80 | 39 | 41 | 1 | 48.8% | 97.5% | 0.65 | 0.81 |
| Middle | 50 | 34 | 16 | 6 | 68% | 85% | 0.76 | 0.81 |
| High | 30 | 27 | 3 | 13 | 90% | 67.5% | 0.77 | 0.71 |
When to favor recall and when to favor precision
Google's guidance is brief: use recall when false negatives cost more than false positives, and precision when it's very important that positive predictions are right. In a business workflow, the deciding question is what happens after the label.
If a flagged item goes to a person who can dismiss a false alarm in a minute, false positives are cheap and misses are the expensive error, so favor recall. If a flag triggers an action that's hard to undo, such as an automatic refund, a closed ticket or a merged customer record, a false positive is the expensive error. Favor precision there, or keep a person between the flag and the action.
- Favor recall: urgent ticket triage, flagging possible duplicate invoices for review, finding contracts with an auto-renewal clause and spotting safety complaints.
- Favor precision: auto-closing tickets as spam, auto-approving matched invoices, sending customer messages without review and merging records.
- Balance both: routing tickets between departments when each misroute costs about the same time to fix.
Turn the confusion matrix into review time and cost
F1 counts a false alarm and a miss as equally bad, which often isn't true in a business workflow. Put a cost on each error type instead. In this illustrative case, assume a support lead needs three minutes to check and dismiss a false alarm, and a missed urgent ticket costs 45 minutes of extra recovery work once the customer escalates, before counting any harm to the relationship. Both figures are invented, so time your own.
On those assumptions, the high threshold that narrowly won on F1 is the most expensive option, and the low threshold that F1 ranked last costs the least. The workflow owner should choose the operating point from costs like these, with the metrics as inputs. Once you've chosen, fold these minutes into a full review-time measurement so you can compare the workflow with the manual baseline.
| Threshold | False alarm minutes | Missed ticket minutes | Total error minutes |
|---|---|---|---|
| Low | 41 × 3 = 123 | 1 × 45 = 45 | 168 |
| Middle | 16 × 3 = 48 | 6 × 45 = 270 | 318 |
| High | 3 × 3 = 9 | 13 × 45 = 585 | 594 |
Build a labeled test set before you trust any score
Precision and recall are only as reliable as the correct answers you compare against. NIST's AI RMF Playbook calls for documenting test sets and metrics, and for measuring performance in conditions similar to the deployment setting. For a small business, that means a labeled sample of your own recent work. A vendor's demo results describe someone else's data.
Watch the size of the rare class. With 40 urgent tickets, each miss moves recall by 2.5 percentage points, and a test set with only five urgent tickets can't tell you much. If urgent items are scarce, pull extra examples from older records instead of labeling thousands more routine ones, and note that this changes the mix, so precision on the test set won't match live traffic exactly.
- Pull a recent, representative batch, including busy periods, messy inputs and the edge cases that cause disagreements.
- Have someone who knows the work assign the correct label before seeing the AI's output.
- Write down the labeling rule, such as what counts as urgent, have a second person label a subset and settle disagreements against the rule.
- Keep the test set separate from any examples used to write prompts or tune the system.
- Run the test again after any change to the model, prompt, threshold or input source.
Precision and recall for document field extraction
The same idea applies when AI pulls fields from invoices or forms, but you have to define what counts. One workable convention: a correct value is a true positive, a filled-in value that's wrong or absent from the document is a false positive, and a value present in the document that the system left blank is a false negative. Decide in advance how to count a wrong value where a correct one existed. Counting it as both a false positive and a missed value is the stricter choice.
Measure each field separately. For example, invoice number and total might score well while due dates lag. In extraction, a blank is usually safer than a confident wrong value, because a reviewer can see a blank and fill it in. That argues for favoring precision on fields that post to your books and sending uncertain fields to review.
Questions before you start
How do you remember precision vs recall?
Tie each word to its question. Precision is about how precise the AI's flags are, meaning how often a yes turns out to be right. Recall is about how much of the real set the AI can recall, meaning how many of the real cases it caught. The denominators make the difference concrete: precision divides by what the AI flagged, and recall divides by what was really there.
When should I use the F1 score?
Use F1 when false alarms and misses cost roughly the same and you want one number to compare versions of a system on the same test set. When one error costs more, use F-beta with the weight that matches your priorities, or compare total error cost directly as in the example above. Always report precision and recall alongside F1, since the same F1 can hide very different behavior.
What is a good precision and recall score?
There's no universal target. A good score is one where the remaining false alarms and misses, plus review time, cost less than doing the work another way, and where no critical error type exceeds a limit the workflow owner set before testing. Measure on a labeled sample of your own work. GLCO can help you build a labeled test for a specific workflow and interpret the results.
Sources and further reading
- Google Machine Learning Crash Course: accuracy, precision, recall and F1 definitions and tradeoffs
- Google Machine Learning Crash Course: classification thresholds and the confusion matrix
- scikit-learn user guide: precision, recall and F-measures for binary classification
- scikit-learn API: fbeta_score and how beta weights recall against precision
- NIST AI RMF Playbook, Measure: documented test sets and performance in deployment-like conditions
Make this useful for my team.
Bring us a task you spend too much time on. We can look at where the time goes, what AI could handle, and whether the benefit would cover the cost. We reply within one business day.


