Ledger

Sales

The sell-side ledger — buyers, statuses, batches, share receipts and binder unloading.

Silvane Pro

Sales is part of the Ledger, a Pro feature. See Silvane Pro.

Sales is the sell side of the Ledger — the ledger for moving singles: locals, Discord buylists, table deals. It tracks who bought what, for how much, and where the deal stands; when the cards physically leave your binders, it updates your collection too — but only when you say so. Every sale you mark Paid feeds the Ledger's Overview, activity log and Top sets.

Retail or Batch mode

The first time you open Sales it asks how you sell:

  • Retail — a simple flat list of sales, one per buyer and date.
  • Batch — sales grouped under named batches ("GP Austin 2026", a buylist shipment) with per-batch totals.

This is a display preference, not a commitment — switch anytime from the ⋯ menu, per device. Retail mode always lists all sales, including ones that live in batches; Batch mode is a grouped lens over the same ledger.

Press and hold any sale for Move: a picker of your other batches, newest first, re-files it the way binders move into folders.

Recording a sale

Tap +, name the buyer and set the date. Buyers are created as you type — an autocomplete offers the people you've sold to before, so repeat buyers stay one row, not five spellings.

Then Add Card, which offers the same three ways in a binder has:

  • Search — search anything and tap a printing's finish chip to drop it in; tap it again and the line's quantity grows (no duplicate rows). With the Owned filter on, listing more copies than your binders hold shows a heads-up toast — informative, never blocking.
  • Scan — opens the scanner locked onto this sale: the tray's save button reads "Add to buyer" and commits straight here, condition and finish included.
  • Import — paste or pick a file in any of the collection formats (Silvane CSV, plain text, CSV); the lines land with their condition and finish.

A fourth way in is the Tray: its Add to… picker has a Ledger tab (Sales | Purchases) listing your orders, on the app and on the web.

The Tray also works in the other direction. On the web, a sale carries a Tray chip on the right edge of its meta line: every line on the order is staged with its real finish, quantity, condition and language — handy for re-listing the same set of cards, or moving an order into a binder. If some lines would push the tray past its cap, the toast tells you how many landed and how many did not.

A sale holds up to 100 unique cards (lines). Every way in checks that before writing anything — a tray or import that would pass the limit is refused whole and stays where it was.

Tap a line to refine it — finish, condition, quantity, and the unit price:

  • The price locks the moment you add the card: the current price in your price source is stamped onto the line, so a sale is a ledger from the first tap — market moves and source switches never re-price it. Edit the price any time to record the deal you actually agreed; the current market price stays visible as a reference while you do.
  • Card totals — per line, per sale, per batch — come from the line prices, in the currency of the source the prices were recorded in. The order total then adds the costs below.

Costs

Beyond the card lines, a sale carries three money fields of its own: shipping, fees, and a discount. The order total is items + shipping + fees − discount, and the shared receipt itemizes them. Like purchases, these are order-level costs — they count in the Ledger's totals, but never in a set's or a card's number.

A sale also holds a free-text note, edited right on the sale screen.

The note is part of the receipt

The sale note appears on the shared receipt page under "Note from the seller" — write it for the buyer, not for yourself.

Statuses

Every sale carries three independent switches — Paid, Packed, Delivered — shown as tappable chips on the sale and as three dots on every list row. They're yours to flip in any order (money first, usually), each remembers when it happened, and the shared receipt shows the same three steps with their dates, so the buyer can follow along.

One flips itself: unloading every card of a sale from your binders marks it Packed automatically — pulled and sleeved is packed.

Batches

In Batch mode, + creates a batch (name + date); inside it, + adds sales pre-dated to the batch date. The batch list rolls up totals and statuses — the dots light up only when every sale in the batch has that flag. Deleting a batch deletes its sales with it (with a warning — there's no undo).

Sales join a batch when they're created inside one — and can be re-filed later with the Move action described above.

Long-press a sale (or open it and hit ⋯) → Share. Each sale gets a permanent link like silvane.app/sale/… that renders a clean order receipt: buyer name, seller username, the three status steps with dates, every card with set, finish, condition and price, the total, and your note. The buyer can refresh it to watch the status move — no account needed. The receipt always renders in your price source — the prices are the deal's record, so the buyer sees your numbers no matter what source they browse the rest of silvane.app in.

  • Links are private by default — flip the Public toggle in the share sheet to activate one, and flip it back anytime to shut the same URL off for everyone but you.
  • Receipts are link-only: they're never listed on your public profile, and search engines are told not to index them.
  • What the buyer never sees: which binders the cards come from, your batches, or any other sale.
  • Creating the link needs a connection (the token is minted server-side).

The pick list — from ledger to binders

Recording a sale doesn't touch your collection. When it's time to actually pull cards, Sales closes the loop:

1. Assign sources

On each sale line, the binder icon opens Assign source: every binder holding that exact printing in the line's finish, with its condition, language and available count. Pick where this card will come from. Positions with fewer copies than the line needs are shown disabled — no partial pulls. (Copies reserved in tracked decks are flagged as a caption, but it's your call.)

2. Work the pick list

The pick list (tray icon on a sale — or on a whole batch) groups every assigned card by binder, so you pull binder by binder instead of jumping around. Unassigned lines and lines whose binder has since been deleted get their own sections.

3. Unload

Unload deducts the pulled cards from the exact assigned positions — all-or-nothing: if anything no longer fits (copies gone, binder deleted), nothing is deducted and the blockers are listed. On success the items are check-marked, fully-unloaded sales flip to Packed, and a position that hits zero goes to Recently deleted like any other removal.

Changed your mind?

Revert unload — per line or for the whole pick list — puts the copies back exactly where they came from (status flags stay as they are). The assignment survives as history, so a completed sale still remembers which binder each card left.

Delete ≠ revert

Deleting a sale (or a line) does not return unloaded copies to your binders — revert first, then delete. Sales, unlike collection cards, are deleted permanently.

Auto-assign, and emptying a sale

Auto-assign fills the sources of the items that still have none. It never touches an assignment you made by hand, and it follows three rules:

  • Exact match only. The position must hold the item's condition and language. There is no fallback: an item with no exact position holding enough copies is left for you.
  • No splitting. One position has to cover the item's whole quantity.
  • Fewest binders. It prefers binders this sale or batch already pulls from, then the position with the most copies available, then the binder name, so the same sale always resolves the same way.

Empty clears a sale's lines without deleting the sale.

The pick list sorts by Name, Mana value or Color identity, because it is read card by card rather than order by order.

Filters, search and sorting

Both modes search by name, buyer or batch, sort by date, name or total, and filter by date: All time (the default), This month, Last month, This year, Last year, or a custom range.

Paid / Packed / Delivered chips filter the list too. Each cycles through three states — off, done (a check mark) and pending (a red crossed circle) — and they combine, so "packed but not yet paid" is two taps: Packed once, Paid twice.

Sort, date filter and status chips persist per list; the search box does not. There is also a button that renders the filtered list as one card grid, so you can see the cards behind the orders.

Backups

Account backups include the full sales ledger — buyers, batches, sales, lines and their binder assignments. Restoring into a different account clears share links (the clone starts private, no old receipt URLs point at it).

Sales - Docs | Silvane, MTG Collection Tracker