Trajectory lists previous frame than what is mentioned in *.ndx

GROMACS version: 2019.1
GROMACS modification: Yes/No

I used the gmx-clutser to make And, then I wanted to choose 50 random frames from cluster1. Frames in my trajectory are 20ps apart. Since, the cluster.log mentions time stamp. I divided it by 20 to get the exact frame number and put up my list in frames.ndx, which is further given as an input in trjconv to get *.xtc and *.pdb.

During analysis, I got a *.xvg and I noticed that frames are shifted exactly one place behind. For instance, my *.ndx ask for frame 498 (time = 9660), then, my *.xvg mentions time 9640 (corresponding to frame 497). I do not fully understand why this could be happening.

I am also not sure whether to list it as a problem associated with gmx-trjconv or gmx-cluster.

To check if it is a problem of the tools and of the intermediate steps, you have in the analysis.
You can extract using gmx trjconv -dump the snapshot you want (and save it as pdb) and compare with the one saved by gmx cluster in cluster.pdb using option -cl (withtout -av) that writes central structure of each cluster. Both gmx trjconv and gmx cluster has to run on the same (better fitted) trajectory.

Frame 1 is at time 0. The last frame is at the end of the trajectory.
So for a 100ps run with dt=1ps you will have 101 frames.
I dont think this is a bug :)