Minor bug in the calculator: When calculating the stat boosts based on which shipwright, the additional bonus from the higher shipwrights is additive, not multiplicative. I.e. for the nautical shipwright, the bonus should be 1.03 for morale, 1.03 for combat, and 1.05 for seafaring, not 1.0506 for seafaring. Proof: Here's a screenshot of one of my current voyages: and here is the output of my program (which, incidentally, is much faster than this JS one) used to pick that voyage setup: Input stats for which to search: 0 0 10500 Bonus: Item(1.03,1.03,1.05,1.03,,0) Best result has a 100.70% chance: Item(1792.2,2214.5,10573.5,2157.85,,0) Best item1: ornate rigging with stats 0.00 Morale, 0.00 Combat, 1050.00 Seafaring, and 0.00 Speed. Best item2: ornate rigging with stats 0.00 Morale, 0.00 Combat, 1050.00 Seafaring, and 0.00 Speed. Best captain: anne skulltaker with stats 674.65 Morale, 1266.90 Combat, 624.75 Seafaring, and 612.85 Speed. Best ram: battle ram with stats 0.00 Morale, 515.00 Combat, 0.00 Seafaring, and 0.00 Speed. Best hull: hull of storms with stats 412.00 Morale, 412.00 Combat, 945.00 Seafaring, and 309.00 Speed. Best crew: sea witch with stats 612.85 Morale, 0.00 Combat, 1349.25 Seafaring, and 0.00 Speed cartographer with stats 51.50 Morale, 10.30 Combat, 1349.25 Seafaring, and 0.00 Speed cartographer with stats 10.30 Morale, 0.00 Combat, 1338.75 Seafaring, and 0.00 Speed cartographer with stats 20.60 Morale, 10.30 Combat, 1428.00 Seafaring, and 0.00 Speed cartographer with stats 10.30 Morale, 0.00 Combat, 1438.50 Seafaring, and 0.00 Speed (All my numbers there already have the bonus multiplied in to save some computation) You can calculate that by hand to see that it matches up with the stats in the picture. If the bonus were instead 1.0506, then the result would be Best result has a 100.76% chance: Item(1792.2,2214.5,10579.5,2157.85,,0), a difference of 6 in seafaring. This is very minor, but still incorrect.