PREPROD
ReaderAuthor

Tally · Workflow

Complete auction workflow: consignment to payout

The end-to-end barn day — create a sale, take in consignments, catalog and weigh animals, build lots, sell the ring, invoice and load out buyers, then settle and pay consignors.

4 min read · 3 depth levelsstratum-tally · vpilotMatches production
Everyday

A full sale walks one set of animals all the way from the truck to the consignor's check. Each step below moves the Sale through its statuses and leaves a clean record at every hand-off, so money traces back to the right seller. Work the steps in order on sale day.

Weights live in hundredths of a pound from the scale all the way through. That's why a PER_CWT lot prices cleanly back to the exact net weight that crossed the scale.

Don't generate invoices or run settlements until the ring is RING_CLOSED. Transactions recorded after invoicing won't be picked up without re-running, and a settlement built mid-ring will under-pay the consignor.

How it works

  1. Create the sale

    Go to Sales → New. Give it a name, pick the saleType (e.g. WEEKLY_CATTLE, SPECIAL_SHEEP_GOAT), set scheduledStart, and attach a feeScheduleId. The sale opens in DRAFT. Attaching the fee schedule snapshots its rates onto the sale so later rate edits never rewrite this sale's math.

    sale-type
  2. Open for consignments

    When the catalog is ready to accept sellers, open the sale. Status moves DRAFT → OPEN_FOR_CONSIGNMENTS. Consignors (or office staff on their behalf) can now book in animals.

    sale-status
  3. Start intake and receive consignments

    As trucks arrive, start intake — the sale moves to IN_INTAKE. On Sales → [sale] → Intake, receive each Consignment: set arrivalAt, confirm the headCountDeclared against what actually rolled off, and the consignment advances EXPECTED → RECEIVED.

    consignment-workflow
  4. Catalog and tag the animals

    Record each Animal on the consignment: species, sexClass, breed, and the backTag / eidTag used to identify it. Animals start at RECEIVED. Tagging now is what lets a buyer and a settlement both point back to the exact head later.

  5. Assign pens

    Put the consignment into a physical pen. Tally writes a PenAssignment (pen + head count) and the consignment moves to IN_PEN. Pen codes follow the animals all the way to loadout, so this is also where buyers will pick up.

  6. Weigh

    On Sales → [sale] → Weigh, capture a WeighTicket for each animal or lot: grossHundredths and, if applicable, tareHundredths, giving netHundredths. Weights are stored in hundredths of a pound so nothing drifts between the scale, the ring, and the settlement.

  7. Create and sort lots

    On Sales → [sale] → Lots, group animals into Lots. Each lot gets a lotNumber, a ringOrder (the sequence it crosses the block), a pricingMode (PER_CWT, PER_HEAD, or LUMP_SUM), and an optional reservePrice. Lots start PENDING; their animals move to LOTTED.

    lot-pricing-mode
  8. Open the ring

    When sorting is done, open the ring — the sale moves to RING_OPEN. The ring clerk works through lots in ringOrder.

    sale-status
  9. Sell — record each transaction

    On Sales → [sale] → Ring, as each lot sells, record a SaleTransaction: the winning buyerId, the unitPrice (interpreted by the lot's pricing mode), headCountAtSale, the computed grossAmount, and hammerAt. The lot moves to SOLD and its animals to SOLD. A lot that doesn't make reserve is marked NO_SALE with a reason.

    transaction-unit-price
  10. Close the ring

    When the last lot is hammered, close the ring — the sale moves to RING_CLOSED. No more transactions are recorded against it after this point (corrections are made by voiding and re-entering).

    sale-status
  11. Generate and issue invoices

    Generate buyer invoices from the recorded transactions. Each Invoice rolls up subtotal (the lots that buyer won), buyerFeesAmount, and taxAmount into totalDue. Move them from DRAFT → ISSUED so buyers can pay and pick up.

  12. Create loadout tickets

    For each buyer, create a LoadoutTicket listing the lotIds they bought and the pickupPenCodes to collect from. Tickets start PENDING.

  13. Authorize loadouts

    Once the buyer is cleared (invoice settled per their terms, ID on file, no hold), authorize the ticket — status PENDING → AUTHORIZED. Authorization is the gate that lets animals leave.

  14. Gate out

    At the alley, the gate crew confirms the load and gates out — the ticket moves to COMPLETE. The animals have now physically left the barn against an authorized ticket.

  15. Record buyer payment

    As money comes in, record an InvoicePayment with method and amount. The invoice updates to PARTIAL or, once balanceDue hits zero, PAID.

  16. Run settlement

    Run settlements for the sale (Sales → [sale] → Settlements). Tally builds one Settlement per consignor: grossAmount from their sold lots, less commissionAmount and the per-head fees, less any adjustments and prior balance, giving netPayable. Settlements start DRAFT.

    settlement-net-payable
  17. Review and approve

    An office manager reviews each draft and submits it for sign-off: DRAFT → PENDING_APPROVAL → APPROVED. Approval is what authorizes cutting money.

  18. Pay the consignor

    Pay out the approved settlement: set the paymentMethod and the checkNumber or achTraceNumber, and the settlement moves to PAID.

    settlement-net-payable
  19. Mark the sale settled

    When every consignor is paid and every buyer loaded out, the sale moves to SETTLED — the barn day is closed and the record is final.

    sale-status
Admin section
Permissions, locking rules, and setup — visible to admins.
View as admin →
Technical section
Data model, API, and internals — visible to developers.
View as developer →
Was this helpful?