Each point settled, checked and averaged
At every point the sweep first lets the circuit settle for a number of periods of the new frequency. It then checks that the input channel really carries that frequency, read from how the tone's phase advances across the record, so a frame still holding the previous point's frequency is skipped instead of measured. A single-bin DFT of a few periods cannot tell the two apart, which is one way a sweep ends up rippling from point to point. Gain and phase are then averaged as a vector over at least the periods and frames you ask for, and the sweep stays on the point while the average is still moving. In and Out always come from the same acquisition, so the generator's own drift cancels.
You choose the time on each point
The Bode window's Per point row has Fast, Normal and Precise, or Settle (periods), Cycles (periods measured) and Avg (frames averaged) set one by one, up to 10000, 100000 and 1000. The sweep's expected length is shown beside them before it runs, and the time left while it runs. The choice is kept across power cycles and can be set over SCPI: :NOVAos:BODeplot:SETTle, :NOVAos:BODeplot:CYCLes and :NOVAos:BODeplot:AVERages.
Each point's uncertainty in the report
Save .csv writes the stock's Bode file, every point. The HTML report also lists each point's standard error in gain and in phase, from the spread of the frames averaged, and the per-point settings it was taken with. Up to 300 points a decade.