If this compass is not calibrated, then the data you get is likely to be very inaccurate - in my case accuracy varied enourmously during a 360 rotation and was between 20-80 degress out when uncalibrated.
After a fair bit of research & effort I have tracked down some information and made a good start at calibrating the X & Y axis, but have not done the Z axis yet.
Also I have not finished - eg the localisation part, but felt I should publish before I get sidetracked on one of my many many other projects.
I have updated the sample code including plenty of doco/instructions at http://www.seeedstudio.com/wiki/Grove_-_3-axis_Compass_v1.0b. This code also points to some Processing code (hosted on my own site) to help display and calibrate your data.
I hope this is a good start to a complete 3D calibration process for this sensor.