KapfenbergWhat went wrong?Network and measurement

The weaker mast was the better one

After turning the antenna, reception fell from −71 to −87 dBm and I advised turning it back. Four days later throughput was four times as high.

The 5G line in Kapfenberg hung off a cell that was too full. The suggestion to re-aim the outdoor antenna was on the table — there is a building in the way.

I have already described the tools: what I measure with and why a second method was added. This article is about what came out of it — and about reading a direction too early, twice.

My advice after the rotation was wrong

On 20.09. the antenna was turned away from the near mast. The received power dropped immediately:

before   RSRP  −71 dBm
after    RSRP  −87 dBm

My advice was to turn it back. Sixteen decibels worse looks like a step backwards, and I had a good number in my head.

My own objection to that was short and it landed: “but 87 dBm points to other transmitters … and that one could deliver steadily … the problem is not the signal strength.”

That is right. −87 dBm is solid; it only gets tight towards −100. What was tight here was never the level, it was the shared cell.

I had been treating received power like a seal of quality. It is only an input — the one my device decides by, not the one that counts.

Why the device would never have stayed on its own

A modem picks the cell with the best level. It knows nothing about whether that cell is oversubscribed, and it measures no throughput before it attaches.

The near, strong mast therefore always wins that decision — even when the more distant, weaker cell would deliver four times the bandwidth.

That is exactly what the rotation corrects. A directional antenna turned away from the near mast lowers its level far enough for the distant cell to become the better one — and the device stays there.

The drop from −71 to −87 is not the damage done by the exercise. It is its purpose.

The label was no good as a grouping

The orientation lives in a field a human sets. The radio cell is reported by the device itself. Keeping those two apart was the most important decision of the whole measurement series.

The trigger was an observation from the night before the rotation: the device changed mast on its own. Without anyone touching anything.

So since 20.09. every measurement records which cell was attached — plus band and level:

timestamp;download;upload;ping;orientation;cell;band;rsrp

The mast identifier is embedded in the cell number and can be computed out; a sensor does that and therefore has a history. An automation logs every mast change — no push notification, so nobody gets woken at night.

Without it, a self-initiated switch in the middle of a measurement week would afterwards be just a row of numbers with no visible break.

Read too early, twice

On the evening of 20.09. I compared one evening against one evening, six measurements against eight, on a cell that swings by a factor of five. The upload looked worse. I nearly made a result out of it.

On 21.09. throughput jumped sharply — and I attributed it to the day of the week. Sunday against Monday explains a lot.

The objection was a good one, and it could be cleared up as soon as two weekdays were available. Monday and Tuesday against Monday and Tuesday:

Time of day old new factor
00–06 night 106 530 5.0×
06–09 morning 103 472 4.6×
09–12 late morning 103 413 4.0×
12–17 afternoon 99 409 4.1×
17–21 evening 64 389 6.1×
21–24 late 74 440 5.9×
overall 99 475 4.8×

Median download in Mbit/s.

Both wrong moves went in the same direction: too few measurements, too quick a direction. First downwards, then upwards.

The clean proof came from the cell, not from the date

While checking whether the antenna had really been turned only once, something turned up that overthrew the whole grouping: the distant mast had been reachable all along.

In the six days before, the device had jumped between the two eleven times, mostly after ten or twenty minutes. It kept taking it — and never kept it.

That made my grouping “before the rotation = old mast” simply wrong. The comparison period contained hours in which the new mast was already attached.

So it was recalculated: every measurement assigned to the mast that was really attached at the time. Not to the date, not to the label.

And precisely that produced the comparison nobody could have planned — 22 measurements on the new mast from the time before the rotation, on the same days, the same weekdays, the same distribution across the day as the measurements on the old one. Only the cell differs. The difference: a factor of three.

That is the proof the weekly calculation would only have delivered two weeks later. It had been in the data all along, just filed under the wrong heading.

The full comparison, 497 measurements

Almost perfectly balanced, without anyone planning it that way:

old mast new mast
measurements 248 249
download, median 89 Mbit/s 365 Mbit/s
lower / upper quartile 68 / 136 256 / 470
below 100 Mbit/s 62 % 7 %
above 300 Mbit/s 11 % 65 %

The independent second method says the same, only more moderately: median 112 against 292, and in the evening window from 72 to 256. That it shows lower factors is to be expected — it measures against neutral servers instead of the provider’s own.

The limitation that remains

The short visits to the new mast are not a random sample. A device changes cell by signal quality, and it might systematically switch over precisely when something on the old one is particularly good or bad.

That handover decisions follow level and not throughput weakens the objection. It does not remove it.

Stability is the real gain

The number that looks least like statistics and counts most:

before after
mast changes eleven in six days none in four days

Before, the cell choice was unstable. Now it is not. The mast watchdog has not fired once.

The old mast had no daily pattern left

This is the finding that gives me the most to think about, and it is in the left column:

Time old new
00–06 92 480
06–09 98 433
09–12 101 402
12–17 92 316
17–21 67 305
21–24 63 299

63 to 101 round the clock. A line that is as slow at three in the morning as at nine in the evening is not congested — it is capped. The new mast shows a normal picture again, with fast nights.

I met the same shape again later, and there it was the entire proof: Flatness was the proof.

The upload is the punchline

In the median it barely moved: 101 to 111 Mbit/s. Look only at the median and you call that “no change”.

old mast new mast
upload, median 101 111
upload, worst quartile below 22 below 82
drops below 50 Mbit/s 40 % of measurements 7 %

What changed is not the peak, it is the floor.

And then a restart mislabelled 27 measurements

The suspicion came from me: after a restart the orientation read the value from before the experiment again, although nobody had touched the antenna.

The cause is a quirk you fall for exactly once: for input fields the initial value is not the value at first creation, it is the one set at every start. A stored state is therefore not restored but overwritten.

27 measurements consequently carried the wrong label.

The cell column saved them

It has been in the table since 20.09., because the label comes from a human and the cell from the device. All 27 rows carried the new mast’s cell.

The contradiction between label and cell was therefore machine-findable and the correction unambiguous — no guessing, no estimating by the clock.

27 rows corrected
remaining contradictions: 0

A label alone would have been unrecoverable. That is the justification for the cell column, three days after it was added.

And a test I nearly fell for: on restart the change timestamp of every entity jumps to the start time, because they are all recreated. So the timestamp says nothing about it. Only the value does.

What honestly remains open

It has been going down again since the peak. Four days, four values: 442, 417, 320, 291. That can be noise, but it can also mean the new cell is filling up. Four days cannot decide it.

A weekend is missing. On the old mast the weekends were the best days. The new one has not seen one yet.

Other causes are not ruled out. The mast change is the known change that day, not necessarily the only one.

And it could only be cleanly separated by a third week back in the old state: if the old values return, it was the orientation; if they stay, it was the time.

What I would advise

  1. Do not treat received power as a grade. It says how well you are heard, not how much you get. Solid is solid.
  2. Turn away from the strong mast when it is full. Your device decides by level and will keep choosing the full one as long as it is the strongest.
  3. Record what the device says, not just what you typed in. A label is a claim. The cell is a measurement.
  4. Group by state, not by date. Assigning by cell revealed a comparison that was sitting in the same data.
  5. Do not read a direction out of two days. I did it twice, once downwards and once upwards, and was wrong both times.
  6. Look at the floor, not the median. For the upload the median barely moved while the worst quartile quadrupled.

So what?

Since the rotation the line is about four times as fast, and the evening — the hour that matters in a household — went from 67 to over 300 Mbit/s. It cost one antenna rotation and a week of measuring.

The uncomfortable part is how narrowly it was missed. My advice was to turn it back, for a reason that sounds good: reception had got worse.

Reception had got worse. That was the intention.

What saved me was not a better model, but an objection and a column in a table that records what the device sees — not what I typed in.