diff --git a/src/rest_server.cpp b/src/rest_server.cpp
index e5ad1c5..ea197f2 100644
--- a/src/rest_server.cpp
+++ b/src/rest_server.cpp
@@ -540,12 +540,10 @@ namespace lws
         if (resp->size_scale == 0 || 1024 < resp->size_scale || resp->fee_mask == 0)
           return {lws::error::bad_daemon_response};
 
-        const std::uint64_t per_kb_fee =
-          resp->estimated_base_fee * (1024 / resp->size_scale);
-        const std::uint64_t per_kb_fee_masked =
-          ((per_kb_fee + (resp->fee_mask - 1)) / resp->fee_mask) * resp->fee_mask;
+        const std::uint64_t per_byte_fee =
+          resp->estimated_base_fee / resp->size_scale;
 
-        return response{per_kb_fee_masked, resp->fee_mask, rpc::safe_uint64(received), std::move(unspent), std::move(req.creds.key)};
+        return response{per_byte_fee, resp->fee_mask, rpc::safe_uint64(received), std::move(unspent), std::move(req.creds.key)};
       }
     };
 
diff --git a/src/rpc/light_wallet.cpp b/src/rpc/light_wallet.cpp
index d3cc562..e5b5a57 100644
--- a/src/rpc/light_wallet.cpp
+++ b/src/rpc/light_wallet.cpp
@@ -294,7 +294,7 @@ namespace lws
       return expand_outputs{src, self.user_key};
     };
     wire::object(dest,
-      WIRE_FIELD_COPY(per_kb_fee),
+      WIRE_FIELD_COPY(per_byte_fee),
       WIRE_FIELD_COPY(fee_mask),
       WIRE_FIELD_COPY(amount),
       wire::field("outputs", wire::as_array(std::cref(self.outputs), expand))
diff --git a/src/rpc/light_wallet.h b/src/rpc/light_wallet.h
index 21468b0..c38a6f7 100644
--- a/src/rpc/light_wallet.h
+++ b/src/rpc/light_wallet.h
@@ -155,7 +155,7 @@ namespace rpc
   struct get_unspent_outs_response
   {
     get_unspent_outs_response() = delete;
-    std::uint64_t per_kb_fee;
+    std::uint64_t per_byte_fee;
     std::uint64_t fee_mask;
     safe_uint64 amount;
     std::vector<std::pair<db::output, std::vector<crypto::key_image>>> outputs;