← MealMacroCoach

Privacy Policy

Last updated September 16, 2026 · Schill Labs LLC

MealMacroCoach is a food logging, meal planning, grocery, and fitness app from Schill Labs LLC. You can use the local diary without an account. Online features, optional account sync, and service providers have the data flows described below.

Local diary and your choices

The app stores your diary and preferences on your device; the website stores them in your browser. These can include meals, recipes, nutrition targets, food preferences, pantry quantities and dates, grocery lists and prices, workouts, body measurements, water, sleep, and optional medication-related preferences that you enter. The native diary database is configured to be excluded from iCloud backup. Local meal reminders and unfinished personal-training sessions do not require a cloud account. We do not sell your diary or use its contents for advertising.

You can export data using the app's export or backup controls. A diary backup contains sensitive account-sync data, but does not include private progress photos. An export goes to the app, person, or storage location that you choose; protect that copy separately.

Accounts

If you create an account, Schill Labs stores your email, optional name, a salted password hash, account identifier, login sessions, subscription status, and the diary data you sync. Cloud sync lets signed-in devices restore recipes, food logs, planner and grocery information, profile settings, and manually entered fitness and body data. Some recipe and planner changes sync automatically while signed in; the Account screen also provides upload and download controls. Signing out does not itself delete the cloud copy or the local diary.

Cloudflare hosts the app's API and account database. Requests use HTTPS and signed-in requests use an account session token. Like other network services, our infrastructure receives connection information such as IP addresses and request metadata. The backend uses account identifiers and hashed IP-based counters for abuse prevention, and records request failures for reliability. These security records are separate from the anonymous missing-barcode counts described below.

Friends and profile photos

The Friends feature lets a signed-in user find an account by its email address and follow it. A follower can see that account's name (or the part of its email before the @ if no name was set), goal, training focus, and chosen profile avatar. This version does not require the followed account to approve the follow. We store follow relationships and encouragement events. Friends do not receive your full diary, private progress photos, or raw Health records. Do not choose a public avatar or display name you want to keep private.

Food-label and barcode lookup

Food searches send your search words and selected food market to the Schill Labs catalog API. Barcode lookups send the barcode digits. The API searches its public-source catalogs, including USDA FoodData Central and Open Food Facts; a missing result may be looked up with USDA or an enabled Open Food Facts barcode fallback. These requests do not contain your account token, diary, or camera image. Source-backed food records and public search responses may be cached, and successful searches are cached on your device for up to 30 days.

When a checksum-valid barcode has no source match, the catalog may retain that barcode, a total count, and first/last-seen times to prioritize catalog coverage. That record does not contain an account, IP address, device identifier, photo, or diary. A food you enter or verify yourself is saved to your private food library, not published to the shared catalog, and can sync with your account.

Camera, label and receipt photos

On supported phones, the camera or photo picker reads barcodes, product names, Nutrition Facts, and receipts. Text recognition runs on the device. The app does not upload these source photos to Schill Labs or OpenAI, or attach them to shared food records. The camera, operating system, and photo picker may keep temporary files or a copy in your photo library. The structured text and values you review and save, such as a product name, nutrition facts, or grocery items, become part of your local data and optional account sync.

Google ML Kit supplies on-device text recognition. Its SDK can send operational information to Google, including device and app details, a per-installation identifier, feature events, error codes, and performance metrics. This is separate from the photo and recognized text, which ML Kit processes locally. See ML Kit privacy information and its iOS data disclosure.

To confirm a product, the app can search the catalog using its name or barcode. If you choose Search web, those words and digits are sent to Google in your browser; opening a product page sends a request to that website. Those external sites have their own privacy practices. A webpage match is not a guarantee that the product or nutrition is correct.

Private progress photos are stored locally and excluded from account sync. A profile avatar is different: it can sync and be shown through Friends as described above. We do not upload your photo library, read your contacts, or use your private photos as model-training data.

Location and live map

When you use nearby restaurants, the app requests When In Use location permission. Nearby search sends your latitude and longitude to an OpenStreetMap Overpass service. The iPhone app uses Apple's native map; the website and fallback map download OpenStreetMap tiles. Android can use Google Maps when configured. An in-app route request sends origin and destination coordinates to the OSRM routing service. Map providers also receive ordinary connection information such as your IP address. Opening directions in Apple Maps, Google Maps, or OpenStreetMap shares the selected route with that service.

Schill Labs does not receive precise coordinates through the nearby-search or routing API, and does not use them for advertising. Your selected nearby chain identifiers can be saved in your profile and synced; they are not a stored GPS history. You can decline location and still browse the food catalog.

Apple Health and Health Connect

With your permission, the native app reads available workouts, weight, body fat, waist measurements, sleep, steps, resting heart rate, and water from Apple Health on iPhone or Health Connect on Android. It does not write to those health services. Imported Health records and connection details are kept on the device and excluded from account sync; manually entered body and fitness records can sync. The app uses Health information locally to adjust targets and show your progress, not for advertising, resale, or model training.

Companion devices may share through Apple Health or Health Connect; we do not sign into those device vendors. The website cannot read Apple Health. You can revoke permissions in the device's Health or privacy settings. Revoking access stops future reads but does not erase records already imported into the app. User-requested exports are separate from automatic account sync.

Optional AI meal coach

When you choose online coaching and submit a question, the app sends it to the Schill Labs API with meal and daily remaining calorie/macro summaries, the number of remaining meals, your goal, diet style, and restrictions. For an eligible signed-in Premium account, the backend sends that limited text to OpenAI to generate a suggestion. These summaries may reflect your logged activity and calculated targets. We do not automatically add your email, account identifier, password, photos, full diary, or raw Health records to the OpenAI prompt. Avoid entering information you do not want to send to the provider. Choosing local suggestions does not send the question to these services.

The backend does not save a conversation history and requests that OpenAI not store the completion as application history. That is not a zero-retention guarantee: OpenAI's standard API abuse-monitoring retention can include prompts and responses for up to 30 days, with longer retention for legal or safety reasons. OpenAI states that API data is not used for model training by default unless the API customer opts in. See OpenAI's data controls. The app can use offline meal suggestions if the online coach is unavailable. AI output can be wrong and is not medical advice.

Advertising

Ads are disabled unless a release is explicitly configured for advertising. In an ad-enabled free mobile version, Google AdMob can serve banner and occasional full-screen ads after its consent checks allow requests. When required, ad privacy choices are available from the app's Privacy Policy screen. Premium disables app ad requests; the website does not show AdMob ads.

When active, Google's Mobile Ads SDK may process IP-based approximate location, device identifiers, diagnostic and performance information, ad views, and product interactions for advertising and measurement. Our app does not give AdMob your diary, Health data, meal-coach questions, or nearby-search coordinates. See Google's Mobile Ads data disclosure for SDK details.

Subscriptions and service providers

Apple or Google processes mobile subscription payments. RevenueCat receives purchase or receipt information, subscription events, an app user identifier, and technical information to validate and restore access. When signed in, that identifier is linked to your MealMacroCoach account. RevenueCat sends subscription updates to our backend, which stores entitlement and transaction-related identifiers and dates. We do not send your diary or Health records to RevenueCat. See the RevenueCat Privacy Policy.

Website checkout, when available, uses Stripe after sign-in. Stripe receives the checkout and payment information you provide, and our backend retains the customer/subscription identifiers and status needed to manage access. Schill Labs does not receive your full payment-card number through these checkout flows. Providers may process data in countries other than yours under their own service and privacy terms.

Deletion and retention

The active account and cloud diary are retained until you delete the account; signing out or uninstalling the app does not delete them. In the app, open You → Account → Delete account and diary and confirm to remove the active account, cloud diary, sessions, follow/encouragement records, and the current device's diary. Other devices and copies you exported may still contain local data. Deleting an account does not cancel an Apple or Google subscription: manage those in the store's subscription settings. The backend attempts to cancel a linked website Stripe subscription before completing account deletion.

Removing the app or clearing browser site data removes its local storage, subject to any separate device or user-created backups. Without a synced account or your own backup, we cannot restore that data. Payment providers may retain transaction records under their policies and legal obligations. Security logs and infrastructure recovery copies can have separate retention and are not a user-accessible diary backup. For privacy or deletion help, contact Schill Labs through the app support page.

Children

The app is not directed at children under 13. A store age rating is not medical guidance or permission to create an account below the applicable minimum age. The app is not a medical device.

Changes

We will update the date above when this policy changes. Privacy questions and requests: Schill Labs support.

Terms of Use