Working of ADR Algorithm

Hi @brocaar, I wanted to know how chirpstack ADR algorithm works (How many Uplinks it will monitor), in my case I have observed when SNR is fluctuating with each Uplink DataRate is changing but sometimes it is changing from one DataRate to another within one Uplink itself. How can an algorithm decides better values based on only one Uplink? correct me if I am wrong. Quick response is much appreciated. Thanks.