Look at a 100 gram PAMP bar. The number stamped on the front is 100 g. Not 3.215 ozt. The whole point of buying that bar in that form was to own a clean, round number in grams.
Now look at a Silver Eagle. It says ONE TROY OUNCE on the back. Not 31.103 grams. Nobody who bought a Silver Eagle thinks of it as 31 point one grams.
The metal does not change. The unit on the package does. Bullion is sold in the unit that makes the most sense for the format. Cast bars and minted bars come in grams almost universally. Sovereign coins come in fractional troy ounces. Some pieces, like a 50 gram CombiBar or a 1 ozt round, are unambiguous. Many are not.
Then you open a tracking app and the app asks you to pick one unit. Grams or ounces. For everything. Forever.
What happens when you pick the wrong default
Say you pick troy ounces because most spot prices are quoted that way. You enter your stack. Your 1 ozt Krugerrand is clean: 1.000 ozt. Your 1 ozt Maple is clean. Your 100 gram PAMP bar is now 3.21507466... ozt, and the app probably rounded it to 3.22.
That rounding sounds tiny. It is not. Multiply it across a 50 ounce stack with a few bars in it and your portfolio total is off by a fraction of an ounce. Worse, you cannot easily verify any individual bar against the stamp on the front, because the number you are looking at on screen is in a different unit than the number stamped on the metal.
Now flip it. Say you picked grams because you live in Europe and grams are how you think. Your 100 gram bar reads 100.00 g. Perfect. Your Krugerrand reads 31.10 g. Your Sovereign reads 7.32 g. Your half-ounce Eagle reads 15.55 g.
Find the half-ounce Eagle in that list at a glance. You cannot. The numbers do not match the stamps. The numbers do not match how you bought the coins. You are now doing arithmetic in your head every time you open the app.
This is the small daily friction of every other tracker on the App Store. It compounds.
The honest answer is per-asset units
The right way to track a mixed stack is to let each item display in the unit it was sold in. Bars in grams. Coins in troy ounces. Karat jewelry in karats and grams. The unit is a property of the holding, not a setting on the app.
When you open the portfolio you see what you actually own. A row that says "1 oz Silver Eagle" with a weight of 1.000 ozt. A row that says "100 g PAMP Bar" with a weight of 100.00 g. The numbers match the metal. The app reads like the receipts in your safe.
Then, separately, the app does the math underneath. Your total weight is calculated correctly across mixed units. Your spot value is calculated correctly across mixed units. Those calculations are the app's job. The display is yours.
Why every other app gets this wrong
Three reasons, all boring.
First, most precious metals trackers were built by developers who own one type of metal in one format. If you only own bars, grams-everywhere works fine. If you only own American Eagles, ounces-everywhere works fine. The mismatch only shows up when you own both.
Second, mixed unit display is harder to build than it looks. The data model has to store the original purchase unit alongside the canonical weight. The display layer has to render correctly in every view, including totals, charts, exports, and tax reports. The conversion logic has to be exact, not rounded for display. Most apps cut the corner and force a global setting.
Third, generic finance apps that bolt on precious metals as one of many asset types do not care enough to get this right. Gold is one row in a portfolio of stocks. They display it in dollars and call it done.
None of these are good reasons. They are explanations.
Purity is the same problem
Once you accept that weight should follow the format, purity follows the same logic.
A Krugerrand is 22 karat. The package says 22K. If your tracker forces you to enter purity as a decimal, you have to remember that 22K means 0.9167 fine and type it in. Get it slightly wrong and the metal value is off forever.
A 1 ozt American Gold Eagle is also 22 karat, but the gross weight is 1.0909 ozt of metal because the alloy is heavier than pure gold. The fine gold content is exactly 1.000 ozt. There are two correct ways to track this and most apps support neither cleanly.
A Maple Leaf is .9999 fine. The package says 9999 or 99.99% or four nines. If your tracker only accepts decimals like 0.9999, you are translating again every time.
The pattern is the same as weight. The packaging knows what it is. The app should match the packaging, not force you to match the app.
What this means in practice
If you only own one format, mixed units do not matter. A pure bar stacker can pick grams and never think about it. A pure coin stacker can pick ounces and never think about it. The default of one or the other is fine for them.
If you own both, which is most experienced stackers, the unit problem is one of those small things that quietly drains the experience. You do not notice the friction the first week. You notice it after a year, when you have entered fifty pieces and you are tired of mental arithmetic.
The fix is not exciting. It is not a feature anyone brags about on a launch post. It is the kind of thing you only appreciate after using a tool that gets it wrong for a long time.
That is why Stacker was built around per-asset units from the first line of code. The app I wanted to use did not exist, so I wrote it.
The bigger pattern
Software defaults reveal what the developer thinks the user is. A precious metals app that forces global units thinks of the user as someone who owns one thing. A precious metals app that supports per-asset units thinks of the user as a stacker with a real, mixed, growing collection.
Both can technically display the same number. Only one matches reality.
Pick the tool that respects how you actually own the metal. Or, if you are still in a spreadsheet, at least add a column for the unit each piece is denominated in. You will thank yourself later.
Frequently asked questions
Can I track gold bars in grams and gold coins in troy ounces in the same app?
In most apps, no. They force a single global unit for the whole portfolio. Stacker is built around per-asset unit display, so each holding can be shown in the unit it was sold in.
Why do bars use grams and coins use troy ounces?
Convention. Cast and minted bars from refiners like PAMP, Valcambi, and Argor-Heraeus are produced in clean gram weights. Sovereign coins like the American Eagle, Krugerrand, and Britannia are produced in fractional troy ounces. The format follows the producer's standard, and the standard varies by region and product type.
Does it matter for portfolio value calculations?
The total value calculation is the same regardless of display unit, as long as the conversion is exact. The problem is when apps round during entry or display. A 100 gram bar shown as 3.22 ozt is wrong by 0.005 ozt. Across a stack, those rounding errors add up.
What about purity formats like 22K versus .9167?
They are the same number. The difference is how it appears on the package. A good tracker should accept both and let you display each piece in the format that matches what is stamped on the metal. Forcing decimal-only or karat-only is the same mistake as forcing a single weight unit.