Not every problem needs AI. Using an LLM where a simple script would work is like using a crane to move a chair.
When Rules Beat AI
If you can write the logic as an if/then flowchart, you don’t need AI:
- Form validation: checking if an email is valid, a phone number has 10 digits, a date is in the future. Regex, not GPT
- Routing: if the customer mentions “billing,” send to billing. If they mention “shipping,” send to shipping. A keyword match or decision tree works perfectly
- Data formatting: converting CSV to JSON, reformatting dates, cleaning phone numbers. String manipulation, not inference
- Simple calculations: tax calculations, shipping rates, unit conversions. Math, not machine learning
When a Spreadsheet Wins
- Small data analysis: if your dataset fits in Excel (<1 million rows), you probably don’t need a data pipeline. Pivot tables and VLOOKUP handle most small-business analytics
- Reporting: weekly reports that summarize the same metrics in the same format. A template with formulas updates itself
- Simple forecasting: linear trend projections in Google Sheets are surprisingly accurate for stable businesses
When AI Costs More Than It Saves
- Low-volume tasks: if you process 10 invoices a month, the time to build and maintain an AI extraction pipeline exceeds the time to just type them manually
- One-time projects: AI ROI comes from repetition. A one-time data migration doesn’t need AI; it needs a consultant with a script
- Tasks requiring 100% accuracy: AI is probabilistic. If a 2% error rate is unacceptable (medical diagnosis, legal contracts, financial compliance), you need human review anyway — and the AI just adds cost
The Right Question
Don’t ask “can AI do this?” Ask “is AI the simplest tool that solves this?” The simplest tool is the one that’s cheapest to build, easiest to maintain, and fastest to fix when it breaks.
My filter: if I can solve it with 50 lines of Python, I don’t reach for an LLM. AI is for tasks where the rules are too complex to write explicitly, the input is unstructured, or the patterns change too fast for static code.