After some frustration with this I've figured out a way that has been consistent for me.
I use boxes ranging in size from 4x6x6 to 12x12x15 that weight from less than 1 lb up to 12+ lbs. I set my default to 8x8x6.
I use both USPS and UPS, USPS tends to be cheaper for smaller packages, ones that price out as they should using the weights I've entered for each product. When an order gets larger, UPS is the much cheaper option.
Pieces that I know will definitely need a larger box, even if bought alone, I increased the weight of each item in the system. (UPS has an equation on how dimensions equate to weight but I just added a few ounces here because the key comes next)
Within shipping you can add a percentage handling fee. I use this to cover shipping supplies but recently realised, if I increase my UPS percentage fee to 30% (this is just what works for me shipping ceramics) then the bigger orders, that people tend to use the UPS option for as USPS's prices shoot up, are more accurate and it doesn't impact my smaller orders as people default to the cheaper USPS option.
It may not make logical sense to you, but if you use these carriers it might be worth a try!!
That's what I've been doing.....One of the items I sell straw is hats that ship in a 16x16x8 box. 1 straw hat in the box weighs 1.2lbs. I tested it out with a zip code of an area where most of my customers are. I would just add the item to my cart with a shipping address and edit the weight until the shipping quote matched what the actual cost was. In this case it came out to 3.5lbs to make it $12
But here is the catch, Someone in a rural area on the other side of the country bought one of these hats....quoted him $14, but actually cost me $22 to ship. This isn't often but very frustrating that I gotta 'hack' their current shipping algorithm but it still isn't close by any means.