Privacy policy
How the Pocket Cal/kJ apps and this website handle information.
Last updated 13 November 2026.
Who we are
This policy is from Dark Ice Interactive Pty Ltd (ABN 90 153 761 276, ACN 153 761 276), Brisbane, Australia. We make Pocket Cal/kJ. In this policy, "we" and "us" mean Dark Ice Interactive Pty Ltd.
For any question about this policy or your information, email support@calkj.app.
What this policy covers
- The free app, Pocket Cal/kJ, from version 4.0.1, on iPhone, iPad and Android.
- The paid app, Pocket Cal/kJ Pro, from version 4.0.1.
- This website, calkj.app.
The two apps are built from the same code. Where they differ, this policy says so.
In short
- There is no account and no sign-in.
- Your profile details are kept on your device. The app does not send them to us or to anyone else on purpose. In rare cases a crash report could contain one, as explained under Crash reports.
- Anonymous usage statistics and crash reports are on by default. You can turn either off in More.
- The free app shows ads from Google AdMob, and Google collects information for advertising. The Pro app has no ads and no advertising software.
- Purchases are handled by Apple or Google. We never see your card or Apple ID.
What stays on your device
If you enter them, your sex, date of birth, weight, height, fitness level and favourite exercise are stored on your device in the app's own storage, together with your settings. The app uses them to work out figures such as exercise estimates, BMI and daily energy.
Your date of birth is also used on your device to decide what to show: alcoholic drinks appear in the food list only if you are 18 or over, and adult body information, such as BMI categories and energy estimates, is shown only if you are 20 or over.
The app does not send these details anywhere on purpose. No usage statistic, ad request, settings request or support request carries them, and the app does not add them to crash reports. The one way a profile detail could leave your device is inside a crash report, as described under Crash reports below.
When the app is updated from version 3, your earlier data is moved within your device. Nothing is sent over the network for this.
We do not operate a cloud service for storing profiles. Deleting the app removes its local data. Your operating system may include app data in device backups, according to your backup settings.
The app does not ask for access to your camera, photos, microphone, contacts or location, and it does not read from or write to Apple Health or Health Connect.
Anonymous usage statistics
Both apps send anonymous usage statistics to PostHog, an analytics service, so we can see which parts of the app are used. They are on by default, from the first time you open the app.
To turn them off, open More and switch off Anonymous usage stats, under Privacy. Turning them off stops sending, drops any statistics still waiting to be sent, and removes the random identifier the analytics software created on your device. The app remembers your choice.
If you had anonymous usage statistics turned off in version 3 of the app, they stay off after you update.
The statistics can include:
- that the app was opened or brought back to the screen, and which screens you visit;
- for a conversion, its direction (Calories to kilojoules or the reverse) and a size band such as "under 100" or "500 to 1,999" Calories, never the number itself;
- which calculator and colour theme you pick, and when you open the exercise list or body information;
- when a Pro offer, a Pro card or the purchase screen is shown, tapped or closed; purchases started, completed or failed, with the store's product id; and whether a restore found any purchases;
- in the free app, your ad consent category (personalised, non-personalised or blocked), the result of each attempt to show a full-screen ad, a count of ads and offers shown in each session (in bands such as "2 to 4"), and a yes or no value that places your install in a test group for full-screen ads;
- whether this is a new install or an update, and the app's major and minor version numbers when it updates;
- whether you are using the free app or the Pro app, and whether Pro is unlocked;
- details added by the analytics software: device type and manufacturer, operating system and version, whether the device is an emulator, screen size, language and time zone, the app's name, identifier, version and build, the name and version of the analytics software, a session identifier, a random identifier created for this installation, and two markers saying that the event is not tied to an identified person or a person profile.
They never include your name or email, your profile details, the exact numbers you convert, your advertising identifier, recordings of your screen or survey answers. The app does not identify you to PostHog and does not ask it to build a profile of you.
PostHog receives the IP address the statistics are sent from, as part of the connection. The app removes the IP address field from each event and turns off PostHog's location lookup.
Crash reports
Both apps send crash and error reports to Sentry so faults can be found and fixed. This is on by default. To turn it off, open More and switch off Send crash reports, under Privacy. The usage statistics switch does not affect crash reports. Only this switch does.
A report can include the error and where in the code it happened, the app version and build, the operating system, details of the device, a list of up to 50 recent steps the app took before the fault, and, for about 1 in 10 recorded activities, timing measurements of how the app performed.
While crash reports are on, the app also sends short session messages that record when a session starts and ends and whether it crashed.
On iPhone and iPad, crash reports and session messages both carry a random identifier for the installation. The crash reporting software creates it, keeps it in a file on your device, and uses it as the user identifier on the reports it prepares. On Android the crash reporting software may do the same. The identifier is not linked to your name, email or an account.
Sentry's servers can record the IP address a report or session message is sent from.
The app does not attach screenshots or screen layouts, does not record your taps, and does not add your name, email or any account details to reports.
Before a report from the app's main code leaves your device, the app removes some details: user fields, the device name, request details, and values stored under names such as weight, height, birth date, age, sex, email and name. It also replaces dates written in year-month-day form, and leaves out console logs.
This filtering is partial. It does not cover fitness level or favourite exercise, dates written in other forms, other free text, performance timing records, or crashes in the device's own (native) code, which are sent without passing through the app's filter. The app never adds your profile details to a report itself, so one would appear only if an error message or timing record happened to contain it.
When you turn crash reports off, the app shuts the crash reporting software down. On iPhone and iPad, one last session message may be sent as it closes, and the installation identifier file stays on your device. On Android the same may apply.
Ads in the free app
The free app shows ads supplied by Google AdMob: a banner on the Convert and Result screens, and full-screen ads from time to time, for example when you leave a result.
No ads are shown, and the app makes no ad requests, if you have bought Pro in the free app, or bought Remove Ads in an earlier version. The Pro app contains no advertising software at all. It has no Google ads software, no consent message for ads and no tracking prompt.
Before the free app requests an ad, it goes through these steps.
- Google's consent message. Where Google's consent tool finds that European data protection rules apply, ads are personalised only if you agree, in Google's message, to storing and accessing information on your device, creating a personalised ads profile and selecting personalised ads. Otherwise ads are not personalised, or are not shown. Where this applies, a Privacy choices row appears in More, and you can use it to change your answer.
- Apple's tracking prompt, on iPhone and iPad. If you choose Ask App Not to Track, you still see ads, but they are not personalised. You can change this later in your device's Settings, under Privacy & Security, then Tracking.
- On Android, the app shows no tracking prompt of its own. Unless Google's consent message applies and you do not agree, ads can be personalised.
The app never passes your date of birth, age or other profile details to Google, and it adds no keywords or other targeting to ad requests.
Google's ads software collects information from your device and shares it with Google: your IP address, which can be used to estimate your general location; device identifiers, including the advertising identifier where it is available; how you use the app and the ads, such as app launches, taps and video views; advertising data; and diagnostic information such as app launch time. Google uses this information for advertising, analytics and fraud prevention, and links some of it to your device.
On iPhone and iPad, your advertising identifier is available to Google only if you allow tracking in Apple's prompt. On Android, Google's ads software collects the advertising ID. Your device's settings also let you manage the advertising identifier.
On iPhone and iPad, the free app supports SKAdNetwork, Apple's system for measuring which ads led to an app being installed. On Android, the free app declares Android's advertising services permissions, including those for ad topics and ad attribution. Both Android apps include Google Play's install referrer permission.
Google describes its use of this information in the Google Privacy Policy and in How Google uses information from sites or apps that use its services.
Purchases
Pro in the free app is a one-off purchase through the App Store or Google Play. Apple or Google processes the payment and holds your account and payment details; we do not receive them.
A Remove Ads purchase made in an earlier version is still recognised, and a purchase of the earlier Plus upgrade is recognised as Pro.
The app receives the store's record of which products you own and checks it on your device. It has no server of its own for purchases, and our servers receive nothing about them. If usage statistics are on, they include the purchase events listed above, with the store's product id.
Restore purchases, in More, asks the store again which products you own. The store may ask you to sign in.
The Pro app is bought from the store. It has nothing to buy inside it and does not check the store for purchases.
Other requests the app makes
Integrity check. Both apps use Firebase App Check, a Google service, with Apple's App Attest on iPhone and iPad and Google Play Integrity on Android. When the app needs to contact our server, it asks Apple or Google to confirm that the request comes from a genuine copy of the app, and Firebase turns that confirmation into a token. This check sends Apple or Google, and Firebase, information about the app and the device, together with the result of the check. On Android this includes the operating system version, the device name, model and brand, how the app was installed and software versions. On iPhone and iPad it may include the same kinds of detail.
Settings and food values. The app asks our server for its current settings and food energy values when it starts, when you return to it, and from time to time while it is open. These requests carry the integrity token and nothing else about you: no account, profile or device details. Our server runs on Cloudflare. It uses your IP address only in a scrambled, one-way (hashed) form, to limit how often requests can be made, and it does not log your IP address or the token. Cloudflare, which carries the traffic, may keep its normal operational records.
Support. In More, Support shows our email address or, if we have switched it on, a short form. The form sends the reply email address you enter and your message, up to 3,000 characters, to our server. It stores them in a database at Cloudflare with a reference and the time they arrived, and we use them to reply. If you email us, we receive only what you choose to send.
Sharing, rating and links. Share app opens your device's share sheet with a short message and a link to the store. Rate app opens the store's rating prompt or store page, and the free app may also show the rating prompt after you have worked out several results. Links to the privacy policy and the terms open in your browser. The app sends us nothing when you use these.
This website
- The pages load no analytics or advertising scripts, and no scripts, fonts or stylesheets from other companies.
- The calculators on this site run in your browser. The numbers you type are not sent anywhere.
- If you choose a colour theme or light or dark mode, your browser remembers the choice in its own storage on your device. It is not sent to us.
- The Notify me form on the home page is not connected. Nothing typed into it is sent or saved.
- Cloudflare serves these pages. Like any web host, it receives the IP address and browser details needed to deliver them.
- Links to the App Store and Google Play take you to those sites, which have their own privacy policies.
Who receives information
- Google: AdMob, for ads in the free app; Firebase App Check and Google Play Integrity, for the integrity check; Google Play, for purchases on Android. Google Privacy Policy, Privacy and Security in Firebase.
- Apple: App Attest, for the integrity check, and the App Store, for purchases. Apple Privacy Policy.
- PostHog, for anonymous usage statistics. PostHog privacy policy.
- Sentry, for crash reports. Sentry privacy policy.
- Cloudflare, which serves this website and runs our settings server and the support database. Cloudflare privacy policy.
- Authorities or advisers, where the law requires it.
PostHog and Sentry both act as service providers for us. We do not sell personal information. Some of these providers process information outside Australia, including in the United States.
How long information is kept
- Usage statistics and crash reports: for the retention period that applies to our accounts with PostHog and Sentry.
- Emails you send us: as long as needed to help you and keep support records.
- Messages sent through the support form: kept in the support database until we delete them.
- Ad data held by Google: under Google's own retention rules.
Your choices and rights
In the app, open More to find Anonymous usage stats and Send crash reports, under Privacy, and, in the free app where it applies, Privacy choices. On iPhone and iPad, the tracking permission is in your device's Settings, under Privacy & Security, then Tracking.
There is no account. The usage statistics and crash reports are not linked to your name, your email or an account.
To ask a question, ask about the information we hold, request a correction or deletion of anything you have sent us, or make a complaint, email support@calkj.app. Under the Australian Privacy Principles and, where they apply, the GDPR and UK GDPR, you can ask about the information we hold.
If you are not satisfied with our response, you may contact the Office of the Australian Information Commissioner or your local data protection authority.
Children
Pocket Cal/kJ is a general-audience tool and is not directed at children. We do not knowingly collect personal information from children.
Not medical advice
Figures such as BMI, daily energy, exercise estimates and heart-rate zones are estimates for general information. They are not medical advice. Speak to a doctor before changing your diet or exercise.
Changes to this policy
If we change how the apps or this website handle information, we will update this page and the date at the top.
Contact
Dark Ice Interactive Pty Ltd, Brisbane, Australia. Email support@calkj.app.