1. Overview
SoftQuill Labs ("we", "us", or "our") makes Tossless, an Android app that tracks the food in your fridge, freezer and cupboard and reminds you to use it before it expires.
Tossless works without an account or login. Your food list is stored only on your phone. We run no servers that receive it, and we cannot see it.
Key summary: the food you add, your places, your shopping list, your prices and notes stay on your device. A few features talk to outside services: barcode lookups (Open Food Facts), ads (Google AdMob), the optional Remove Ads purchase (Google Play), and anonymous crash reports (Firebase), which you can turn off. Each is explained below.
<section class="policy-section">
<h2>2. Information Stored on Your Device</h2>
<p>
Everything you enter is kept in the app's private storage on your phone (an SQLite database and app settings, protected by Android's app sandbox):
</p>
<ul>
<li><strong>Food items:</strong> name, food category, barcode number, product photo link, storage place, expiry date, the date it was opened, quantity, optional price, optional note, when it was added, and whether it was used or thrown away.</li>
<li><strong>Places:</strong> the names of places you keep food (for example "Fridge" or "Garage freezer").</li>
<li><strong>Shopping list:</strong> the items you add to it.</li>
<li><strong>Remembered products:</strong> names and photo links of barcodes you scanned or typed before, so a second scan fills in instantly, even offline.</li>
<li><strong>Settings:</strong> reminder time, how many days ahead to warn you, and whether you bought Remove Ads.</li>
</ul>
<p><strong>None of this is sent to SoftQuill Labs.</strong></p>
</section>
<section class="policy-section">
<h2>3. Barcode Scanning and Product Lookup (Open Food Facts)</h2>
<ul>
<li><strong>Scanning:</strong> barcodes are read by the Google code scanner, part of Google Play services, on your phone. Tossless does not need or request camera permission and only receives the barcode number.</li>
<li><strong>Lookup:</strong> when you scan a barcode the app hasn't seen before, the barcode number (and nothing else from your list) is sent to <a href="https://world.openfoodfacts.org" target="_blank" rel="noopener noreferrer">Open Food Facts</a>, a free public food database, to fetch the product name and photo. Product photos are then loaded from Open Food Facts' image servers. As with any website, those servers see your IP address.</li>
<li>Product data is from Open Food Facts under the Open Database License. See the <a href="https://world.openfoodfacts.org/privacy" target="_blank" rel="noopener noreferrer">Open Food Facts privacy policy</a>.</li>
</ul>
</section>
<section class="policy-section">
<h2>4. Photos of Receipts and Packs</h2>
<p>
When you use "Scan a receipt" or "Read the date from the pack", your camera app takes the photo and saves it in Tossless's private cache folder. The text is read <strong>on your phone</strong> by Google ML Kit text recognition. <strong>Photos are never uploaded.</strong> Each photo is replaced the next time you take one of the same kind, and Android can clear the cache at any time.
</p>
</section>
<section class="policy-section">
<h2>5. Recipe Ideas</h2>
<p>
When you tap "Recipe ideas for these", Tossless opens your web browser with a Google search for recipes using up to three food words (for example "recipes with chicken spinach milk"). This happens only when you tap the button. The search is handled by your browser and Google under <a href="https://policies.google.com/privacy" target="_blank" rel="noopener noreferrer">Google's Privacy Policy</a>.
</p>
</section>
<section class="policy-section">
<h2>6. Advertising (Google AdMob)</h2>
<p>
The free version shows ads using the <strong>Google Mobile Ads SDK (AdMob)</strong>: a banner on the Home and Stats screens, and an occasional full-screen ad after you add food (at most once every few minutes).
</p>
<ul>
<li><strong>What AdMob may collect:</strong> your device's Advertising ID, IP address, device model, Android version and ad interaction data, as described in <a href="https://policies.google.com/technologies/ads" target="_blank" rel="noopener noreferrer">How Google uses information from apps that use its services</a>. On newer Android versions, Google may also use Android's Privacy Sandbox (ad topics and attribution).</li>
<li><strong>Consent:</strong> in the European Economic Area, the UK and other regions where it is required, Google's consent form is shown before any ad loads. You can change your choice at any time under <em>Settings > Ads > Privacy choices for ads</em>.</li>
<li><strong>Your food list is never shared with AdMob.</strong> Ads are not chosen based on what is in your kitchen.</li>
<li><strong>Remove Ads:</strong> after the one-time purchase, Tossless stops requesting ads and no longer shows the consent form.</li>
</ul>
</section>
<section class="policy-section">
<h2>7. Remove Ads Purchase (Google Play Billing)</h2>
<ul>
<li>The optional one-time "Remove ads" purchase is handled entirely by <strong>Google Play</strong>. We never receive your card number, payment method or billing address.</li>
<li>Tossless stores a simple "ads removed" flag on your phone so the app stays ad-free offline, and checks it with Google Play from time to time so a refund or a new phone is handled correctly.</li>
</ul>
</section>
<section class="policy-section">
<h2>8. Crash Reports and Anonymous Usage Statistics (Firebase)</h2>
<p>
Tossless uses <strong>Google Firebase Crashlytics</strong> and <strong>Google Firebase Analytics</strong> to find and fix bugs and to understand which features are used.
</p>
<ul>
<li><strong>What is collected:</strong> crash details, device model, Android version, app version, an anonymous app-instance identifier, and simple events such as "an item was added", "an item was scanned", "an item was marked used" or "a reminder was opened".</li>
<li><strong>What is never collected:</strong> food names, barcodes, prices, notes, places, your shopping list, photos or anything else you type into the app.</li>
<li><strong>Your choice:</strong> you can turn this off under <em>Settings > Share anonymous usage stats</em>. When it is off, no crash reports or usage events are sent.</li>
<li><strong>Processing & retention:</strong> data is processed by Google (see <a href="https://firebase.google.com/support/privacy" target="_blank" rel="noopener noreferrer">Firebase privacy information</a>) and kept for up to 14 months. We do not sell it or use it for advertising.</li>
</ul>
</section>
<section class="policy-section">
<h2>9. Backups</h2>
<ul>
<li><strong>Backup files you create:</strong> <em>Settings > Your data > Save a backup file</em> writes your food list, places, shopping list and remembered products to a JSON file in a location you choose (for example your phone, Google Drive, or an email to yourself), using Android's system file picker. Tossless does not upload it anywhere. Restoring replaces the data on the phone with the file's contents.</li>
<li><strong>Android backup:</strong> if Android backup is turned on for your Google account, Android may include Tossless's data in your device backup, so it can be restored on a new phone. This backup is managed by Google under your account and settings; SoftQuill Labs has no access to it.</li>
</ul>
</section>
<section class="policy-section">
<h2>10. Notifications and Widget</h2>
<p>
The daily reminder and the home-screen widget are created on your phone from your local list. No push server is used. The buttons on a reminder (Used it, Freeze, Thrown away) update your list on the phone.
</p>
</section>
<section class="policy-section">
<h2>11. Permissions</h2>
<div class="policy-table-wrapper">
<table class="policy-table">
<thead>
<tr>
<th>Permission</th>
<th>Why it is needed</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>android.permission.POST_NOTIFICATIONS</code></td>
<td>Shows the daily expiry reminder (Android 13 and newer ask you first).</td>
</tr>
<tr>
<td><code>android.permission.INTERNET</code><br><code>android.permission.ACCESS_NETWORK_STATE</code></td>
<td>Product lookups from Open Food Facts, ads, purchases, and crash reports. The food list itself never needs the network.</td>
</tr>
<tr>
<td><code>android.permission.WAKE_LOCK</code><br><code>android.permission.FOREGROUND_SERVICE</code></td>
<td>Used by Android's WorkManager to run the daily reminder reliably.</td>
</tr>
<tr>
<td><code>com.android.vending.BILLING</code></td>
<td>The optional Remove Ads purchase through Google Play.</td>
</tr>
<tr>
<td><code>com.google.android.gms.permission.AD_ID</code><br><code>android.permission.ACCESS_ADSERVICES_AD_ID</code><br><code>android.permission.ACCESS_ADSERVICES_ATTRIBUTION</code><br><code>android.permission.ACCESS_ADSERVICES_TOPICS</code></td>
<td>Added by the Google Mobile Ads SDK for ads in the free version. You can reset or delete your Advertising ID in Android settings.</td>
</tr>
</tbody>
</table>
</div>
<p>Tossless does <strong>not</strong> request camera, location, contacts, microphone or storage permissions.</p>
</section>
<section class="policy-section">
<h2>12. Third-Party Services Summary</h2>
<div class="policy-table-wrapper">
<table class="policy-table">
<thead>
<tr>
<th>Service</th>
<th>Used for</th>
<th>Privacy policy</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Open Food Facts</strong></td>
<td>Product names and photos for scanned barcodes.</td>
<td><a href="https://world.openfoodfacts.org/privacy" target="_blank" rel="noopener noreferrer">Open Food Facts Privacy</a></td>
</tr>
<tr>
<td><strong>Google Play services</strong> (code scanner, ML Kit)</td>
<td>Reading barcodes and text on your phone.</td>
<td><a href="https://policies.google.com/privacy" target="_blank" rel="noopener noreferrer">Google Privacy Policy</a></td>
</tr>
<tr>
<td><strong>Google AdMob</strong></td>
<td>Ads in the free version.</td>
<td><a href="https://policies.google.com/privacy" target="_blank" rel="noopener noreferrer">Google Privacy Policy</a></td>
</tr>
<tr>
<td><strong>Google Play Billing</strong></td>
<td>The Remove Ads purchase.</td>
<td><a href="https://play.google.com/about/play-terms/" target="_blank" rel="noopener noreferrer">Google Play Terms of Service</a></td>
</tr>
<tr>
<td><strong>Firebase Crashlytics & Analytics</strong></td>
<td>Crash reports and anonymous usage statistics. Can be turned off.</td>
<td><a href="https://firebase.google.com/support/privacy" target="_blank" rel="noopener noreferrer">Firebase Privacy</a></td>
</tr>
</tbody>
</table>
</div>
</section>
<section class="policy-section">
<h2>13. Data Retention and Deletion</h2>
<ul>
<li><strong>Single items:</strong> delete any item, place or shopping list entry in the app at any time.</li>
<li><strong>Everything:</strong> go to <em>Android Settings > Apps > Tossless > Storage > Clear storage</em>, or uninstall the app. Both remove all data stored by Tossless on your phone.</li>
<li><strong>Backup files:</strong> files you saved yourself stay where you put them until you delete them.</li>
<li><strong>Crash and usage data:</strong> clearing storage or uninstalling resets the anonymous Firebase identifier. For questions about this data, email <a href="mailto:contact@softquilllabs.com">contact@softquilllabs.com</a>.</li>
</ul>
</section>
<section class="policy-section">
<h2>14. Children's Privacy</h2>
<p>
Tossless is a household utility for adults. It is not directed at children under 13 (or under 16 where local law requires), and we do not knowingly collect information from children.
</p>
</section>
<section class="policy-section">
<h2>15. Changes to This Policy</h2>
<p>
We may update this policy when the app changes or when laws or Google Play policies require it. The new version will be posted on this page with a new "Last Updated" date.
</p>
</section>
<section class="policy-section">
<h2>16. Contact Us</h2>
<div class="policy-contact-card">
<div class="contact-card-title">SoftQuill Labs</div>
<div class="contact-card-role">Independent Software Studio</div>
<div class="contact-card-email">
<span>Email:</span>
<a href="mailto:contact@softquilllabs.com">contact@softquilllabs.com</a>
</div>
<div class="contact-card-web">
<span>Website:</span>
<a href="https://softquilllabs.com/">https://softquilllabs.com</a>
</div>
</div>
</section>