No. The flags overlap, and their observation boundary is a scheduler cycle count. Measure accepted useful bytes and use the flags to explain service intervals.
Common trap: Giving a generic fix without identifying the boundary and unmet obligation in this example.
A row hit usually needs only the column command once its timing constraints permit. An access to an idle bank needs ACTIVATE first. A row conflict needs PRECHARGE of the active row, ACTIVATE of the requested row and then the column command. The latency difference comes from the selected device timings, current bank state, scheduler and queueing; stride, mapping and interleaving influence which case occurs.
Common trap: Ignoring address interleave and stride.