Benchmark Report · July 2026

BATLR vs. AI Alone: Benchmark Methodology and Results

We are often asked: "Why does our platform need a specialized solution when we could just ask AI to classify our messages?" It is a fair question, and we set out to answer it directly by comparing BATLR against a simple, unengineered AI prompt on the same data.

We ran BATLR's engineered scam classifier against a naive AI baseline on 5,572 real-world messages. At our recommended ban threshold, BATLR catches over 2x more scammers with essentially the same false alarm rate. Here is exactly how we measured that.

1. What We Measured

We compared two classifiers on the task of identifying scam and fraud messages:

Both classifiers used the same underlying model (gpt-4o-mini), the same temperature (0.3), and the same JSON response format. The only variable is the system prompt. This isolates prompt engineering value from model capability or infrastructure differences.

Both classifiers produced a continuous risk_score from 0.0 to 1.0 for each example. All threshold analysis is post-hoc; no threshold was baked into the data collection.


2. Dataset

Source: UCI SMS Spam Collection
Size: 5,572 messages (747 scam/spam, 4,825 ham)

One important note on labels: the UCI dataset includes all commercial spam (promotional texts, marketing messages), not only fraud. BATLR is designed specifically for scam and fraud detection. When BATLR assigns a score of 0.5 to a promotional message instead of 0.9, the UCI label says "wrong," but BATLR's risk calibration is arguably correct. This means the UCI recall numbers slightly understate BATLR's true performance on genuine fraud.

Neither classifier was trained or fine-tuned on this dataset. Both are zero-shot. The dataset is purely an evaluation corpus.


3. Methodology

Benchmark runner

Each of the 5,572 examples was passed as a single-message conversation to both classifiers via the OpenAI API, parallelized across 8 concurrent workers. Both classifiers saw identical inputs. Results were stored in a Parquet file with one row per example.

Escalation

BATLR's production pipeline optionally escalates borderline cases from gpt-4o-mini to gpt-4o for a second opinion. For this benchmark, escalation was disabled so that both classifiers ran on gpt-4o-mini only. This is a conservative choice; production BATLR with escalation enabled would perform better on borderline cases.

Threshold analysis

The raw output is a continuous score. A binary prediction is produced by applying a threshold: scores at or above the threshold are classified as scam. We report results at three thresholds:

ThresholdUse case
0.5Catch everything suspicious (high-recall mode)
0.8Moderate recall, very low false positives
0.9Recommended ban threshold (high-confidence bans only)

Adjusted accuracy

Raw accuracy on the UCI dataset is misleading because UCI's 13.4% scam rate is far higher than real-world messaging platforms. We reweight using:

adj_accuracy = recall × prev + specificity × (1 - prev)

We use 2% scam prevalence as a conservative upper bound for high-risk platforms. Results at 1% are nearly identical (less than 0.2 percentage points at any threshold).

AUC metrics

We report two threshold-independent metrics:


4. Results

AUC (primary metrics)

MetricBATLRBaselineDelta
ROC AUC0.9870.972+0.015
PR AUC0.9440.848+0.097

The PR AUC gap (+9.7 percentage points) is much larger than ROC AUC suggests. PR AUC is the more informative metric here because it measures performance in the high-precision region that matters for ban decisions, which is exactly where the baseline collapses at threshold 0.9.

Threshold breakdown (2% scam prevalence)

ThresholdClassifierRecallFalse Alarm RatePrecisionAdj. Accuracy
0.5BATLR97.6%6.4%70.2%93.7%
0.5Baseline96.3%13.1%53.3%87.1%
0.8BATLR91.4%1.1%92.9%98.8%
0.8Baseline89.6%3.0%82.1%96.8%
0.9BATLR84.2%0.6%95.6%99.1%
0.9Baseline41.8%0.7%89.9%98.1%

Confusion matrix at threshold 0.9 (recommended ban threshold)

Predicted ScamPredicted Ham
Actual Scam (747)BATLR: 629  |  Baseline: 312BATLR: 118  |  Baseline: 435
Actual Ham (4,825)BATLR: 29  |  Baseline: 35BATLR: 4,796  |  Baseline: 4,790
At the same false alarm rate, BATLR catches 2x as many scammers as the baseline (629 vs. 312). Both classifiers flagged roughly the same number of innocent users (29 vs. 35). The difference is entirely in scammer recall.

5. Key Findings

Finding 1: BATLR flags half the false positives at the permissive threshold

At threshold 0.5, BATLR flags 310 innocent users vs. the baseline's 630, a 2x reduction in false alarms, while catching more scammers (729 vs. 719). For a platform with 1 million active users and 1% scam rate, that is roughly 62,000 fewer innocent users flagged per classification cycle.

Finding 2: At high-confidence thresholds, the baseline collapses

At threshold 0.9, BATLR catches 84.2% of scammers. The baseline catches only 41.8%. The baseline becomes so conservative that it misses more than half of all scammers while trying to avoid false positives. BATLR catches 629 scammers vs. the baseline's 312 at the same threshold: 2x more scammers caught.

This is the clearest demonstration of prompt engineering value. BATLR's guidelines teach the model to score genuine fraud confidently and high, not just flag anything loosely suspicious.

Finding 3: Threshold 0.9 is the recommended ban threshold

Bans are high-stakes and hard to reverse. Threshold 0.9 is designed for that: only act when confidence is very high. At threshold 0.9, BATLR achieves:

The baseline at threshold 0.9 has nearly the same false alarm rate (0.7%) but catches only 41.8% of scammers, less than half. For platforms using bans as the enforcement action, BATLR at 0.9 is the operating point to use.

Finding 4: Escalation not yet tested; numbers are conservative

These results used gpt-4o-mini only. Production BATLR escalates borderline cases to gpt-4o for a second opinion, which would improve precision on the borderline cases most likely to generate false positives. All numbers above are therefore a lower bound on production BATLR performance.


6. Limitations

Dataset label mismatch. UCI "spam" includes marketing texts that are low-value but not fraudulent. BATLR is calibrated for fraud specifically. When BATLR correctly gives a promotional message a score of 0.5 instead of 0.9, the UCI label counts it as a miss. This understates BATLR's recall on actual fraud.

Single-message conversations. The UCI dataset is individual SMS messages, not multi-message conversations. BATLR is designed for conversation context: multiple messages from the same user over time. Performance on realistic multi-message inputs would likely be higher, since scam patterns are often more detectable across a conversation arc.

No escalation. As noted above, gpt-4o escalation was disabled for cost efficiency. Real production performance will be better.

Fixed seed, no confidence intervals. We ran the full dataset once with a fixed random seed. We did not compute bootstrap confidence intervals around the AUC or recall numbers. Given n=5,572 and consistent results across three separate 500-sample validation batches run earlier in development, the numbers are stable.

Model versions. Evaluated on gpt-4o-mini as of July 2026. OpenAI model updates may shift scores over time.


7. Cost

MetricBATLRBaseline
Total cost (5,572 examples)$0.963$0.265
Cost per classification$0.00017$0.00005
Cost per 1,000 classifications$0.17$0.05

BATLR's system prompt is roughly 3.5x longer than the baseline due to its guidelines and few-shot examples. At production scale, OpenAI's automatic prompt prefix caching applies a 50% discount on the input tokens that repeat across requests, which partially offsets this cost.

Note: This benchmarking exercise was designed to compare the accuracy of two AI prompts, independent of cost. In practice, the BATLR API fully handles all cost and token management on your behalf. The cost of every AI classification is included in one simple, fixed monthly subscription price.

Want to see this in action on your platform?

We can walk through how BATLR would perform on your specific message corpus and use case.

Book a Discovery Call