If you've run the identical hop schedule through two different pieces of brewing software and gotten two different IBU numbers, both are probably doing arithmetic correctly — they're just not doing the same arithmetic. IBU estimation has never been standardised across tools the way, say, a unit conversion is, and the gap between two reputable calculators on a real recipe is routinely 10-20%, sometimes more.
The four places tools genuinely disagree
Which formula it defaults to. Tinseth and Rager are the two most widely implemented, and they diverge by design — different boil-time curves, different (or absent) gravity correction. This site runs both simultaneously specifically so you're never trusting a single number without knowing there's a second, legitimately different one; the Tinseth vs. Rager explainer covers exactly where and why they split. A tool defaulting to Rager and one defaulting to Tinseth will disagree on every single recipe you run through both, before any other factor comes into play.
What gravity value gets used for the correction. Both formulas apply a gravity correction, but "boil gravity" is defined inconsistently across software — pre-boil gravity, average boil gravity, and post-boil OG are all used by different tools as a shortcut, and they're not the same number. On a concentrated boil (partial-volume brew-in-a-bag, for instance) pre-boil and post-boil gravity can differ by several points, and that difference genuinely changes the utilization the formula computes. Run your own boil gravity rather than assuming a tool used the figure you expected.
Pellet vs. whole-cone assumptions. Several popular calculators quietly apply a utilization bump (commonly cited around 10%) for pellet hops on the theory that pellets, being ground and pressed, release alpha acid more completely than whole cones. This site's calculator does not apply that adjustment — see do pellets and whole cones give different IBU for the reasoning — so a schedule run through a tool that does apply it will read consistently 5-10% higher there than here, even with identical inputs otherwise.
First-wort hops, hop stands and whirlpool additions. Tools vary in whether and how they model utilization for hops added at flame-out and held at whirlpool temperature rather than a full rolling boil — some treat a 20-minute hop stand as equivalent to a 20-minute boil addition, others apply a reduced utilization curve for sub-boiling temperatures, and others don't model it at all. If your schedule includes a whirlpool or hop-stand addition, this is very likely where a large chunk of any disagreement is coming from.
What to actually do with two disagreeing numbers
Don't chase a single "true" IBU across tools — treat the spread between formulas, on the same tool, as the honest uncertainty band, and use your own tasting notes over time to calibrate what a given calculated IBU actually tastes like from your process. A beer you've brewed before at a known calculated IBU, tasted and liked, is a far more useful reference point than matching a number generated by someone else's software with someone else's assumptions baked in.