This set of weights exceeded my expectations for accuracy given the price point. I will be the first to say that the case on this absolutely sucks. The holders for the round weights aren't terrible, but the spots for the square weights below 1g really need to have a better cover. The stock cover for the holders doesn't cover the entire opening. As such, the smaller weights (especially the ones below 100mg) are prone to escaping from their compartment and flying around the case. The bottom part of the case is made from two plastic pieces glued together, but there is a gap between them. When I first put this set of weights away, I didn't know about this problem. When I opened the box the next time, the 1mg weight was mysteriously gone, and some of the other weights were scattered around the inside of the box. Low and behold, the 1mg weight found its way into the very bottom of the box, between the two glued plastic pieces. The only way I was able to retrieve the weight is via the assistance of a strong rare earth magnet (prying the box apart would have worked as well). I suspect this is why some other reviewers are losing their smaller weights.To avoid this happening again in the future, I designed a 3D printed cover that protrudes slightly into each compartment. The OpenSCAD code is at the end of this review. My piece printed slightly tight, so I would recommend scaling down by a few percent if you print this yourself. I'm also not entirely sure if it's necessary to run the cover down into each compartment - a flat cover might be perfectly acceptable.Now for the part of the review I'm sure most came here to see... the actual weight of each of these weights. To weigh these, I used my Mettler Toledo AE 260 scale. It is an older model, over 20 years old at this point, but it's still accurate and precise. There is a built-in 100g calibration weight, but I was worried it might have lost some mass due to corrosion over the years. I ended up buying a 10g ASTM Class 1 calibration weight, and my scale measured this as between 9.9999 and 10.0000grams after calibrating to the internal 100g weight. Essentially: the weights I have measured here are precise to 0.1mg, with the caveat that they are potentially up to 0.1mg less than the true weight, according to an ASTM Class 1 calibrated weight.The theoretical weight, and my measured weights are as follows:50g: 50.0095 g20 - 19.9976 g20 - 20.0016 g10 - 10.0052 g5 - 5.0014 g2 - 1.9983 g2 - 2.0011 g1 - 1.0015 g500mg - 499.9 mg200 - 200.0 mg100 - 100.5 mg50 - 50.0 mg20 - 20.0 mg10 - 10.0 mg1 - 1.1 mgAs you can see, the actual weights are relatively close to the listed weights. They're not perfect, and off by quite a bit when compared to many international standards. That being said, these weights are not meant for high accuracy lab work - they are meant for a home user. Although I'm sure there are some, I'm not presently aware of any home applications where a 10mg error at 50g is a deal-breaker (honestly, this is even perfectly fine for a lot of general lab applications).As long as potential buyers of this weight should are aware of the intended user base, I think this a great set. I personally just use this to verify my scale is reading in the right ballpark across its entire range, and for that it's great. Of course I would prefer a full set of ASTM I calibrated weights with a nice case, but I don't want to spent $500-$1000 on a set of weights.For anyone reading this review, please note that the weights listed above are for my specific set of weights only. I can almost guarantee your set will be different. What you're paying for when you buy an $80 ASTM calibrated weight is the guarantee that it will definitely be within 0.xxx mg of the specified weight. With this cheap set, all you are guaranteed is that the weight will be within a few percent of the specified weight. Some will be nearly perfect, but many will be off considerably.OpenSCAD code for replacement lid:module indentations(){cube([14.5, 20.5, 5]);translate([16.25, 0, 0]) cube([13.5, 20.5, 5]);translate([31.5, 0, 0]) cube([13.5, 20.5, 5]);translate([46.75, 0, 0]) cube([12.5, 20.5, 5]);translate([61, 10.5, 0]) cube([7.75, 10, 5]);translate([70, 10.5, 0]) cube([7, 10, 5]);translate([79, 10.5, 0]) cube([5.75, 10, 5]);translate([86, 10.5, 0]) cube([5.75, 10, 5]);translate([93.5, 10.5, 0]) cube([5.8, 10, 5]);translate([61, 0, 0]) cube([14.5, 8.75, 5]);translate([77.5, 0, 0]) cube([10.1, 8.75, 5]);translate([89.5, 0, 0]) cube([10, 8.75, 5]);}translate([0,1,0]) indentations();translate([0,0,1]) cube([99.5,23.5,5]);translate([25,5,3]) cube([8,12,10]);translate([67,5,3]) cube([8,12,10]);