Platform Roadmap & Planning Budget

Build the Safe Haven Metal Wholesale Trading Platform

A separate, account-only site where dealers buy from and sell to Safe Haven Metal at live PlatformGold pricing. Built in phases, pricing engine first.

Prepared by MRA
Phased Engagement
Draft v4 · August 6, 2026

Safe Haven Metal's retail store sells to the public. This is a different business: independent coin shops and small dealers trading in both directions, at wholesale spreads, on prices that move by the minute. It needs its own site, its own pricing, and a checkout that works more like a trading desk than a shopping cart. The foundation is moving pricing control into a single sheet where Luke sets his premium against PlatformGold's ask and bid — one place that drives the wholesale site now and can feed the retail store later.

These are planning ranges, not a quote. Each phase is scoped lean: the smallest version that genuinely works, with room to expand once the foundation is in place. The target is completion across 2027 — the phases are sequenced but deliberately undated, since there is no hard deadline driving this. Once positions are picked in each range, this converts into a detailed scope and a fixed fee schedule.

Where the effort goes

Phases 1 and 2 are prerequisites; 3, 4 and 5 build on them in sequence. Phase 3 is the largest, because the trade ticket is where live pricing, the countdown and the final price check all have to work together under time pressure. Phase 1 is the smallest relative to its importance, because most of that ground has already been covered.

Pricing Engine & Control SheetPhase 1
$5,265–5,980
Wholesale Site & AccountsPhase 2
$4,695–7,900
Buy Side & Trade TicketPhase 3
$7,840–13,560
Sell Side & BuybacksPhase 4
$3,945–8,630
Card & ACH on FilePhase 5
$5,240–7,940
SmallerLarger

Phase detail

Phases 1 and 2 come first and are sequential. Phase 3 depends on both. Phase 4 depends on Phase 2 and on the bid side of Phase 1, but not on Phase 3, so the buy and sell sides can be built in either order once the foundation is down.

Phase 1

Pricing Engine & Control Sheet

$5,265–5,980

Before all other work · Groundwork for the retail store later

  • One sheet controls the pricing. PlatformGold's ask and bid pull into a master sheet per product. Luke sets one premium per product alongside them, and the sheet produces the wholesale ask and the wholesale bid from it. A retail ask column is built in at the same time, so the same engine can drive SafeHavenMetal.com later without being rebuilt.
  • The sheet sends prices and premiums both. Calculated prices drive the catalog, so browsing stays fast and does not depend on PlatformGold being reachable at that moment. The premiums go across as well, because at the trade ticket and again at the final price check the site calls PlatformGold for the live number itself, and it needs Luke's premium on hand to turn that raw ask or bid into the dealer's price.
  • Freshness where it counts. Catalog prices are indicative and refresh on the sheet's schedule. The trade ticket runs live on a countdown. The check at submit confirms against PlatformGold before the order transmits. That is how PlatformGold's own desk behaves, and it is what keeps the catalog quick without ever committing to a stale number.
  • Availability is tracked per side, not per product. A product PlatformGold has no bid on can still be bought; a product that is out of stock can still be sold back. One flag for both would take half the catalog off the table for no reason, so each direction carries its own.
  • Turn off the plugin's own pricing. The PlatformGold plugin currently calculates prices product by product on a timer. That gets disabled to cut the load off the server. The plugin stays in place for sending orders.
  • Rebuild the sync to handle the catalog. The existing script writes to the sheet one cell at a time — at roughly 870 products that is thousands of separate operations per run, and it is the reason syncs take minutes. Writing in batches takes the same job to well under a minute and leaves room for the catalog to grow.
  • Separate API credentials for the site and the sheet. PlatformGold cancels the previous access token every time a new one is issued, so two systems sharing one login will quietly knock each other offline. Two sets of credentials removes the problem entirely.
Range breakdown
Sheet structure, premium & retail columns$925–1,110
Price & premium push to site$2,035–2,220
Per-side availability & sync rebuild$1,665–1,850
Plugin shutdown, credentials & testing$640–800
Assumes PlatformGold issues a second set of production credentials at no cost. Sandbox access is already in place.
What moves the range Not much, and that is the point. This is the one phase where the ground is already largely covered — the sheet, the price push and the sync have all been built and run before. The remaining spread is how much of the existing sync survives the move to batched writes, and how much of the availability logic has to be reworked to carry each side separately. Moving the retail store onto the engine is not included here; the retail column is built so that cutover stays a small job later.
Phase 2

Wholesale Site & Accounts

$4,695–7,900

Sequential with Phase 1 · Prerequisite for buy and sell

  • A separate site, not a section. Its own installation, catalog, and checkout, so nothing about wholesale terms can leak into the retail store or vice versa.
  • Password-gated, the way wholesale sites usually are. Nothing is visible without an account. Dealers register, and the account lands view-only — they can see the catalog and the spreads, but cannot trade — until Luke approves it. Approval is manual and deliberate, not automatic on signup.
  • Application and approval. Dealers apply with their business details, their resale or exemption certificate, and the identity information the trading relationship requires. Luke reviews and approves before the account is switched to trading, so the paperwork is settled before the first order rather than in the middle of it.
  • A catalog built for dealers, not shoppers. Product lists showing ask and bid side by side, filterable and searchable, built for buyers who already know what they want. Closer to PlatformGold's own screens than to a retail store. Category structure comes across from PlatformGold rather than being invented here.
  • The design direction gets set here. Core screen templates for the catalog, the product view and the account area, with density and speed as the priority rather than decoration — the people using this are pricing trades, not browsing. Everything built in later phases inherits that direction instead of being styled screen by screen.
  • Resale certificates on file. These accounts are resale-exempt, so no sales tax is collected. Exemption is tracked per account with the certificate attached to it, so the record is where it needs to be if anyone ever asks for it.
  • A clean start. No customers, orders or history to migrate. The site opens with the catalog and the first approved accounts.
Range breakdown
Design direction & core screens$800–1,120
Site setup & theme build$640–960
Application, approval & account status$1,295–2,220
Catalog, categories & list views$925–2,035
Exemption tracking per account$555–925
Product import & ID mapping$480–640
Hosting is already handled on Safe Haven Metal's side. See the note under Total investment.
What moves the range How far the catalog experience goes, and how much design sits behind it. The low end is a clean filterable list with both prices and a working cart. The high end adds saved lists, quick ordering by SKU, and per-account views — the things that make a dealer's second visit faster than their first — on a more considered design foundation.
Phase 3

Buy Side & Trade Ticket

$7,840–13,560

Depends on Phases 1 and 2

  • A live trade ticket. Running total, a countdown, and prices that refresh on a timer — so the number a dealer executes on is the number they have been watching, not a surprise at the end. This mirrors how PlatformGold's own desk works, which is what these customers already expect.
  • Final price check at execution. The site calls PlatformGold at the moment the order is placed and confirms the live number before the order is committed. This mechanism already works on the retail store and carries over.
  • The trade transmits at submit, ahead of the money. Buy orders are standard WooCommerce orders and go straight to PlatformGold as sales orders — direct creation, not the quote-and-execute path that expires in thirty seconds. The wire arrives afterward. That gap is real and deliberate: it is why card and bank details are held on file as collateral, covered in Phase 5.
  • The $29 processing fee, applied by the rule below. It mirrors PlatformGold's own $24 handling charge with a small margin over it. Conditional fee tooling is already running on the existing site, so most of this is configuration rather than new code.
  • Quantity rules enforced in the cart. Some products only trade in set multiples. The cart catches that before submission rather than letting the order fail at PlatformGold.
Range breakdown
Trade ticket design$960–1,440
Ticket build & live refresh$2,405–4,070
Final price check at submit$1,295–2,220
Order transmission & tracking$1,480–2,405
Failed-transmission queue & retry$370–1,110
Processing fee & quantity rules$370–555
Testing against sandbox$960–1,760
Payment gateway and stored-credential work is covered in Phase 5. This phase assumes a working gateway is in place.
SideFee applies whenFee
Buying Order falls under 10 oz gold, 300 oz silver, or 10 oz platinum or palladium $29
Selling back Order value falls under $15,000 $29

Two thresholds because the two sides are measured differently — weight is what PlatformGold charges against on the way out, value is the sensible test on the way back. The value threshold on the buyback side is configuration in tooling already in place. The weight thresholds on the buy side need a little code, since they are measured per metal rather than against a single cart total. There are no other order minimums; a dealer can trade any size, the fee simply attaches below the line.

What moves the range How much operational visibility is built around failures. The low end places orders and logs the result. The high end adds an admin queue for anything that did not transmit cleanly, with one-click retry — worth having the first time an order silently does not land.
Phase 4

Sell Side & Buybacks

$3,945–8,630

Depends on Phase 2 · Independent of Phase 3

  • A buyback is not a sale, and is not recorded as one. No payment collected, no sales tax, and buybacks never appear in Safe Haven Metal's sales figures. This gets its own WooCommerce order type in its own admin tab rather than being forced into the normal order screen. High-performance order storage is already switched on, which is what makes a custom type practical here.
  • The purchase order goes out by direct API. The PlatformGold plugin only knows how to send sales orders, so the purchase side is written against the API directly rather than extending the plugin.
  • Both legs lock at commitment. The dealer's payout — PlatformGold's bid, less Safe Haven Metal's markdown — is fixed the moment they commit, and the purchase order goes to PlatformGold in the same instant. Both sides locked together means the spread is the margin, no matter what the market does while the metal is in transit. This is the difference between a predictable business and an accidental bet.
  • The metal ships straight to PlatformGold. Safe Haven Metal never handles it. The destination comes from PlatformGold's warehouse list.
  • The label comes back from Upstate with the purchase order. The site passes it through to the dealer rather than producing one, which is the smaller piece of work by a clear margin. Dealers who would rather ship on their own carrier account can do that instead, using the same "Use My Shipper" approach already proven on the Midwest site. See the note on labels below.
  • Payment flows in order. PlatformGold receives the metal and pays Safe Haven Metal, then Safe Haven Metal pays the dealer the locked amount. No money goes out before money comes in.
  • An admin list for open buybacks. What is committed, what has shipped, what has landed at PlatformGold, and what is owed — because between commitment and payout there are several days and several things that can stall.
  • How much of the middle runs itself is a choice. At the lean end Luke moves each buyback along by hand — marks the metal shipped, marks it received, marks the dealer paid. At the fuller end the site tracks settlement against PlatformGold and raises a payout queue on its own. That difference is most of the spread in this phase, and it is the thing that stops mattering at low volume and starts mattering quickly once buybacks are routine.
Range breakdown
Custom order type & data model$1,110–2,035
Bid lock & purchase order API$1,110–2,220
Label read-back & shipping instructions$370–740
Settlement tracking & payout queue$555–2,035
Flow design, admin views & testing$800–1,600
Assumes the label comes from Upstate. Buy and sell are not netted against each other in version one.
What moves the range Whether settlement and payouts are tracked by Luke or by the site. The low end is a working custom order type, the purchase order call, the label handed back, and a status field he updates as each buyback moves. The high end tracks settlement automatically and raises payouts as a queue, on fuller sandbox testing against the purchase order endpoint — which is the piece of this project with the least prior art behind it, since the plugin has never sent a purchase order and neither have we.
Phase 5

Card & ACH on File

$5,240–7,940

Depends on Phase 3 · Applies to both directions

  • This exists because the trade goes out before the money comes in. Wire and check are the primary methods, but the order is already live at PlatformGold by the time the wire lands. Something has to stand behind that gap. Card and bank details held on file, with an authorization hold placed at commitment, is that something — collateral against a dealer walking away from a position that has already been taken.
  • The card is stored at the processor, not on the site. A secure token stands in for the card number, so Safe Haven Metal can charge later without ever holding card data.
  • Verified at the time of the trade. An authorization confirms the card is live and the account is real before the trade is committed, and the hold sits there while the wire is in flight.
  • ACH is planned as the third method. Bank details are captured and stored on the same footing as the card. Whether ACH is switched on at launch or follows shortly after is an open question, noted below.
  • The terms have to carry it. Storing credentials and charging them later requires clear authorization. The terms of service and the language at checkout need to say plainly what can be charged and when — including what happens to a dealer who abandons a committed trade. That exposure is handled in the terms, in writing, rather than being built as a calculation in software.
Range breakdown
Card storage & tokenization$1,665–2,220
Authorization hold at commitment$1,295–2,035
Bank details on file & ACH$1,480–2,405
Terms & checkout disclosure$800–1,280
Gateway fees and any processor setup charges are billed by the processor directly.
What moves the range Whether ACH ships with this phase or follows it. The low end stores the card, places the hold, and captures bank details for manual use. The high end wires ACH up as a live payment method, which brings its own verification, return handling and settlement timing along with it.

The label question

A note on whose name is on the shipping label

When a dealer sells metal back, it ships directly to the upstream warehouse, and the label comes from Upstate along with the purchase order. The site hands it to the dealer rather than generating one. This is the cheaper path by a clear margin, and it is what the Phase 4 estimate assumes.

The tradeoff is worth stating plainly rather than discovering later. That label carries the upstream provider's name and warehouse address, so any dealer who reads it learns who is on the other side of the trade. Given that the wholesale relationship is otherwise private, that is a real disclosure — and it happens on every single buyback, not occasionally.

The alternative stays available: generating a Safe Haven Metal label on Safe Haven Metal's own FedEx account, shipping to the same warehouse with none of the upstream branding on the paperwork. The approach is already proven — the Midwest site does exactly this today — but the plugin behind it was built against FedEx's older SOAP interface and would likely need migrating to FedEx's current REST API first. That migration is the reason it sits outside the first version rather than inside it.

Rating is driven by weight either way, with declared value as an option for dealers who want the insurance.

Total investment

Planning range
Phase 1, pricing engine Prerequisite for everything · sets up the retail store too$5,265–5,980
Phase 2, site and accounts Prerequisite for buy and sell$4,695–7,900
Phase 3, buy side and trade ticket Depends on Phases 1 and 2$7,840–13,560
Phase 4, sell side and buybacks Depends on Phase 2$3,945–8,630
Phase 5, card and ACH on file Depends on Phase 3$5,240–7,940
All phases$26,985–44,010
Plus gateway fees and any plugin licenses, billed at costNominal

On rates: programming, integration and the analysis behind them are billed at $185 an hour. Design, environment setup, product import and testing are billed at $160. Across the project as a whole that blends to roughly $178 an hour at either end of the range.

On timing: the target is completion across 2027. The phases are sequenced but not dated, because there is no hard deadline pushing this and the sensible pace is one phase properly finished before the next begins.

On hosting: this is already handled on your side, so nothing is budgeted for it here. If it would be useful, we are happy to put together a comparison against a managed host such as WP Engine. The draw is genuine staging and production environments, a dependable backup and restore process, and more headroom for a site doing this much live price processing. Let us know and we will pull one together.

Built to be repeatable

A note on where this could go

Safe Haven Metal and PlatformGold have discussed this eventually being something smaller coin shops could use. That does not change what gets built in the first version, but it does change how. Premiums stay configuration rather than code. Accounts are modeled as businesses rather than individuals. The pricing engine carries a retail column from day one. Nothing specific to Safe Haven Metal's own terms gets written into places a setting would do just as well. The cost of that discipline now is close to nothing. The cost of retrofitting it later is most of a rebuild.

Settled & still open

Decided

  • Pricing lives in the sheet. Ask and bid from PlatformGold, one premium per product set by Luke, wholesale ask and wholesale bid out — with a retail column built in for later.
  • Orders go directly to PlatformGold rather than through the quote-and-execute path, which expires in 30 seconds.
  • The trade goes live at submit, ahead of the wire. Card and bank details on file with an authorization hold cover the gap.
  • Market loss is a terms matter, not a build. The exposure is real and the terms have to address it plainly, but nothing calculates it in software.
  • Buy and sell stay separate in version one. No netting a purchase against a sale on one ticket.
  • Buybacks get their own order type in their own tab, sent to PlatformGold as purchase orders by direct API.
  • The site is password-gated and no account trades until Luke has approved it by hand.
  • Buyback labels come from Upstate. Materially less to build, and the cost is that the label names the upstream provider — accepted for version one.

Needs an answer before build

  • ACH at launch, or shortly after. Wire and check carry the business on day one. Adding ACH in Phase 5 rather than as a follow-on is a judgment about how much the dealers will actually ask for it.
  • A second set of PlatformGold production credentials, so the site and the sheet are not cancelling each other's access. No cost expected, but it needs asking.
  • Dealer licensing and reporting. Buying metal from other businesses carries obligations that selling does not. Worth a conversation with Luke's accountant before the account form is designed, since it determines what has to be collected up front.

Boundaries & next steps

Not included, or held for later

  • A market loss calculation engine. Handled in the terms and, if it ever happens, by hand. Not scoped as software.
  • Netting a buy against a sell on a single ticket. PlatformGold does this, but it extends credit against goods not yet received, which is a different kind of risk than trading. Worth revisiting for established accounts once there is a track record.
  • Opening the platform to other coin shops. The groundwork is laid, the work is not.
  • A Safe Haven Metal branded shipping label. Held until the FedEx interface migration is worth doing.
  • Moving the retail store onto the new pricing engine. The engine is built ready to take it; the cutover itself is its own piece of work.
  • Migrating history. The wholesale site starts clean — no customers, no orders.
  • A separate brand identity. This works within Safe Haven Metal's existing look. A distinct wholesale brand, name or logo is its own exercise.
  • Content and product copy for the new site.
  • Ongoing maintenance. This is project work. Keeping it current is better handled as a standing arrangement.

To move this forward

  • Pick a position in each range. Phases do not need to sit at the same level. A thorough pricing engine with a leaner first catalog is a sound configuration.
  • Confirm the label disclosure is acceptable. Using Upstate's label is the assumption behind the Phase 4 number. It also tells every dealer who the upstream provider is, so it is worth a deliberate yes rather than a default.
  • Confirm the premium structure. This assumes each product carries one flat premium worked against ask and bid. If any of them shift based on the price itself, that needs to be known now.
  • Request the second set of credentials from PlatformGold before Phase 1 starts.
  • Have the licensing conversation with the accountant, since the answer shapes the account application.