Many apps on the market calculate accuracy based on a single-frequency satellite system, where the accuracy values are estimated using horizontal dilution of precision (HDOP) and vertical dilution of precision (VDOP). For example, estimated horizontal accuracy is calculated by multiplying HDOP by 4.7, and estimated vertical accuracy is calculated by multiplying VDOP by 4.7.
However, the accuracy of most dual-frequency (L1, L2 or L1, L5) and tri-frequency (L1, L2, L5) GNSS receivers cannot be simply converted using HDOP and VDOP from GSA(GNSS DOP and active satellites) NMEA sentence. Instead, their accuracy is better represented by GST (GNSS pseudorange error statistics) NMEA sentences. Some manufacturers even use proprietary sentences to output GNSS accuracy directly. For example, u-blox uses $PUBX sentences to directly output accuracy.
The HDOP/VDOP conversion method can result in significant errors. For instance, please refer to the screenshot below, an Ublox RTK GNSS receiver reports an accuracy of 1.4 cm using $PUBX, while the GGA sentence output shows an HDOP of 0.57. If using the HDOP estimation method, the horizontal accuracy would be calculated as 2.679 meters, which is 191 times worse than the actual accuracy.
I hope this helps you understand why you cannot rely on some GPS/GNSS apps’ accuracy readings for multi-frequency GNSS receivers. It is better to use apps that calculate accuracy using GST NMEA sentence or manufacturer proprietary accuracy sentences. If you are unsure whether your app supports these sentences, please check with your app vendor.