Dashboard
💾 Checking…
🌱 Demo Mode — Sample data loaded so you can explore the system. All numbers are fictional.
Recent Transactions
DatePayeeAccountAmount
Income by Category
Expenses by Category
Bills Due
VendorDueAmountStatus
Account #Account NameBeg. BalanceEnd Balance
Bills (AP)
Vendor Inv # Inv Date Due Amount Paid Balance Status
Invoices (AR)
Customer Inv # Inv Date Due Amount Received Balance Status Workflow
Round 19d: Bills can now be paid via the new Pay Selected button — pick one or more open bills, hit pay, fill in bank + date, and the system creates a single payment transaction that clears AP. Each line in the payment debits 2011 00 AP for the bill's balance and credits cash. Editing or deleting the payment automatically updates the bill statuses.
🏷 Your Entities
Click an entity to edit its letterhead (address, phone, remit-to, invoice numbering). These fields appear on printed invoices.
NameType(s)PhoneEINYTD Paid1099
Tip: Load your check stock, select the checks to print (or check the header box for all), then click Print selected. The browser print dialog opens once with one check per page. Use Settings → Check calibration if positioning is off.
Enterprise Units group your parcels for crop insurance reporting. Typically one EU per (county × irrigation practice × crop). RMA (Risk Management Agency) uses these groupings when evaluating indemnity claims. You can set one up now but don't need to assign parcels until you're ready — the data model is waiting for you.

Yield calibration reconciles raw monitor data with bin estimates and scale tickets so per-field yields match reality before crop insurance reporting. Use the buttons above to record a calibration event or review history.
Product NameTypeManufacturerVendorPurchasedAppliedOn HandAvg Cost/UnitOn-Hand Value
LocationHarvest ProductBalance (bu)
Contract #CropYearCounterpartyType BushelsDelivered PricingDeliveryStatus
DescriptionTypeClassYearPurchase PriceBook ValueYTD RepairsLifetime RepairsStatus
📘 Journal Ledger — Phase 1 Double-Entry View
This screen shows the proper debit/credit journal entries generated from your transactions. Use it to verify the new accounting engine is producing correct output. Once all phases are complete, this will become the foundation for balance sheet, trial balance, and cash flow reports.
DateRefPayee / MemoAccountDebitCreditEntityStatus
Update market values for equipment, land, grain inventory, and other balance-sheet items. Each update is saved with an as-of date, so historical balance sheets pulled for older dates still show the right values from that time. Typical workflow: walk through each tab at year-end before pulling a balance sheet for the bank.
🚜 Equipment & Vehicles
Market value = what you think it would sell for today. Type a new number only if it's changed.
ItemTypeCurrent ValueLast UpdatedNew ValueNote
Enter your CPA's depreciation schedule for each tax year. Typical workflow: once a year after filing, transcribe the figures from Form 4562's depreciation detail into this screen. Pick a tax year from the dropdown, fill in each asset's Section 179, Bonus, and Current Year depreciation, then save. The Accumulated and Book Value columns update live as you type.
📊 Depreciation Detail — From Form 4562
Asset Placed in Service Tax Basis Section 179 Bonus Deprec. Current Yr Deprec. Accumulated Book Value
Tip: For assets you already owned when you started using FarmBooks, enter prior years' depreciation retroactively (one year at a time) so the accumulated depreciation matches your CPA's records. Once the past is caught up, each subsequent year is just a 5-minute data entry session.
🏷 App Brand
Personalize how the app appears to you — sidebar header, browser tab title, and cloud login screen.

This is separate from your individual entity letterheads (which appear on invoices and reports for each business). Edit those under Settings → Letterhead.
Loading…
💾 Backup & Restore
Export your entire FarmBooks database to a JSON file you can save anywhere (local drive, Google Drive, email to yourself). Use this as a backup before major changes, before applying a new version, or as the migration source for moving to cloud later.

Import replaces all current data with the contents of a backup file. Before any import, a copy of your current data is automatically downloaded as a safety backup — so even if the import goes wrong, your current data is one re-import away.
☁️ Storage Mode
FarmBooks can store your data locally (in this browser only — no internet needed, no account) or in the cloud (synced across devices via Supabase, sign in with Google).

Local mode is the default and is identical to how FarmBooks has always worked. Cloud mode is opt-in: you provide your own Supabase credentials below. Your data, your cloud account, your control.
Loading…
🌾 Crop Year Cutover
When a field operation happens before this date, it's attributed to the prior crop year by default. On or after this date, it's attributed to the current crop year.

Example: with a March 15 cutover, a planter rebuild on February 10, 2026 defaults to crop year 2025. A planter operation on April 20, 2026 defaults to crop year 2026. You can always override the crop year manually on any operation.

This setting does NOT affect tax accounting. Tax P&L and Schedule F always use calendar year.
Current setting: March 15
🔒 Period Lock / Closing Date
Once a tax year is finalized with your accountant, set this to the last day of that year. Transactions, bills, and invoices on or before this date will be locked from create / edit / delete unless you explicitly override per-action.

Example: with closing date 2024-12-31, attempting to edit a December 2024 bill prompts "Period lock active — are you sure?" before letting you proceed. Leaving this empty disables the lock entirely (default).

Tip: use the date picker — empty out the field (or click the X) to clear the lock.
Current setting: — (lock disabled)
📨 Entity Letterhead (Invoice Print)
These fields appear on printed invoices. Address goes in the top-left letterhead block. Phone and email appear in the footer "Questions?" block. Remit-to is where customers send payment — leave empty to fall back to the mailing address.
🔧 Data Health Check
Scans your data for inconsistencies that may have crept in through old imports, deleted records still referenced by transactions, or migrations that didn't catch every edge case. Reports findings without changing anything; each category has its own fix tool you can run after reviewing.
📝 Vendor Name Cleanup
Old TABS imports brought vendor names in as ALL CAPS. This tool finds them and proposes title-cased replacements. You can edit each suggestion or skip rows that should stay as-is (e.g., short brand-like acronyms). Only contacts that are entirely uppercase are touched — anything you've typed with mixed case stays alone.
🖨 Check Print Alignment
Different printers feed paper slightly differently. If your check prints are off by a fraction of an inch on pre-printed check stock, use these nudge buttons to shift the overprints into the right position. Each click moves everything by 1/32 of an inch (~0.8mm). Settings are saved per-device.
Check Portion (top of page)
x: 0.00" y: 0.00"
Voucher Stubs (bottom 2/3 of page)
x: 0.00" y: 0.00"
Calibration workflow: Click Test Print → print on plain paper → hold up to a real check against a window → nudge until aligned → click Test Print again.
💾 Data Management
Your FarmBooks data is stored in your browser's local storage. To back up or move to another device, use the export/import buttons.
⚠ Danger Zone
These actions permanently change your data. Before using, consider exporting first (button above) so you have a backup.
Erases everything and reloads demo — useful when trying a new version
Start with a completely empty database — no demo, no transactions
Walk through entities/owners/banks/loans setup again
Dev convenience — wipe and load Keehner structural data (entities + accounts; no transactions)
INVOICE
Invoice # Date Due Date
Description Qty Unit Rate Amount
Subtotal Total Due
0