Effective date: August 29, 2026 · Last updated: October 31, 2026

1. Scope and who we are

ChemLevel is chemical inventory, reorder forecasting, and procurement software for water treatment, wastewater, pool and spa, and industrial facilities. This policy explains what we collect, why, who we share it with, and what you can do about it. It covers the ChemLevel marketing website at chemlevel.com and the ChemLevel web application at app.chemlevel.com. It also covers any ChemLevel mobile application we publish.

The controller of personal information described in this policy is Henry Labs LLC, a Texas limited liability company doing business as ChemLevel, of 5900 Balcones Drive STE 100, Austin, TX 78731 (“ChemLevel,” “we,” “us”). You can reach us at info@chemlevel.com.

ChemLevel is sold to organizations, not to individuals. When your employer subscribes, that organization decides who is invited, what is recorded, and how long it stays. For operational data logged inside the product, your organization is the controller and ChemLevel acts as its processor. We are the controller for account, billing, support, and website data. Where the two roles differ, we say so below.

2. The demo, and why it collects nothing

The demo generates a fictional treatment plant entirely on your own device, in your browser or in the app. ChemLevel’s screens have not offered it since October 31, 2026, and a demo already open keeps working until it ends. The sample sites, chemicals, readings and orders are produced on your own device from code that ships with the application. None of it is transmitted to us, stored on our servers, or associated with you.

Resetting or exiting the demo clears that data from your browser or the app. If you later create a real organization, the demo data is discarded rather than imported. The only information we receive from a demo session is the ordinary web server request data described under Technical and device data.

3. Information we collect

Account and organization data

When an organization signs up we collect the information needed to create accounts and control access: full name, work email address, organization name, site names and physical addresses, each member’s role (owner, chief operator, supervisor, buyer or operator), whether a supervisor has full access, which sites they are assigned to, and per-member permissions such as whether that person may view budget and spend figures. We also record account state: invitation status, when a member joined, and whether their access is active or revoked. An organization can also add people by name alone, with no email address or sign-in, to use its shared devices, and set up shared devices of its own: for each, a name, the sites it serves, and when it was set up and last connected. If you choose an email app under Settings (your device’s own, Outlook or Gmail), we keep that choice with your account so it follows you between devices.

Authentication data

Passwords for cloud accounts are handled by our authentication provider and are stored as salted hashes. We never see or store your password in readable form. ChemLevel also supports a biometric lock on your own device and, on your organization’s shared devices, a PIN. A device that still holds a PIN for your own sign-in, from before shared devices, keeps only a hash of it, on that device, and never sends it to us; five wrong PINs in a row turn it off there until you sign in with your password again. A PIN for your organization’s shared devices, set in People or Settings, is different: it is hashed on the device where it is typed, and we store that hash and send it to your organization’s shared devices at your sites, so that a tablet can check a PIN with no signal. We never receive the PIN itself. A shared device signs in with a login of its own, made when it is set up with a one-time code that works once and that we keep only as a hash. Biometric matching happens entirely on your device through the operating system. We receive no fingerprint, face, or other biometric data at any time.

Operational data you log

This is the core of the product and it belongs to your organization: tank and cylinder rack configuration (capacity, shape, dimensions, gauge units, safety stock, supplier lead time, reorder thresholds), tank level readings, per-cylinder weigh-ins, usage logs with shift and operator attribution, order requests and their status, delivery records with quantities and costs, past delivery dates and quantities that you paste in from your own records, unit costs and cost basis, vendor names and email addresses, annual budget figures, and free-text notes your team enters. Each entry is attributed to the member who recorded it, including the person who unlocked a shared device to record it, whose name is kept with the entry, or to the ShiftRounds operator named on it (see below), and timestamped in the site’s own time zone.

With each tank reading or weigh-in, the app also records when the device saved it and the level it expected at that moment. This lets a supervisor see a reading entered hours after the time it gives, or one that matches the estimate on screen. Where your plant puts NFC tags on its tanks (Team plan), we store each tag’s factory serial number and the tank it is attached to. A reading taken after tapping a tag carries that serial number and the time of the tap. One saved without a tap can carry the reason the operator gives. The phone reads a tag only when it is held against it. The app reads nothing from the tag but its serial number and the ChemLevel link written on it. None of this involves location.

Readings sent from ShiftRounds

ShiftRounds is operator rounds software, also provided by Henry Labs LLC. An organization on ChemLevel’s Team plan can connect the two. An owner or chief operator makes a one-time code in ChemLevel, which works once and for 30 minutes, and someone at the organization enters it in ShiftRounds. While they are connected, when an operator records a tank level or a chlorine cylinder’s net weight on a ShiftRounds round, for a field the organization has linked to a ChemLevel tank or rack, ShiftRounds’ servers send it to ours.

Each reading arrives with the time it was taken and the time ShiftRounds received it. It also carries the ShiftRounds operator’s name and initials, their email address where ShiftRounds has one, and the names of the round’s route, plant and checkpoint. Where ShiftRounds asked for a tap at the checkpoint, the reading also says whether the operator’s phone touched the NFC tag for that area of the plant, when, the area’s name and the tag’s code, and the operator’s reason when there was no tap. ChemLevel keeps the reading, both times, the operator’s name and initials, ShiftRounds’ identifiers for the reading and its place in the round, and the tap and its details. It is stored as one of the organization’s logs, marked “From ShiftRounds” with the operator’s name. ChemLevel does not store the operator’s email address or the route, plant and checkpoint names. No ChemLevel sign-in stands behind a reading sent this way. For the connection itself, ChemLevel stores the ShiftRounds organization’s name and identifier, and the key ShiftRounds sends readings with, in hashed form only.

Either product can end the connection: an owner or chief operator in ChemLevel, under Settings › ShiftRounds, or ShiftRounds from its side. Readings already sent stay in ChemLevel as part of the organization’s operational data, and are deleted with it as described in Data retention and deletion. ShiftRounds’ own privacy policy covers what ShiftRounds holds.

Payment information

Subscriptions are billed through Stripe. Card numbers, expiration dates, and security codes are collected by Stripe directly and never reach our servers. We cannot see full card numbers. We receive and store only what we need to administer the subscription: plan and site count, subscription status, trial and renewal dates, the last four digits and card brand as Stripe reports them, and billing contact details.

Communications

If you email us, use the contact form on this website, or reply to a billing notice, we receive your name, email address, and whatever you write. We keep it so we can respond and maintain a support history.

Technical and device data

Like any web service, our infrastructure automatically logs standard request data: IP address, browser and operating system, device type, referring page, and timestamps. We use it for security, abuse prevention, and diagnosing faults. Visits to this website are also counted and timed, as described in Cookies, local storage, and tracking. We do not operate third-party advertising or cross-site tracking on this website or in the application.

Each time the iPhone, iPad or Android app opens, it asks Expo’s update service whether a newer version of the app’s code is available. This lets fixes reach you without waiting for an app store. That request carries your device’s operating system, the app’s project ID, and a random token created when the app was installed. The token is used only to tell one installation’s requests from another’s. It carries no account, plant, device or advertising identifier. The website and the web application make no such request.

Information stored on your device

ChemLevel is built to work offline in a plant with no signal. For that, the browser’s local storage or the app’s local database holds a copy of your organization’s operational data, your display preferences, your forecast settings, and the roster of accounts unlocked on that device. A shared device also holds the names of the people who may unlock it and their PIN hashes, which the iPhone, iPad and Android apps keep in the device’s encrypted storage. Changes made offline queue on the device and sync when a connection returns. This local copy stays on your device and is cleared when you sign out of the account, exit the demo, or clear the site’s data.

What we do not collect

We do not collect precise geolocation, contacts, photos, microphone or camera input, health data, biometric identifiers, government identifiers, or advertising identifiers. We do not build advertising profiles, and we do not use your operational data to train machine-learning models.

4. Where the information comes from

  • From you: what you type into the application or send us.
  • From the person at your organization who invites you: your name, work email, role, and permissions.
  • From your device automatically: technical and request data.
  • From Stripe: subscription status, payment outcomes, and card metadata such as brand and last four digits.
  • From ShiftRounds, when your organization connects it: the readings described under Readings sent from ShiftRounds.

We do not buy personal information, and we do not enrich your data from data brokers or public sources.

5. How we use information, and our legal bases

Where the EU or UK GDPR applies, the legal basis for each purpose is given in brackets.

  • Providing the service: creating accounts, authenticating, storing readings and orders, calculating forecasts, and generating vendor order emails. [Performance of a contract]
  • Keeping the service working: syncing devices, resolving conflicts, diagnosing faults, restoring from backups. [Legitimate interests: operating a reliable service]
  • Alerting your team: producing notifications (reorders, late and due deliveries, deliveries that may not fit, new orders, cylinder changeovers, unchecked chemicals, maintenance flags and the monthly lab count) from your own data, on your device. For the phone apps, they are also produced on our servers so they reach you while the app is closed. [Performance of a contract]
  • Billing and account administration: taking payment, sending trial-ending, payment-failure, and pending-deletion notices. [Performance of a contract; legal obligation for tax and accounting records]
  • Support: answering your questions and investigating problems you report. [Performance of a contract; legitimate interests]
  • Security and abuse prevention: detecting unauthorized access, enforcing role permissions, investigating incidents. [Legitimate interests: protecting the service and its users; legal obligation]
  • Improving the product: understanding which features are used and where people get stuck, using aggregated and internal operational information rather than by mining the contents of your readings. [Legitimate interests: improving a product our customers rely on]
  • Understanding the website: which pages are read, where visitors come from, which of our campaigns bring them, and how quickly pages load, from the totals described in Cookies, local storage, and tracking. [Legitimate interests: knowing which pages help people, and keeping them fast]
  • Complying with law: responding to lawful requests and meeting record-keeping duties. [Legal obligation]

We do not use operational data for advertising, and we do not disclose one customer’s data to another customer.

6. How we share information

We do not sell personal information or operational data, and we do not share it for cross-context behavioral advertising. We disclose information only as follows.

Service providers who process data on our behalf

Each of these is bound by contract to process data only on our instructions and to protect it appropriately.

  • Supabase: database hosting and authentication.
  • Vercel: hosting and content delivery for this website and the application, and the visit counts and page-speed measurements for this website described in Cookies, local storage, and tracking.
  • Stripe: subscription billing and payment processing. Stripe is an independent controller of the payment data it collects directly from you. See Stripe’s own privacy policy.
  • Resend: delivery of transactional and billing email, such as invitations and notices that a trial is ending or an account is approaching deletion.
  • Proton Mail: hosting of our own mailboxes, which therefore receives anything you send us, including replies to those notices.
  • Cloudflare: DNS for our domain. It receives no plant, account or billing data.
  • Expo: delivery of updates to the iPhone, iPad and Android apps, as described under Technical and device data above. Expo also delivers push notifications to those apps, by way of Apple Push Notification service and Google’s Firebase Cloud Messaging, as described under Notifications below.
  • Formspree: delivery of the contact form on this website.
  • Sentry: error and crash reporting, so we find out when something breaks for you. See Error reporting below for what is sent.

Within your organization

ChemLevel is a shared workspace. Other members of your organization can see the operational data your team records, including which member logged a reading and when. What each member sees follows the roles and report permissions your organization configures. Owners, chief operators and supervisors can also change plant configuration, and they and buyers can view budget and spend figures. Owners and chief operators can manage members, roles and access, and supervisors the operators at their plants. Where an organization runs several sites, a supervisor or operator may be assigned to only some of them. The others are then not visible to that member at all.

ShiftRounds, when your organization connects it

So that ShiftRounds can offer your tanks and racks to link its fields to, ChemLevel gives the connected ShiftRounds organization your organization’s name, the names of its plants in service, and for each tank and cylinder rack the chemical’s name and strength, which units the tank can take, and the rack’s positions and full cylinder weight. For each reading ShiftRounds sends, ChemLevel answers whether it was stored, and if not, why. ChemLevel sends ShiftRounds no readings, forecasts, costs, orders, or details of your members.

Vendors you choose to email

When you choose to email an order, ChemLevel composes a message in your own mail client addressed to the vendor you configured. That message typically contains the chemical, quantity, requested delivery date, purchase order number, and delivery address and hours. You send it, from your own account, to a recipient you chose. We do not send it and do not receive a copy. An order you log without emailing is not shared with anyone.

Legal and corporate

  • Legal process: where required by valid legal process, or to protect the rights, safety, or property of ChemLevel, our customers, or the public. Where we are lawfully able to, we will notify the affected organization first.
  • Corporate transactions: in a merger, acquisition, financing, or sale of assets, with notice to affected customers and subject to this policy continuing to apply.

7. Cookies, local storage, and tracking

The ChemLevel application uses strictly necessary cookies and browser local storage to keep you signed in, remember your active site and display preferences, hold your offline copy of organization data, and queue changes made without a connection. These are essential. The application cannot work offline without them, and there is no way to switch them off while continuing to use the product. Clearing your browser’s site data removes them, along with any unsynced offline changes.

This marketing website uses two services from Vercel, which already hosts it. Vercel Web Analytics counts visits. For each page viewed, it records the page’s address, the time, the site you came from if it was another one, your approximate location (country, region and city), and your browser, operating system and device type. It also counts clicks on the links that open the sign-up page, with the page each was clicked on and where on it, such as the header. Visits that arrive from a link carrying one of our campaign names (the utm_ tags on a link in an ad or a newsletter) are counted with that name. Vercel Speed Insights measures how quickly each page loads and responds on your device. It records those timings with the page’s address, your country, your browser, operating system and device type, and your connection’s speed class (such as 4G). Neither sets a cookie or stores anything on your device. Web Analytics tells one visitor from another by a hash made from the request itself, which Vercel discards after 24 hours. Speed Insights keeps nothing that links one page’s timings to another’s. We see totals, such as how many people read a page, where they came from and how fast it loaded, not who you are. The application, on the web and on phones, uses neither.

The website does not use advertising cookies, cross-site trackers, advertising pixels, session-replay tools, or social media tracking widgets. Because we do not run advertising or cross-context tracking anywhere, there is nothing here for a “Do Not Track” or Global Privacy Control signal to disable. We honor those signals by not engaging in the practices they are designed to stop. Since nothing is stored on your device to count a visit or time a page, there is nothing to ask your consent to set.

8. Error reporting

When the application hits an unexpected error, it sends a report to Sentry so we can find and fix it. A report contains the error message and type, a stack trace, the app version and platform, the route you were on, and your organization’s identifier (a random identifier, not its name). The identifier lets us tell whether a fault affects one customer or everyone.

What a report does not contain:

  • No screen recording or screenshots. Session replay is switched off entirely, because the screen shows your inventory.
  • No operational data. Readings, usage, orders, deliveries, costs and vendors are never attached.
  • No request bodies or headers, which is where an access token would otherwise travel.
  • No IP-based identification, and no name or email address.
  • No query strings. Web addresses recorded alongside an error are cut off at the “?”. This removes filter values and the one-time token in an emailed sign-in link, and keeps enough to identify which request failed.

Error reports are processed by Sentry on our behalf under contract, retained for a limited period for diagnosis, and used for no other purpose.

9. Notifications

ChemLevel can alert you when a chemical is approaching its reorder point, when a delivery is late or due today, when a delivery due within three days may not fit in its tank, when someone else in your organization places an order, when a cylinder rack is hours from a changeover or has to be changed before a day off, when a chemical has not been checked recently, when a maintenance problem is flagged, or when a site’s monthly lab count is due. In a browser, these alerts are generated on your own device, by ChemLevel while it is open, through the browser’s notification API and service worker.

In the iPhone and Android apps, with notifications on, our servers also work out the same alerts from your organization’s data and send them. That way they reach you while the app is closed. For that, we store the push address your phone’s operating system issues for the app, linked to your account and organization. We also store your choice of which alerts you want, and a record of which alerts were sent to you, so that each is sent once. An alert’s title and short text (for example, a chemical’s and a plant’s names) pass through Expo’s push service. Expo hands them to Apple Push Notification service or Google’s Firebase Cloud Messaging to deliver. We delete a phone’s push address when you turn notifications off in ChemLevel or sign out on that phone, and when the push service tells us the address no longer works.

You can turn notifications off inside ChemLevel’s settings or revoke the permission in your browser or device settings.

10. Forecasting and automated processing

ChemLevel’s forecasts are arithmetic, not artificial intelligence. The engine computes a time-weighted average of consumption between your recorded readings. It projects days until empty and days until a reorder point, and derives a recommended order quantity and an order-by date. Nothing about this involves machine learning, profiling of individuals, or inference about people.

These outputs are decision support for your operators. They produce no legal or similarly significant effect on any individual, and no decision about a person is made automatically. You remain responsible for chemical handling and dosing decisions. See our Terms of Service.

11. Data retention and deletion

We keep operational data for as long as your organization’s subscription is active. The forecasts depend on historical readings, so deleting last month’s readings would degrade this month’s predictions.

If a trial expires, or a canceled subscription reaches the end of its period, the organization becomes read-only and its data is retained for 30 days. During that time, its members can still read and export it, and resubscribing makes it writable again. It is then deleted automatically by a scheduled process. We email the organization’s owners and chief operators before that deadline. Deletion covers all of the organization’s operational data.

Other retention periods:

  • Account records: deleted with the organization, subject to the 30-day window above. That includes the sign-in itself (name, email address and password) of anyone whose only organization was the deleted one. A person who also belongs to another organization keeps their sign-in and their access to that one. Anyone can also delete their own sign-in at any time, and that takes effect immediately. See Deleting your account.
  • Shared devices and people without a sign-in: deleted with the organization. A shared device that is removed stops working at once, and its login is disabled for good rather than deleted, so the entries made on it stay attributed. Someone without a sign-in who is removed from People keeps their name on the entries they made.
  • Billing and tax records: retained as long as applicable tax and accounting law requires, typically seven years, independently of account deletion.
  • Support correspondence: retained while it remains useful for support history, and reviewed periodically. It outlives the organization it was sent from. Once that organization is deleted, what remains is the message itself, no longer linked to an account.
  • Server and security logs: retained for a short period for security and diagnostics, then rotated out.
  • Backups: deleted data may persist briefly in encrypted backups until those backups age out on their ordinary cycle.

Deleting your account

You can do any of these yourself, in the app, under Settings › Leaving ChemLevel:

  • Leave this organization takes you off the roster. Your name stops appearing on the team list and you lose access to the plant’s records. The plant’s data is not affected, because it belongs to the organization rather than to you. If you are the last owner or chief operator, make someone else one first, or close the account instead.
  • Delete your account removes your login itself (your email address, your password, and any two-factor authentication set up on it) and your place on every organization’s roster. It takes effect immediately, with no recovery window. The plant’s records are not deleted, because they belong to the organization. Entries you made stop being attributed to anybody. The same rule as leaving applies. If you are the last owner or chief operator of an organization, make someone else one first. You can also do this without the app, at chemlevel.com/delete-account.
  • Close this account ends the organization. Every site, chemical, tank, reading, delivery and budget it holds is deleted 30 days later (for an organization whose trial or plan has already ended, on the date already set). The account records of everyone on it are deleted at the same time. Owners and chief operators only. If a subscription is still running, cancel it first so billing stops with the account. On the web, the app takes you to the billing portal to do that. An organization billed by invoice asks us. One already set to end can be closed once its billing period is over.

The 30-day wait exists because closing an account deletes a plant’s chemical history, and it should be possible to undo that if it was a mistake. During the window the data is still there, read-only for anyone still on the account, and resubscribing brings the organization back. After it, the deletion is permanent and cannot be reversed. See what that covers above.

You can also ask us to delete an organization by contacting us instead, and we will do it for you. See Your rights.

12. Security and incident response

Data is encrypted in transit using TLS and encrypted at rest by our infrastructure providers. Access to customer data is enforced at the database itself, through row-level security policies scoped to the organization and to the member’s role. A request that is not entitled to a record does not receive it. This restriction does not depend on the application limiting what it asks for. Administrative access by ChemLevel staff is limited to what is needed to operate and support the service.

If we become aware of a personal data breach affecting your information, we will notify the affected organization’s owners and chief operators without undue delay. Where the law requires it, we will also notify the relevant supervisory authority (within 72 hours of becoming aware, where the GDPR applies) and affected individuals where the breach is likely to present a high risk to them. Our notice will describe what happened, what data was involved, what we are doing about it, and what you can do.

No method of transmission or storage is completely secure, and we cannot guarantee absolute security. You are responsible for keeping your password and device PIN confidential, for using a device you trust, and for telling us promptly at info@chemlevel.com if you believe an account has been compromised.

13. International transfers

ChemLevel is operated from the United States. Your organization’s data at rest (the database and authentication records) is stored and processed in the United States, in our hosting provider’s US East region. Access to both the application and this website is restricted to IP addresses within the United States, so ordinary use from abroad is refused rather than transferred. Where a request does reach us from outside the country, that information is transferred to and processed in the United States, where privacy laws may differ from those in your country.

There is one exception. The application and this website are delivered as static files through a global content delivery network. The request that loads a page may be served by an edge location near you rather than one in the United States. Standard request data such as your IP address may be logged there. No account data or operational data is stored or processed at those edge locations.

Where we transfer personal information out of the European Economic Area, the United Kingdom, or Switzerland, we rely on the European Commission’s Standard Contractual Clauses (and the UK International Data Transfer Addendum where applicable) together with supplementary measures appropriate to the transfer. You can request a copy of the relevant safeguards at info@chemlevel.com. ChemLevel does not offer the service in the European Economic Area, the United Kingdom or Switzerland. For that reason, it has not appointed a representative there under Article 27 of the GDPR or the UK GDPR.

14. Your rights (GDPR / UK GDPR)

If you are in the European Economic Area, the United Kingdom, or Switzerland, you have the right to request access to your personal information; correction of inaccurate information; erasure; restriction of processing; portability of information you provided to us; and objection to processing carried out on the basis of legitimate interests, including at any time where the processing is for direct marketing. Where we rely on consent, you may withdraw it at any time without affecting processing already carried out.

Most operational data belongs to your organization rather than to us. Requests about it are therefore generally handled through your organization’s owners and chief operators, and we will refer you to them or assist them in responding. Requests about your account, billing, or correspondence with us can be made to us directly.

Contact info@chemlevel.com to exercise any of these rights. We will respond within one month, extendable by two further months for complex requests, and we will tell you if we need longer. We do not charge a fee unless a request is manifestly unfounded or excessive. You also have the right to lodge a complaint with your local supervisory authority, though we would appreciate the chance to address your concern first.

15. Your rights (US state privacy laws)

If you are a resident of California, Virginia, Colorado, Connecticut, Utah, Texas, Oregon, Montana, or another state with a comprehensive privacy law, you may have the right to know what personal information we collect and how we use and disclose it; to access a copy of it; to correct inaccuracies; to delete it; to opt out of sale, sharing for cross-context behavioral advertising, and profiling with legal or similarly significant effects; and not to be discriminated against for exercising any of these rights.

We do not sell personal information and we do not share it for cross-context behavioral advertising, and we have not done so in the preceding twelve months. We do not use or disclose sensitive personal information for purposes that would require an opt-out under the CPRA. We do not engage in profiling that produces legal or similarly significant effects.

In the twelve months before the date of this policy, we collected the categories of information described in Information we collect. Those are identifiers, customer records, commercial information, internet activity, and professional information. We collected them for the business purposes described in How we use information, from the sources in Where the information comes from. We disclosed them for business purposes to the service providers listed in How we share information.

To make a request, email info@chemlevel.com. We will verify your request by matching the information you provide against our records, and may ask for additional confirmation for sensitive requests. You may use an authorized agent, who must provide proof of authorization. If we decline a request, you may appeal by replying to our decision. We will respond to an appeal in writing within the period your state’s law allows.

16. Children’s privacy

ChemLevel is workplace software sold to organizations and is not directed to children. The service is not intended for anyone under 18, and we do not knowingly collect personal information from children. If you believe a child has provided us with personal information, contact info@chemlevel.com and we will delete it.

This website and the application contain links to sites we do not control: supplier websites, regulatory resources, and our payment processor’s hosted pages. When you choose to email an order, ChemLevel hands a pre-composed message to your own email client. This policy does not cover those third parties. Their own privacy policies do.

18. Changes to this policy

We may update this policy as the product changes or the law does. When we do, we will revise the “Last updated” date above. If a change materially affects how we handle personal information, we will give active customers reasonable advance notice by email or through the application before it takes effect. Continuing to use ChemLevel after a change takes effect means you accept the updated policy.

19. Contact us

Questions, requests, or complaints about privacy go to info@chemlevel.com, or by post to Henry Labs LLC, 5900 Balcones Drive STE 100, Austin, TX 78731. Your message goes directly to the people who build and operate ChemLevel.