Local ledger
Ingredients, recipes and menu inputs are stored in IndexedDB in this browser. We do not upload or synchronize that database. JSON and CSV exports download to your device. Import reads the file locally. Printing uses the browser print dialog. Browser storage can be cleared, so keep independent backups.
Optional invoice reading
You select an image or a PDF page and confirm that it may be sent for extraction. A PDF page is rendered to an image on your device. The selected image travels through our Cloudflare Worker to Anthropic. It may contain supplier, account, address and pricing information. Crop or redact information you do not need extracted before uploading.
Our application does not persist invoice images or extracted contents on the server, and application logging is disabled. The provider processes the image under its own commercial API terms. Anthropic's published default API retention is up to 30 days, with policy, legal and contractual exceptions. Our no-storage behavior does not mean the provider has zero retention. See the linked provider policy below.
The invoice and recipe routes share one allowance: images under 4 MB and at most 5 provider reads per IP address per UTC day, with 150 provider reads per day across the service. Attempts admitted to the provider count even if extraction fails. Daily hashed IP counters enforce the limits; KV quota records expire after 48 hours; the coordinator clears inactive daily records within 48 hours of that UTC day starting. The application uses a single serialized quota coordinator so simultaneous requests cannot bypass the global limit.
Optional recipe reading
Simple recipe text with measured quantities and recognized units is parsed on your device without a network request. If text cannot be structured locally, you may edit it or explicitly choose the optional provider. A photo always requires your consent before it is sent. The selected photo or pasted text travels through the same Cloudflare Worker to Anthropic; existing ledger ingredients and saved recipes are not included. We do not persist recipe input or extracted contents on our server. The same provider retention terms and shared daily allowance described above apply.
Review the returned quantities, units, ingredient names and preparation notes, then match each line to a ledger ingredient. Nothing is saved until you confirm. New recipes and preparation notes are saved locally and included in JSON and CSV backups. The reader does not supply missing purchase prices or prove that a handwritten quantity was read correctly.
Waitlist and contact
If you submit the pricing waitlist form, we store your email address, submission time and source page. It is used for updates about the planned Pro product. The form does not create an account or start a subscription. Email contact@costedplate.com to request removal. Rate-limit records use hashed IP information and expire. Contact emails contain whatever you choose to send.
Site delivery
Cloudflare serves the site and processes network information needed for delivery and abuse prevention. We have no analytics script, advertising pixels, tracking cookies or third-party font requests. Site assets and PDF-rendering code are served from our own origin. Ordinary requests for pages and static assets still reach the hosting service.
Changes and questions
Last checked: October 29, 2026. If the product's data flow changes, this page should change with it. Send privacy questions to contact@costedplate.com.
Sources and method
Checked October 30, 2026. Example inputs and computed results are identified in the text.
- Product limits and data handling. Costed Plate. Application limits are enforced in the source code. Local examples are explicitly illustrative. Checked 2026-10-30.
- How long do you store my organization's data?. Anthropic. Standard API input/output deletion within 30 days, subject to policy, legal and contractual exceptions. No zero-retention claim. Checked 2026-10-29.