FarmTempo Global
Fresh produce is still bought by phone call.
We are building the record layer underneath.
FarmTempo is a produce price and ordering infrastructure in Korea. Buyers — grocery stores, restaurants, school kitchens — check wholesale prices and repeat past orders. Sellers — growers and distributors — collect incoming orders by delivery date and share shipping status. FarmTempo does not take a transaction fee and does not handle payments.
Why this matters
Every deal is agreed one by one — and rarely written down in a reusable form
Small buyers and growers settle price, quantity and delivery date deal by deal. The agreement exists, but it lives in phone calls and notebooks. FarmTempo turns each agreement into a structured record that both sides can see.
Price, in one place
Wholesale market auction prices, KAMIS reference prices and egg farm-gate prices on one screen, refreshed daily.
The agreement, as a record
Buyers post conditions, sellers propose a unit price, a person confirms the award. Confirmation, statement and receipt documents are generated from that record.
Delivery, as a status
Drivers tap depart and arrive from a link without signing up. Buyers confirm receipt. Delays carry a reason.
Status board
What runs today, and what does not yet
We list the gaps next to the working parts. Prediction performance figures are not published on this page.
● Live in Korea
- ●Produce price board130 items (KAMIS wholesale) · 34 items (Garak market auction) · 5 egg size classes
- ●Price outlook for 25 itemsLow-confidence items are excluded from recommendations and marked as such
- ●Repeat orders · order collection · delivery statusBuyer and seller screens, in beta
- ●Public MCP endpoint, read-only30 tools · no authentication
- ●Item & lot API · v1Korean market codes and USDA Market News commodities resolve to one canonical item · no prices returned
- Every value carries two axes: how it was made — source text, rule, model estimate or person-provided — and how far it is verified — confirmed, provisional, conflict or insufficient evidence.
match_evidencestates what the rule saw. Exact matches only; an unregistered or ambiguous input comes backmatched: falsewith verificationinsufficient. The API does not guess.- “Confirmed” is human-only, enforced at the database — a confirmer name and timestamp are required, and draft or engine names are rejected.
- Lot identity is resolved only within one jurisdiction. Across borders, records are linked at the item level and no further.
- ●Shipment ↔ receipt reconciliation engine · v1File-based deliverables: links, exceptions, evidence and export files
- Four outcomes per pair: rule match, provisional, conflict, insufficient evidence. The engine never writes “confirmed” — that word is reserved for a person.
- Item, lot and transaction are judged as three separate columns, never merged into one score.
- Split receipts are not treated as errors.
- Tolerances live in per-item domain packs, not in engine code.
- Measured so far on synthetic contrast sets only — see “Not yet”.
- ●Two patent applications filed in Korea10-2026-0098735 · 10-2026-0151392
○ Not yet
- ○Real customer shipment and receipt records — 0 pairsThe reconciliation engine has been measured on synthetic contrast sets derived from Korean auction lots. Those figures are internal and are not published here.
- ○FDA traceability (FSMA 204) event recordsRecord schema drafted; no shipping or receiving events are collected yet
- ○Unit conversion APIDesign stage — not live
- ○No US prices shownUSDA AMS Market News (New York terminal) data is collected for internal research only — not displayed or redistributed
- ○Reviewer-facing queue and dashboard for the reconciliation engineReview is recorded from the command line today, and a person’s review never overwrites the engine’s own outcome
- ○PaymentsFarmTempo does not collect or settle transaction payments
- ○Tempo Orbit (satellite field observation)A separate service, under validation — observations are marked “before validation” until the hypothesis verdict on January 10, 2027. It does not predict price or yield.
As of September 20, 2026.
US context
Why the record layer travels
Produce records only line up across systems when two things agree: what the item is and what unit it was sold in. A 10 kg box in Seoul and a 50 lb carton in Los Angeles need a shared identity before any price or traceability record can be compared.
We have separated item identity from Korea-specific data sources. Korean auction and survey codes and USDA Market News commodities now resolve to the same canonical item, and each mapping carries both how it was made and how far it is verified — a person’s confirmation and a rule’s output are never recorded as the same thing. Korean and US lots stay separate records — they are linked only at the item level, never lot to lot.
Unit conversion between package types and FDA traceability event records are not built yet.
Compliance date of the FDA Food Traceability Rule, which requires records for foods on the Food Traceability List. Of the items we cover, fresh tomatoes are on the list; onions and potatoes are not. Korean lot records are not presented as evidence of US compliance.
For developers
API
What you can call today, and what is designed but not built. They are marked separately.
MCP · public
● LiveRead-only tools for Korean produce prices, auction markets, seasonal patterns and event signals. Korean-language data, KRW prices.
# tool list GET https://api.farmtempo.com/mcp/info # MCP endpoint · no auth · 30 tools https://api.farmtempo.com/mcp/public
Item & lot API · v1
● LiveResolves item names and source codes to a canonical item, and checks whether identifiers from different record systems refer to the same item or the same lot. Every value carries two axes — how it was made and how far it is verified — plus the evidence string the rule used. An unregistered or ambiguous input comes back matched: false; the API does not guess. Lot identity stays inside one jurisdiction; across borders the link stops at the item level. No prices, internal lot IDs or confirmer names are returned. Also available as MCP tools.
# https://api.farmtempo.com GET /api/v1/items GET /api/v1/items/resolve?q= GET /api/v1/items/{id} POST /api/v1/lots/reconcile
Reconciliation engine · v1
● Live · file-basedMatches a supplier’s shipment records against a buyer’s receiving records and returns links, exceptions, evidence and export files. It runs as a deliverable generator, not as an HTTP endpoint; a reviewer-facing queue and dashboard are deliberately not built yet.
# links · exceptions · evidence · exports make deliver SET=<set> # per pair · three separate judgments item_judgment same | different | unknown lot_judgment same | different | unknown trade_status rule_matched | provisional | conflict | insufficient
Tolerances come from per-item domain packs, not from engine code. Measured on synthetic contrast sets only.
Unit API · v1
○ Design · not livePlanned endpoint for converting between package units (for example a 10 kg box and a 50 lb carton). Calls to this path do not work today.
POST /api/v1/units/convert
Published so partners can comment on the design before it is built.
Talk to us
Investors, partners and developers — send a message and you will get a reference number. We reply by email.