Index: trunk/BNC/src/bnchelp.html
===================================================================
--- trunk/BNC/src/bnchelp.html	(revision 11117)
+++ trunk/BNC/src/bnchelp.html	(revision 11119)
@@ -5134,8 +5134,10 @@
     <li>the code bias signals provided, satellites without code biases of the reference signals (default GPS C1W/C2W,
       GLONASS C1P/C2P, Galileo C1C/C5Q, BDS C2I/C6I, QZSS C1C/C2L, SBAS C1C/C5Q; as in the combination, see option
-      'Reference Signals' in <a href=#combirefsig>section 2.14.1.7</a>), and the standard deviation and maximum of the
-      ionosphere-free combination B_IF of the reference signal biases. A B_IF varying between the satellites is
-      legitimate if the clocks are estimated with other signals, but must then be consistent with the clocks
-      (see section 'Combination'),</li>
+      'Reference Signals' in <a href=#combirefsig>section 2.14.1.7</a>), and the standard deviation, the median of the
+      absolute values and the maximum (with the satellite) of the ionosphere-free combination B_IF of the reference
+      signal biases. A B_IF varying between the satellites is legitimate if the clocks are estimated with other
+      signals, but must then be consistent with the clocks (see section 'Combination'). A median close to zero with a
+      large standard deviation points to single satellites with inconsistent biases (the satellite with the maximum),
+      a large median to clocks estimated with other signals,</li>
     <li>the code bias check: the DCBs of the stream, i.e. the differences of its code biases to the first reference
       signal (or to another common signal, if the stream lacks it), are compared with
@@ -5186,5 +5188,5 @@
   G corrections referring to an IOD of no received broadcast ephemeris: G10(94) G22(94) G29(94)
   G code bias signals: 1C 1P 1W 2L 2P 2S 2W 5Q
-  G ionosphere-free combination B_IF of the reference signal biases: std. dev. 0.586 m, max |B_IF| 2.058 m (32 satellites)
+  G ionosphere-free combination B_IF of the reference signal biases: std. dev. 0.585 m, median |B_IF| 0.297 m, max |B_IF| 2.032 m (G19) (32 satellites)
   G largest orbit corrections: radial 1.06 m (G11), along/cross 2.05 m (G11)
 </pre>
Index: trunk/BNC/src/ssrQc.cpp
===================================================================
--- trunk/BNC/src/ssrQc.cpp	(revision 11117)
+++ trunk/BNC/src/ssrQc.cpp	(revision 11119)
@@ -1279,4 +1279,6 @@
       QString maxRadialPrn, maxAlongCrossPrn;
       QVector<double> biasIF;
+      double  maxBiasIF = 0.0;
+      QString biasIFPrn;
       const QSet<QString>& ephs = ephSats[sys];
       for (int type = ORB; type <= PBIAS; type++) {
@@ -1321,4 +1323,8 @@
         if (stat.refBiasOK) {
           biasIF.push_back(stat.biasIF);
+          if (biasIFPrn.isEmpty() || fabs(stat.biasIF) > maxBiasIF) {
+            maxBiasIF  = fabs(stat.biasIF);
+            biasIFPrn  = prn;
+          }
         }
         if (stat.numPB) {
@@ -1373,9 +1379,12 @@
           double var = 0.0;
           for (double bb : biasIF) var += (bb - mean) * (bb - mean) / biasIF.size();
-          double maxAbs = max(fabs(*std::min_element(biasIF.begin(), biasIF.end())),
-                              fabs(*std::max_element(biasIF.begin(), biasIF.end())));
+          // the median shows whether the clocks refer to other signals (all
+          // satellites) or single satellites have inconsistent biases
+          QVector<double> absIF;
+          for (double bb : biasIF) absIF << fabs(bb);
           lines << QString("ionosphere-free combination B_IF of the reference signal biases: "
-                           "std. dev. %1 m, max |B_IF| %2 m (%3 satellites)")
-                   .arg(sqrt(var), 0, 'f', 3).arg(maxAbs, 0, 'f', 3).arg(biasIF.size());
+                           "std. dev. %1 m, median |B_IF| %2 m, max |B_IF| %3 m (%4) (%5 satellites)")
+                   .arg(sqrt(var), 0, 'f', 3).arg(median(absIF), 0, 'f', 3).arg(maxBiasIF, 0, 'f', 3)
+                   .arg(biasIFPrn).arg(biasIF.size());
         }
       }
