Skip to main content
Production Planning

Every sale, accounted for automatically

A point-of-sale system that doesn't just process transactions — it feeds them straight into your books so nothing falls through the cracks.

Sell smarter, close faster

Transaction Processing

Fast, reliable checkout with support for multiple payment methods and split payments.

Accounting Integration

Every sale automatically creates journal entries — revenue, tax, and cost of goods sold, all in real time.

Staff Management

Role-based access for cashiers and managers with per-user transaction tracking.

Sales Reports

Daily summaries, product mix reports, and trend analysis — all connected to your financial statements.

Mobile Ready

Works on tablets and phones — take your register anywhere your customers are.

Cash Management

Track cash drawer opens, closes, and discrepancies with full audit trail.

How it works

From carcass to confirmed sales order in three steps.

1

The yield matrix

Every carcass grade (Choice, Select, Prime, Wagyu) gets a 25-row yield matrix and a 20-row adjustment table for bone and fat loss. Roughly 72 % of live carcass weight becomes sellable cuts; the rest is shrink.

Stored in master.carcass_matrix_yield + master.carcass_matrix_adjustment.

2

The LP solve

HiGHS solves a linear program with one column per (product, date, shift) and one row per carcass-balance, order-fulfillment, capacity, and freshness constraint. Objective: maximize revenue minus downgrade penalties minus over-sell penalties.

Typical BLYTHE LP: 6,902 columns, 588 rows, < 100 ms to OPTIMAL.

3

ATP at sales-order entry

Every line item your sales team enters fires a Z-variable into the next LP solve. The daemon answers feasible, partial, or infeasible in real time, with the marginal price the LP would charge to honor that line.

Latency: typically < 200 ms end-to-end from button click to response.

Worked example

A 1,000-head day, by the dollar.

Live numbers from the BLYTHE pilot. 31 priced SKUs across 5 carcass grades, ~5,000 head/week throughput.

Carcass-dollars by piece (top 8)

Yield % × market price. Ribeye carries the most dollars per 100 lb of live carcass; ground beef earns the second spot on yield volume; tenderloin lands fourth despite being only 1.6 % of the carcass.

Piece Yield % $/lb $/cwt
112A Ribeye3.69$11.17$41.22
GB7327 Ground Beef10.38$3.35$34.77
180 Strip Loin3.07$10.75$33.00
189A Tenderloin1.61$18.50$29.79
TRIM50 Trim12.95$2.15$27.84
116A Chuck Roll5.75$3.99$22.94
184 Top Sirloin Butt3.28$6.85$22.47
168 Top Inside Round5.61$3.31$18.57

What the LP earns you

At the theoretical maximum — selling 100 % of every yield at market price — 1,000 Choice steers at 800 lb live each generates roughly $2.8 million per day in revenue. No facility hits that ceiling. The LP's job is to land you as close to it as your real orderbook allows.

Theoretical ceiling

$2.8M

1,000 head × full market

Per-cwt ceiling

$320

Yield × price, BEEFCHO1

SKUs in play

31

Priced & fac-authed

LP solve time

< 100ms

6,902 columns, OPTIMAL

Numbers from the live BLYTHE silo. Full walkthrough in the LP economics note.

The integration loop

Your sales-order entry, plugged straight into the LP.

CashSheet handles customers, line items, accounting, and the audit trail. MakeSheet runs the LP and answers ATP queries. The bridge between them is one Postgres schema and one well-defined message queue — nothing else.

Browser                  cashsheet                         master.* schema                  makesheet daemon
───────                  ─────────                         ───────────────                  ────────────────
Save SO  ─────────────►  SalesOrderCreateViewSet
                              │
                              ├─ persist SO + line items
                              │
                              └─ transaction.on_commit ──►  master.fac_auth
                                                            master.order_header
                                                            master.order_detail
                                                            master.order_plant
                                                                                   ◄────── reads on next solve

Click Check Availability ►   SalesOrderCheckATPViewSet
                              │
                              └─ POST LINE_QUERY  ──────►  master.atp_msg_queue
                                                                                   ◄────── dequeues + answers
                                                                                            (Z variable, LP solve)
                                                            master.atp_msg_queue  ◄──────  writes response
                              │
                              ◄────────────────────────── feasible / partial / infeasible
                              │
                              └─ persist atp_status + atp_checked_at on the SO

Render badge on SO   ◄─── 200 OK

No bus. No broker.

Two services, one Postgres. Operational simplicity is the point.

Sub-200 ms round-trip

From button click to badge render. Cached LP makes it fast.

Full audit trail

Every ATP response is persisted on the line item with timestamp.

See it on your numbers.

We can stand up a sandbox silo with your product list, carcass mix, and a sample orderbook in under a day. Twenty minutes on a call and we'll walk you through what the LP picks.

Frequently Asked Questions

Quick answers about the three-product platform — CashSheet, MakeSheet, and CashSheet AI.

CashSheet is a cloud-native operations platform with three products on one foundation: CashSheet for double-entry accounting and sales orders, MakeSheet for LP-based production planning, and CashSheet AI for commodity contract management. Every customer gets a dedicated silo with complete tenant isolation.

CashSheet handles the books — chart of accounts, journal entries, invoices, bills, sales orders, financial reports. MakeSheet is the production-planning engine: it solves a linear program against your orders, yields, and capacity to recommend today's fab mix. CashSheet AI manages commodity supply contracts, indexed pricing, and basis exposures. You can run any one of them on its own, or all three on the same silo.

MakeSheet is built for protein and food processors — beef, pork, poultry, seafood, dairy. Anywhere a raw input is broken down into many sellable products through a yield matrix, where the question every shift is "what should we make today given today's orders, prices, and what's in the cooler?" Wagyu fabricators, beef harvest plants, further-processing facilities, and meal-kit operations are all good fits.

Given your open orders, raw material on hand, yield matrices, market prices, and shift/grind/drop limits, the solver finds the production mix that maximizes contribution margin — typically across thousands of variables and hundreds of constraints. A typical solve runs in under 100 ms. The same engine powers Check Availability in sales-order entry: it tells you whether a new order can be promised before the rep hits send.

Yes. Each tenant can register multiple facilities (plants, freezers, warehouses, distribution centers). The LP solver runs per facility, so each plant gets its own production plan, but financial reporting rolls up at the entity level. Cross-facility inventory transfers are first-class — what one plant ships, the receiving plant sees as availability.

Every customer runs in their own silo: a dedicated Postgres database, dedicated application containers, and a dedicated subdomain (e.g. yourname.cashsheet.com). There is no shared multi-tenant database table where one bug could leak rows between customers. The boundary is enforced at the infrastructure layer, not in application code.

CashSheet is built on a full double-entry accounting engine with chart of accounts, journal entries, ledgers, balance sheets, income statements, and cash-flow statements — compatible with GAAP and IFRS reporting principles. Every sales order, bill, and inventory movement posts proper journal entries automatically.

Yes. CashSheet imports OFX and QFX bank statements directly, and accepts CSV for customers, vendors, items, sales orders, and most other entities. Direct connectors to QuickBooks Online, Xero, and major ERPs are handled during onboarding rather than self-serve — that way the migration is supervised end-to-end and your opening balances land correctly.

We host the silo for you on cloud infrastructure (default), or deploy into your own cloud account or on-prem if compliance requires it. Typical onboarding for a single-facility tenant is two to three weeks: provision the silo, load chart of accounts and master data, configure the yield matrix and capacity limits if you're using MakeSheet, and run a parallel period before cut-over.

Pricing scales with which products you use (CashSheet, MakeSheet, CashSheet AI), how many facilities you run, and the size of your operation. There's no published per-seat tier because the spread between a one-plant fabricator and a five-plant operation is too wide for that to be honest. Send us a note and we'll quote you in a day or two.

Yes. Every customer gets email support and access to documentation. MakeSheet customers also get direct access to the engineers who built the solver — when a plan looks wrong, we want to see it, not triage it through a ticket queue.

Reach out via the contact form below or email [email protected]. We'll set up a 30-minute call to understand your operation and show you a demo silo running on data shaped like yours.

Run your plant, not a spreadsheet.

MakeSheet plans the day. CashSheet posts the entries.

Contact Us