South Africa has a transparency problem with diamonds. Rapaport publishes a wholesale price list every Friday, but it is paywalled and trade-only, so most buyers walk into a mall jeweller with no way to tell whether the markup in front of them is 30% or 150%.
So I built DiamondScope: a free, no-signup web tool that takes a diamond spec (shape, carat, the four Cs) and reverse-engineers the Rapaport-equivalent baseline in rand, then shows what the same stone costs manufacturer-direct vs at a boutique vs at chain retail.
What it does
- Pick shape, carat, colour, clarity and cut.
- It computes a Rapaport-equivalent ZAR baseline and the three-channel price spread.
- Paste a retail quote you have been given and it tells you how far above the wholesale baseline you are being asked to pay.
- What-if cards show how each grade change moves the price.
How the pricing model works
The engine anchors on a 1ct G/SI1/GIA-Excellent round brilliant as a 1.0 baseline, then applies coefficients for carat, colour, clarity, cut and shape. Channel prices are that baseline multiplied by observed RAP-minus / RAP-plus factors per retailer tier (manufacturer-direct sits around RAP-minus 35%, chain retail well above). It is calibrated against published manufacturer-direct quotes and refreshed periodically.
It is deliberately an indicative reference, not a contract. For a specific stone the cutter is always the source of truth.
The build
- Static site on Astro, so the calculator is plain client-side JavaScript: no backend, no accounts, no tracking.
- The whole model is a set of coefficient tables, which keeps it auditable: anyone can read how a number is produced.
- It ships SoftwareApplication JSON-LD so it is machine-readable as a tool.
You can embed it
Because it is a static page, it is embeddable. There is an embed mode that strips the site chrome, plus a copy-paste snippet on the page. Try it here: https://naturaldiamond.co.za/diamondscope/
Feedback welcome, especially on the pricing model from anyone who works in the trade.
Top comments (0)