# Differences between Torflow and sbws

(Last updated 2020-02-18)

## Aggregating measurements and scaling

### Filtering

Torflow does not exclude relays because of having “few” measurements or “close” to each other for that relay, like sbws does Filtering the bandwidth measurements.

However this is currently disabled in sbws.

### Values from the previous Bandwidth File

sbws is not reading the previous Bandwidth File, but scaling all the values with the raw measurements.

Instead, Torflow uses the previous Bandwidth File values in some cases:

- When a relay measurement is older than the one in the previous Bandwidth File, it uses all the values from the previous Bandwidth File. (how is possible that the Bandwidth File would have a newer measurements?):

      self.new_bw = prev_vote.bw * 1000

### Bandwidth File KeyValues

sbws does not calculate nor write to the Bandwidth file the `pid` variables and KeyValues that are used in Torflow. Example of Torflow KeyValues not in sbws:

    measured_at=1613547098 updated_at=1613547098 pid_error=11.275680184 pid_error_sum=11.275680184 pid_bw=23255048 pid_delta=11.0140582849 circ_fail=0.0

sbws does not have `measured_at` and `updated_at` either.

Currently the scaled bandwidth in Torflow does not depend on those extra values and they seem to be just informative.