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
Create the sale
Go to Sales → New. Give it a
name, pick thesaleType(e.g.WEEKLY_CATTLE,SPECIAL_SHEEP_GOAT), setscheduledStart, and attach afeeScheduleId. The sale opens inDRAFT. Attaching the fee schedule snapshots its rates onto the sale so later rate edits never rewrite this sale's math.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.Start intake and receive consignments
As trucks arrive, start intake — the sale moves to
IN_INTAKE. On Sales → [sale] → Intake, receive eachConsignment: setarrivalAt, confirm theheadCountDeclaredagainst what actually rolled off, and the consignment advancesEXPECTED → RECEIVED.Catalog and tag the animals
Record each
Animalon the consignment:species,sexClass,breed, and thebackTag/eidTagused to identify it. Animals start atRECEIVED. Tagging now is what lets a buyer and a settlement both point back to the exact head later.Assign pens
Put the consignment into a physical pen. Tally writes a
PenAssignment(pen + head count) and the consignment moves toIN_PEN. Pen codes follow the animals all the way to loadout, so this is also where buyers will pick up.Weigh
On Sales → [sale] → Weigh, capture a
WeighTicketfor each animal or lot:grossHundredthsand, if applicable,tareHundredths, givingnetHundredths. Weights are stored in hundredths of a pound so nothing drifts between the scale, the ring, and the settlement.Create and sort lots
On Sales → [sale] → Lots, group animals into
Lots. Each lot gets alotNumber, aringOrder(the sequence it crosses the block), apricingMode(PER_CWT,PER_HEAD, orLUMP_SUM), and an optionalreservePrice. Lots startPENDING; their animals move toLOTTED.Open the ring
When sorting is done, open the ring — the sale moves to
RING_OPEN. The ring clerk works through lots inringOrder.Sell — record each transaction
On Sales → [sale] → Ring, as each lot sells, record a
SaleTransaction: the winningbuyerId, theunitPrice(interpreted by the lot's pricing mode),headCountAtSale, the computedgrossAmount, andhammerAt. The lot moves toSOLDand its animals toSOLD. A lot that doesn't make reserve is markedNO_SALEwith a reason.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).Generate and issue invoices
Generate buyer invoices from the recorded transactions. Each
Invoicerolls upsubtotal(the lots that buyer won),buyerFeesAmount, andtaxAmountintototalDue. Move them fromDRAFT → ISSUEDso buyers can pay and pick up.Create loadout tickets
For each buyer, create a
LoadoutTicketlisting thelotIdsthey bought and thepickupPenCodesto collect from. Tickets startPENDING.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.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.Record buyer payment
As money comes in, record an
InvoicePaymentwithmethodandamount. The invoice updates toPARTIALor, oncebalanceDuehits zero,PAID.Run settlement
Run settlements for the sale (Sales → [sale] → Settlements). Tally builds one
Settlementper consignor:grossAmountfrom their sold lots, lesscommissionAmountand the per-head fees, less any adjustments and prior balance, givingnetPayable. Settlements startDRAFT.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.Pay the consignor
Pay out the approved settlement: set the
paymentMethodand thecheckNumberorachTraceNumber, and the settlement moves toPAID.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.
