Assume it's a plumbing leak first.
Start by pressure testing the plumbing lines. Pool shells (concrete, fiberglass, or vinyl) rarely crack and leak on their own—plumbing connections and old pipes fail way more often.
Confirm you actually have a leak first: the bucket test (fill a bucket with pool water, set it on the first step, mark water level inside and outside, run pump normally for 24 hours). If water outside the bucket drops more than inside, you’ve got a leak.
Now find it. For plumbing: rent or buy a pressure test kit ($30-$80) that screws onto your pump or skimmer lines. Pressurize the system to 30-40 PSI and watch the gauge. If it drops, you have a leak somewhere in that line. You can isolate sections by plugging returns or skimmer lines. The actual fix usually means digging up the pipe, cutting out the bad section, and coupling in a new piece—or calling a pro with leak detection gear.
For shell leaks: use a few drops of food coloring or pool dye (not red—stains)