How do I tell what users need versus what they say?
You talk to users, which already puts you ahead of most. But you have hit the deeper problem: people tell you what they want, and it is not always what they need. Take their words at face value and you build the wrong thing well. Noticing that gap is the beginning of real discovery. What people say is a clue, not an answer. Behind every request is a problem they are trying to solve, and your job is to reach past the request to the problem underneath. When someone asks for a faster horse, they need to get somewhere sooner. Listen for the need hiding inside the ask. So in your next user conversation, when someone requests a feature, resist writing it down and instead ask what they are trying to do, and why, until you reach the underlying goal. Solve for that goal, not the literal request. The needs you uncover this way are the ones worth building for.