I have a full 4x8 router mill running and everything is dialed in and reliable, it's closed loop so I can guarantee no missed steps or mechanical issues. I just started cutting test pieces to make sure I have full accuracy in all 4 corners as well as the center but have an issue.

I have a test shape that is complex, has nooks and notches on X and Y sides so that any errors are easy to find (it's a little 200mm stool to test slot fitting as well). My problem is that EVERY dimension is +0.6mm (+0.3mm/face machined) than expected in every direction and is fully repeatable in all 4 corners.

I first suspected my end mill was wierd but It is 1/4" (6.35mm) and is this one SOWA #103-854.
When I open the gcode and do some point math on the file my 200mm piece is 200mm + 1/2 the tool dia each side so 206.35 as expected. This results in cuts +0.3mm/face. I can eliminate this error by having a -0.3mm correction factor in CAM (I am using Cut2D Desktop) but I would like to figure out WHY this is happeneing first.

Looking at the design of the test piece I used a 9mm nominal thickness and cut it out of 8.47mm (3/8 ply). If I scale the design down 94.11% and use no offset factor in CAM I get a perfect fit in reality cut not the dimention I designed. This will work for fully new designs but if I want to make something to fit an existing project the scaling concept will not work at all.

I then did the most simple thing of cutting a 100mm square with a v-care bit in the router. When cutting on the line its 100% accurate.

Any idea where this 0.3mm/face error is coming from?