I'm passing a tx and feeRate param to fundrawtransaction which gives me back the hex of the signed tx and its fee. I'm not passing a conf_target or estimate_mode. I pass the resulting hex to decoderawtransaction to get the size/vsize of the tx. I'm trying to check the actual fee rate of the signed tx by calculating `fee * 1000 / vsize` but it doesn't seem to match the rate that I passed in as a parameter. I've tried with a few different values but the actual rate always seems to come out higher than the requested rate by a factor of about 1.59, give or take a little bit. So am I calculating the observed rate improperly? Is it even possible to have the resulting fee rate exactly match the one provided by the feeRate parameter? Here's an example of constructing a tx with amount 0.00073749 and feeRate 0.00001000. Proposed tx from createrawtransaction: { "txid": "de380dec00d86611bab1cfa825a7069ffde31d7fb0c5b91e381ef79b94d927e0", "hash": "de380dec00d86611bab1cfa825a7069ffde31d7fb0c5b91e381ef79b94d927e0", "version": 2, "size": 41, "vsize": 41, "weight": 164, "locktime": 0, "vin": [ ], "vout": [ { "value": 0.00073749, "n": 0, "scriptPubKey": { "asm": "0 de525f12f17a495b7903c2c5b306ee07ccad309f", "hex": "0014de525f12f17a495b7903c2c5b306ee07ccad309f", "reqSigs": 1, "type": "witness_v0_keyhash", "addresses": [ "bc1qmef97yh30fy4k7grctzmxphwqlx26vyl5lve86" ] } } ] } And the signed tx returned by fundrawtransaction: { "txid": "f78b268f9386ab47dd5c0d36caf3aaff5fa719c7a2b5658ff08132159cb6b8cd", "hash": "f78b268f9386ab47dd5c0d36caf3aaff5fa719c7a2b5658ff08132159cb6b8cd", "version": 2, "size": 369, "vsize": 369, "weight": 1476, "locktime": 0, "vin": [ { "txid": "ca6f25d4484ab525fdb907cbce81d3dc9d1974695fcc80639fddfff4b6bca268", "vout": 1, "scriptSig": { "asm": "", "hex": "" }, "sequence": 4294967294 }, { "txid": "9b39ee5637d7b0783715be6ce566283024ee2bea33a9d3bd6f415ae5d8f24e5f", "vout": 0, "scriptSig": { "asm": "", "hex": "" }, "sequence": 4294967294 }, { "txid": "2f2b7eaccc06ea3856cd5b4666a15161d0fac9053ab2bcbb94a490593c969246", "vout": 0, "scriptSig": { "asm": "", "hex": "" }, "sequence": 4294967294 }, { "txid": "b5b2e4e1287438fd8193e1409cdf87181061ab4a3d95f50d2bf1bc2534b2d49c", "vout": 0, "scriptSig": { "asm": "", "hex": "" }, "sequence": 4294967294 }, { "txid": "3de9c3690c77f544b0d953c70d97f50bb9790a847bed9972caca960218c6c8f6", "vout": 0, "scriptSig": { "asm": "", "hex": "" }, "sequence": 4294967294 }, { "txid": "5e0021645a37473afdff1720da902f0abe183fb48719169e96b5235bb6b09e25", "vout": 0, "scriptSig": { "asm": "", "hex": "" }, "sequence": 4294967294 }, { "txid": "f92dbcf77c13d887d8aa77404dc78120c90d055a32b4d51196849affc3866ade", "vout": 0, "scriptSig": { "asm": "", "hex": "" }, "sequence": 4294967294 }, { "txid": "e425c6e84bc671bfb3a80bd95d1925007e12483fdcf3a19094bde8a36ae0d9fd", "vout": 0, "scriptSig": { "asm": "", "hex": "" }, "sequence": 4294967294 } ], "vout": [ { "value": 0.00073749, "n": 0, "scriptPubKey": { "asm": "0 de525f12f17a495b7903c2c5b306ee07ccad309f", "hex": "0014de525f12f17a495b7903c2c5b306ee07ccad309f", "reqSigs": 1, "type": "witness_v0_keyhash", "addresses": [ "bc1qmef97yh30fy4k7grctzmxphwqlx26vyl5lve86" ] } } ] } In this case the fee is 0.00000668 so the rate I calculate is `0.0000668 * 1000 / 369 = 0.00001810` as opposed to the requested 0.00001000