Most teams reach for fine-tuning because the model "doesn't get it." That framing hides the actual work. A wrong answer on a task can come from a formatting problem, a calculation error, a missing fact or a misread question, and those causes need different fixes. The ErrorMap work from IBM Research and Stanford makes this explicit: benchmarks tell you when a model fails, not why, and separating the causes is what lets you guide improvement (ErrorMap and ErrorAtlas).
That single idea is the fork in the road. Prompting, retrieval and fine-tuning all change behavior, but they change different things. On its own, prompting and few-shot examples use the model's existing knowledge. Retrieval augments the prompt with external content. Fine-tuning adjusts model weights so behavior persists across requests (Codecademy's comparison). If you skip the classification step, you can spend weeks and a real budget retraining a model to solve a problem that a JSON schema would have fixed in an afternoon.
The practical move is to stop asking "prompt or fine-tune" and start asking "what kind of failure is this, and which lever actually moves it?" The rest of this article gives you a repeatable rule for that.



