# What RX power (dBm) is healthy on a GPON ONT?

Dodderware engineering team · Published 2026-10-28 · https://blog.dodderware.com/gpon-ont-optical-power/

[Leer en español](https://blog.dodderware.com/es/potencia-optica-ont-gpon/)

> **Short answer:** In DWS Support’s default bands, a GPON ONT’s RX optical power is healthy from −24 to −8 dBm, with an optimum around −14 dBm. Readings from −27 up to −24 dBm are a warning, and anything below −27 or above −8 dBm is critical. TX power is healthy from 0.5 to 5 dBm. These are product defaults, not a standard, and operators can set their own.

A customer reports a slow connection. The ONT is online, but its optics badge is amber. The number to read is the
ONT’s RX optical power, in dBm. This guide gives the bands DWS Support uses by default to grade it, where the value
comes from in TR-181, and what a bad reading points to. One warning first: treat these numbers as product defaults,
not as a standard. Each operator can set its own.

## What RX power is healthy on a GPON ONT?

DWS Support grades the RX power an ONT reports against four default bands (DWS · Non-functional):

- **Critical**, below −27 dBm: Too weak.
- **Warning**, −27 to −24 dBm: Borderline: check the fiber path.
- **Healthy**, −24 to −8 dBm: Optimum around −14 dBm.
- **Critical**, above −8 dBm: Too strong.

*DWS Support’s default bands for ONT RX optical power. Each operator can replace them with its own. Diagram by Dodderware, based on DWS Support’s optical thresholds.*

The edges matter when a reading sits right on one of them:

| Band     | Default RX range                               |
| -------- | ---------------------------------------------- |
| Healthy  | From −24 dBm to −8 dBm, both edges included    |
| Warning  | From −27 dBm up to, but not including, −24 dBm |
| Critical | Below −27 dBm, or above −8 dBm                 |

So a reading of exactly −24 dBm is still healthy, while −24.5 dBm is a warning, and so is exactly −27 dBm. Within the
healthy band, the documentation puts the optimum at around −14 dBm. A reading of −26 dBm, for example, is a warning one
decibel above the critical edge.

## Can RX power be too strong?

Yes, by these defaults. The healthy band has an upper edge as well as a lower one: a reading above −8 dBm is graded
critical, the same tier as a reading below −27 dBm (DWS · Non-functional). A strong signal is not automatically a good
one, and a check that only alarms on low power will miss the ONTs at the top of the scale.

## What TX power should an ONT report?

The ONT also reports the optical power it transmits. DWS Support’s default healthy range for TX is 0.5 to 5 dBm, and
any reading outside it is flagged (DWS · Non-functional). The two metrics side by side:

| Metric   | TR-181 parameter       | Healthy by default | Flagged by default                                             |
| -------- | ---------------------- | ------------------ | -------------------------------------------------------------- |
| RX power | `OpticalSignalLevel`   | −24 to −8 dBm      | −27 to −24 dBm (warning), below −27 or above −8 dBm (critical) |
| TX power | `TransmitOpticalLevel` | 0.5 to 5 dBm       | Below 0.5 dBm or above 5 dBm                                   |

## Where does the ONT report its optical power?

DWS Support reads both values from the TR-181 Device:2 data model (DWS · Integration boundaries):

- RX power: `Device.Optical.Interface.1.OpticalSignalLevel`
- TX power: `Device.Optical.Interface.1.TransmitOpticalLevel`

Both arrive as integers, which DWS Support divides by 1000 to get dBm. Module temperature, laser bias current and supply
voltage are not part of these two parameters: the DWS documentation lists them as vendor extensions (DWS ·
Non-functional). If you are new to the `Device.` tree and the protocols that read it, start with
[what is TR-369](https://blog.dodderware.com/what-is-tr-369/) and [TR-069 vs TR-369](https://blog.dodderware.com/tr-069-vs-tr-369/).

> **Did you know?**
>
> The RX value does not arrive as a decimal. `OpticalSignalLevel` is an integer, so an ONT receiving −18.5 dBm reports
> `-18500`, and the value has to be divided by 1000 before it can be compared with any band (DWS · Integration
> boundaries). Forget the division and every ONT looks out of range.

## What usually causes a low reading?

When RX drops into the warning band, the field hints DWS Support shows next to the reading name three usual suspects on
the fiber path: a dirty splice, tight bends or a degraded splitter (DWS · Product brief). None of them can be fixed from
a console. What a remote check can do is replace a guess with evidence: confirm the reading and its band, then send the
field visit with the number in hand.

A borderline ONT does not have to look broken. In DWS Support, device status comes from how recently the device last
reported, and optical health is graded separately, so an ONT can be Operational while its optics sit in the warning
band (DWS · Product brief). That is why the optics deserve a look even when the status is green.

## Should you use these numbers as they are?

Treat them as a starting point. The DWS documentation describes them as defaults (DWS · Non-functional), each held in a
configuration value: the healthy RX band defaults to −24 to −8 dBm, the RX warning floor to −27 dBm and the healthy TX
band to 0.5 to 5 dBm (DWS · Backend design). Setting the operator’s own optical bands is the first step of a new DWS
Support setup (DWS · Product brief).

The documentation does not tie these values to any standard. Quote them as one product’s defaults, not as a rule for
every network, and check which bands your own network uses before you compare readings across teams.

> **Where DWS Support fits**
>
> DWS Support grades every ONT’s RX and TX power against operator-defined health thresholds, on the device’s optics view
> and in its health banners. Across the fleet, an RX power histogram and a count of unhealthy devices show the state of
> the optical base. The histogram groups readings in bands 3 dB wide and marks the median, and a click on a bar lists
> the devices behind it. OLTs are monitored over SNMP on a schedule, with alarms sent to signed webhooks.
>
> [See DWS Support](https://dodderware.com/products/dws-support/)

## How do you check an ONT’s optics remotely?

Put together, a remote optical check takes five steps:

1. **Check that the ONT is reporting.** An optical reading only exists while the ONT can report it. DWS Support marks
   a device Degraded after 15 minutes without an Inform, and Offline after 24 hours (DWS · Product brief). The last
   reading of a silent ONT tells you about the past, not the present.
2. **Read RX power and convert it.** Take `OpticalSignalLevel` and divide it by 1000 to get dBm.
3. **Place it in a band.** By default, healthy from −24 to −8 dBm, a warning from −27 up to −24 dBm, and critical
   outside that range. Use your own bands if you have set them.
4. **Check TX as well.** The default healthy range is 0.5 to 5 dBm.
5. **Send the evidence.** A low RX reading points to the fiber path, so escalate the field visit with the reading and
   its band attached.

A fleet check needs both views: the optical bands for the ONTs that report, and the status for the ones that do not.

Optics are one part of remote support. Updating the firmware the ONT runs is another, covered in
[firmware upgrades with USP](https://blog.dodderware.com/usp-firmware-upgrade/).

## Did you know?

- DWS Support’s default healthy band for ONT RX power runs from −24 to −8 dBm, with an optimum around −14 dBm. (DWS Support defaults)
- RX readings from −27 dBm up to −24 dBm fall in the warning band, and anything below −27 dBm is critical. (DWS Support defaults)
- The healthy band has an upper edge too. A reading above −8 dBm is graded critical, the same tier as one below −27 dBm. (DWS Support defaults)
- DWS Support reads RX power from the TR-181 parameter Device.Optical.Interface.1.OpticalSignalLevel, an integer it divides by 1000 to get dBm. (DWS · Integration boundaries)
- The default healthy range for ONT TX power is 0.5 to 5 dBm. (DWS Support defaults)

## Questions people ask

### What is a good RX power for a GPON ONT?

In DWS Support’s default bands, anything from −24 to −8 dBm is healthy, with an optimum around −14 dBm. Operators can set their own bands, so check the thresholds your network uses.

### Is −27 dBm too low for an ONT?

In the default bands, −27 dBm is the lowest warning value. Readings from −27 up to −24 dBm are a warning, and anything below −27 dBm is critical.

### Can ONT RX power be too high?

Yes. The default healthy band has an upper edge at −8 dBm, and DWS Support grades any reading above it as critical, the same tier as a reading below −27 dBm.

### What is a normal TX power for a GPON ONT?

DWS Support’s default healthy range for ONT TX power is 0.5 to 5 dBm. Readings outside that range are flagged.

### Which TR-181 parameter holds the ONT’s RX power?

Device.Optical.Interface.1.OpticalSignalLevel holds RX power and Device.Optical.Interface.1.TransmitOpticalLevel holds TX power. Both are integers, and DWS Support divides them by 1000 to get dBm.

### What causes low RX power on an ONT?

The field hints DWS Support shows next to a low reading point to the fiber path, with a dirty splice, tight bends or a degraded splitter as the usual suspects. All three need a field visit.

## Sources

- Dodderware, DWS Support product and engineering documentation.
- DWS · Non-functional: Default optical thresholds for ONT RX and TX power, and the TR-181 parameters behind them
- DWS · Integration boundaries: TR-181 optical parameters and their conversion to dBm
- DWS · Backend design: Configuration values that hold the optical defaults
- DWS · Product brief: Device status, the optics view and its field hints, health thresholds and fleet analytics

---

**Manage TR-069 and TR-369 devices from one console.** DWS Support brings every ONT and home router into one web console, whichever protocol it speaks: TR-069 through GenieACS or a built-in ACS, TR-369 through a native USP controller. Self-hosted on your infrastructure. [Request a demo](https://dodderware.com/products/dws-support/#get-started)
