If the Bulk Import option in the app is missing, locked, or otherwise unreachable from your account, that's the plan-gating doing its job. Bulk Import — the CSV-based way of bringing in many transactions at once — is a Premium-only feature. It isn't available on Starter or Pro, and the absence isn't a bug.
This article explains what Bulk Import does, why it sits on Premium, how to unlock it if you want it, and the realistic alternatives if you'd rather stay on your current plan.
Where Bulk Import lives when it's available
A quick orientation, because this catches some Premium users too: Bulk Import isn't in the left navigation. The entry point is the Bulk Import button in the top-right of the Add Purchase form. On Premium, that button is active and opens the import flow.
On Starter and Pro, the button either isn't visible or is disabled — which is what brought you here.
The deeper walk-through of where the button is and how the flow works is in Bulk import overview.
Why it's gated to Premium
Bulk Import is the heaviest single feature in Gold Silver Ledger from an account-impact perspective. It can write hundreds or thousands of transactions in a single operation, allocate inventory items across them, and apply spot-at-purchase locking row by row. It sits on Premium because:
It's the feature most relevant to users migrating from a long spreadsheet history into Gold Silver Ledger — a serious use case that anchors the Premium tier.
It pairs naturally with Premium's larger transaction and item caps (2,000 transactions and 10,000 inventory items, versus Pro's 250 and 1,000), since a meaningful bulk import often consumes a sizeable slice of those caps in one go.
Putting it on Premium keeps Starter and Pro priced for users who enter purchases as they happen rather than migrating from a backlog.
For the side-by-side feature comparison, see The three plans compared.
What Bulk Import does when it's unlocked
If you've never used Bulk Import and are deciding whether the upgrade is worth it, here's what's inside:
A standard CSV template. Download it from the import flow, fill it in with your historical transactions, and re-upload. The format expects USD-only monetary columns (price, premium, spot, shipping) regardless of your display currency — a deliberate simplification so the same template works for every user.
A preview screen before anything is written. Every row is validated and shown as green (will import) or red (won't, with a specific reason). Nothing lands in your account until you confirm.
Specific-row error reporting. If a row has a problem — unrecognised product, malformed date, missing required field — the preview tells you exactly which row and exactly what's wrong, so you can fix the CSV and re-upload.
All-or-nothing import. You can fix everything and re-import, if there are errors.
The full walk-through is in Preparing your CSV and Uploading and reviewing your CSV. The troubleshooting view is in Fixing common CSV errors, and My bulk upload failed.
How to unlock it
To move to Premium:
From the left nav, click Settings.
Open the Subscription tab.
Choose Premium, monthly or annual.
Complete the Stripe Checkout.
Bulk Import becomes accessible as soon as the upgrade lands.
What also unlocks at Premium, beyond Bulk Import:
Tax-ready Annual Report, the other major Premium-only feature.
10 portfolios instead of Pro's 3 or Starter's 1.
10,000 inventory items instead of Pro's 1,000 or Starter's 30.
2,000 transactions instead of Pro's 250 or Starter's 10.
If you're considering Premium specifically because of a one-time migration from a spreadsheet, the math is usually favorable: a single month of Premium covers most historical imports comfortably, and the resulting transaction history stays in your account regardless of what you do with the subscription afterwards.
If you don't want to upgrade
If staying on Starter or Pro fits the rest of your use case, there are still ways to bring in historical purchases — they just take more clicks.
The main alternative is manual entry through the Add Purchase form, one transaction at a time. Each one only takes a minute or two, but for a few dozen historical purchases that adds up to an evening's work. The flow is straightforward — see How to record a purchase.
A few practical tips if you're going that route:
Batch similar entries. If you bought ten Eagles from the same dealer on the same day, that's a single BUY transaction with quantity 10, not ten separate transactions. Use the multi-product form for purchases that included multiple products on one invoice.
Be deliberate about spot-at-purchase. The Add Purchase form auto-fills with current spot, which is correct for a same-day entry but wrong for a historical one. Edit the spot field to reflect the spot price at the time of each purchase if you want accurate cost basis.
Watch your transaction cap. Even with manual entry, Starter's cap is 10 transactions and Pro's is 250. If your backlog is larger than that, manual entry will run into the transaction limit before you finish — at which point Bulk Import would have been the wiser path anyway.
There's also a temporary upgrade pattern worth knowing about: subscribe to Premium for a single month, bulk-import your historical CSV, then downgrade back to your previous tier. The imported transactions stay in your account after the downgrade.
This is the same pattern that works for the Annual Report — and the same caveats apply (downgrading caps may matter if your import lands you with more transactions than Pro or Starter allow).
Where to go next
The three plans compared: Full side-by-side of Starter, Pro, and Premium.
Upgrading your subscription: The walk-through for moving to Premium.
Bulk import overview: What the feature looks like once unlocked.
Preparing your CSV: The canonical column schema.
Uploading and reviewing your CSV: The upload and preview flow.
Fixing common CSV errors: The error-by-error diagnostic guide.
My bulk upload failed: The troubleshooting view for unlocked accounts.
How to record a purchase: The manual-entry path that's always available.
Buying multiple products in one transaction: Useful for keeping the transaction count lower on manual entries.
