What’s new
What changed in each release of H2Oracle.
Version 1.7.0 November 14, 2026
Added
- An app guide: on a new install (and the web app's first visit), a short tour of the main features, each with a clip of it in use: the status card and timeline, the hot tub, logging a test, adding chemicals, logging swims, predictions and household sync. Swipe through at your own pace, or Skip to the end, where you set how many gallons the pool and hot tub hold. Watch it again from Settings › App guide.
- TA, CYA, hardness and phosphates on the status card, as chips with the last test of each. They're tested now and then, so a chip is marked when it's due for another test: TA after 2 weeks or once the acid, soda ash or baking soda logged since has moved it by about 10 ppm; CYA, hardness and phosphates after a month (CYA every 2 weeks in a hot tub, or while trichlor or dichlor keeps adding it), once stabilizer has had a week to dissolve, after calcium chloride, or once a phosphate remover has had two days to work. TA and CYA ask to be tested before they ever have been, as pH doses and the chlorine levels go by them. Tap a chip for when it was tested, why it's due, what it does and its ideal range.
- Clarity on the status card has a word under it like pH and free chlorine: ideal, fair or poor.
- Upkeep: log water changes and filter rinses, deep cleans and replacements (+ › Log Upkeep), and the status card shows when each is next due, as chips. Tap one for when it was last done and when it's due, then Done today, or Done another day to pick the date. A hot tub's water change goes by use: water lasts for about gallons ÷ 3 bathers, counted from the sessions you log, so a 400 gal tub is due after 133 (a partial water change gives back its share). It's also due after 6 months however little it's used. The filter's are due every 2 weeks (rinse), 3 months (deep clean) and a year (replace) in a hot tub, and every 3 months (clean) and 3 years (replace) in a pool; change them, or turn any off, in Settings. A notification comes the morning each one comes due (turn them off in Reminders). The timeline has an Upkeep filter, and the app guide a page on it.
- After a water change, the app no longer goes by the tests from before it: safe to swim waits for a new test, TA, CYA, hardness and phosphates are marked due for one, and predictions leave out the days around it. Replacing part of the water lowers the CYA carried forward from the last test by that share.
- Salt water, for a pool or hot tub with a salt chlorine generator: turn on Salt water in Settings and enter the range from the generator's manual (2,700–3,400 ppm for a pool and 1,500–2,000 for a hot tub to start with). Readings then ask for salt, and when it's low the reading form says how much pool salt brings it into range (in 40 lb bags for a pool), or when it's high, how much water to replace. Salt has a chip on the status card, due for a test monthly, a day after salt is added and after a water change, and Add Chemical shows what pool salt will do to it.
- Bromine: choose Chlorine or Bromine for each water body in Settings. With bromine, readings ask for bromine (Taylor drops count 2.25 times as much, with no combined chlorine step) and judge it by the CDC's levels: 4–6 ppm in a hot tub, 3–5 in a pool, whatever the CYA, which the reading form and status card no longer ask for. Low bromine gets a chlorine dose, which turns the bromide in the water back into bromine (each ppm makes 2.25 ppm), and there's no SLAM. Safe to soak needs the CDC's minimum (4 ppm in a hot tub, 3 in a pool) and isn't above 8 ppm. Predictions, the timeline, charts and Reports follow along, and the water change chip says how much sodium bromide to add after a water change to build the bromide back up. Readings taken before switching keep what they were.
Changed
- Household sync: once a phone with this version syncs, the household's phones on older versions show "Update H2Oracle" and pause syncing until they're updated, as they can't show upkeep or keep the new water setup.
- About's privacy note now covers Household sync: data stays on the phone unless it's on, and with it on, the history, water setup, treatment plans and dismissed predictions (and each phone's name) are kept on H2Oracle's sync server, which also logs when each phone connects and from where. Turning sync off on the main phone deletes the household from the server.
- Safe to swim is now part of the status card instead of a card of its own: an icon beside the pool's name (green, amber or red, with the card's top shaded to match) and the answer under it. Tap the answer for why, or tap pH, free chlorine or clarity to see how that value was worked out and the range it's judged against, at the bottom of the card. One explanation shows at a time; tap it again to close it. pH and free chlorine on the card show "=" while the last test still holds, and "≈" with what they're estimated to be now once it doesn't, the same values the answer and the predictions go by. A test holds while nothing's been added since, it's under a day old, and the water is estimated to have changed by less than a test would show (about 2½ hours for chlorine and 16 for pH at typical rates). The water temperature is no longer on the card (it's still in the reading).
- Free chlorine above 10 ppm is "OK to swim, with care" instead of "Safe to swim". Trouble Free Pool counts it safe up to the shock level, but public pools close above 10 ppm (CDC Model Aquatic Health Code), and it can irritate skin.
- Estimates say "estimated" instead of "probably": "Chlorine is estimated to be low", "pH is estimated to be high", and "Free chlorine is estimated to be below 1.5 ppm" in the safe to swim explanation.
- When the estimate is fairly sure, the answer says "Should be safe to swim" instead of "Probably safe to swim", and "Best not to swim" instead of "Probably not safe to swim" (soak, for the hot tub), still with how likely it is.
Fixed
- The pH prediction no longer appears for a pH it shows as 7.6 or 7.7, where it said "pH is drifting up" with a reading that's fine. It now suggests acid once pH is estimated at 7.8 or higher, and soda ash at 7.3 or lower, judged by the value the card shows.
- Bromine tablets are no longer taken for trichlor, which marked CYA as rising and due for a test. Sodium bromide is no longer counted as chlorine of an unknown amount, which kept predictions and safe to swim from estimating.
- The status card's button for a TA test says "Test TA" instead of "Test ta".
- A partial drain is no longer one percent more than it needs to be when the numbers come out even (4,000 to 3,400 ppm salt is 15%, not 16%).
Version 1.6.0 November 11, 2026
Added
- Household sync: keep the phones in your home in step, with no accounts. Turn it on in Settings › Household sync and start a household. That phone becomes the main phone: it invites the others with a QR code to scan or a link to share, each of which works once and for at most a day. It also lists every phone and can remove one. History, the water setup, treatment plans and dismissed predictions are shared; each phone keeps its own reminders and reading preferences. A phone that joins adds its history to the household's and takes the household's setup and plans. Changes go across within seconds while the app is open, and wait while a phone is offline. Turning sync off on the main phone deletes the household. Every phone keeps the history it has. If a future change to sync ever needs a newer app, the app says "Update H2Oracle" at the top of the timeline and pauses sync until it's updated. Nothing is lost meanwhile.
Version 1.5.0 November 10, 2026
Added
- Back up and restore: Settings › Back up and restore saves your history, water setup, reminders, reading preferences and treatment plans to one file, through the share sheet (Drive, Files, email, Quick Share) or, on Android, straight into a folder on the phone. Open the file in H2Oracle on another phone, or after a reset, to replace everything with it, or to add only the events that phone doesn't have yet. Backups from older versions of the app are brought up to date as they're restored.
- Prediction notifications: when the predictions expect free chlorine to drop too low, pH to drift out of range, or a chemical you add regularly to come due, a notification says so at the time, with the dose, even when the app is closed. One due overnight waits until 8 AM. Tap it to see the prediction. It's for water bodies with predictions on, skips predictions you've already seen or dismissed, and waits while a treatment plan is going. Turn it off in the reminder settings (the bell); on Android it has its own notification channel.
- Safe to swim (safe to soak, for the hot tub): a yes or no at the top of the timeline. It checks free chlorine against the sanitizing floor and the shock (SLAM) level for your CYA, pH, combined chlorine, clarity, and a hot tub's temperature, and says to wait after adding a chemical (30 minutes in a pool, an hour for granules, 20 minutes in a hot tub). Between tests it estimates where the water is now, and the answer is only as sure as that estimate: "Probably safe to swim, ≈ 70% likely", or "Not sure: test first", and less sure when CYA or pH hasn't been tested. Tap it for each check and what's missing.
- A time beside the date on readings, chemicals and sessions, new or edited. Leave it alone and a new entry is saved at the time you save it (an edited one keeps its time), as before. For a session it's when people got in; picking one replaces "Just got out / Getting in now".
Changed
- On a tablet or a wide browser window, the add forms, settings, reminders, backup, About and Reports stay in the same centered column as the timeline instead of stretching edge to edge.
- A session's time in the water can be typed in hours as well as minutes: "4.5h", "1h 30m", "45m", or a plain number for minutes, as before. The form shows what it understood ("= 4h 30m") and saves it in minutes.
- Tapping a notification shows what it said at the top of the app for a few seconds, in case it was gone before you read it. Tap it to close it sooner.
- A pH prediction only says pH is "probably high" or "probably low" once it's out of the ideal 7.2–7.8 range the status card uses. Before that it says pH is drifting up or down, still suggesting a small dose to bring it back to 7.5.
Version 1.4.0 November 7, 2026
Added
- pH dose without a demand test: when pH is outside 7.4–7.6, the reading form works out how much acid (or soda ash) brings it to your target from pH, total alkalinity and CYA, and saves it with the reading so you can log it later. With a demand test it shows the worked-out amount next to the test's dose for comparison.
- The predicted result of a chemical addition: as you enter the chemical and amount, Add Chemical shows what it will do, such as "Raise free chlorine to 3.2 ppm" or "Lower pH to 7.0" (with TA, and CYA for stabilizer and dichlor), marked in range, out of range or far out of range. It starts from your latest reading and what you've added since, or the predictions' estimate when they're on.
- TA, hardness and CYA doses: when one of them is low, the reading form says how much baking soda, calcium chloride (94% or 77% flake) or stabilizer brings it to the target you pick. When hardness or CYA is too high, it says how much of the water to replace instead. The doses are saved with the reading, and each one can be logged from its details.
- Treatment plans: when a reading needs more than one treatment, a card at the top of the timeline offers a plan. It puts the steps in order (baking soda before acid, chlorine last, then a re-test), says when each one is due, and logs each chemical as you check it off. You can log a different amount, skip a step, or end the plan early. A reading that calls for a SLAM gets a SLAM plan: it adds a top-up after each test that's dropped below the SLAM level, schedules the evening and morning tests for the overnight chlorine loss test, and tracks Trouble Free Pool's three signs that it's done. A notification says when each step is due (switch it off in the reminder settings), and re-check reminders wait while a plan is going.
- Predictions: once a pool or hot tub has a few weeks of readings, H2Oracle learns how fast its free chlorine drops, per day and per person-hour of use, and suggests chlorine at the top of the timeline when it has probably dropped too low, for example after a busy session. With pH and alkalinity in your readings, it also learns how fast pH creeps up as carbon dioxide escapes, allowing for the acid, soda ash, baking soda and chlorine you add, and suggests acid (or soda ash) when pH has probably drifted out of range. It also notices chemicals you add on a regular schedule, such as algaecide every week, and reminds you when they're due. Each suggestion says how it was worked out and should be confirmed with a test. Log it fills in Add Chemical, Test first opens Add Reading, and Dismiss hides it until there's new data. Predictions start on for the pool and off for the hot tub; switch them for either in the water body setup.
Changed
- Chlorine targets follow your CYA: with a CYA reading (this one, or the last one in the past 90 days), the free chlorine range, the target to raise it to (in the reading form and in predictions) and the ideal/low/high status use Trouble Free Pool's FC/CYA levels, for example a 5 ppm minimum and a 7–9 ppm target at CYA 60. Combined chlorine above 0.5 ppm with CYA known recommends a SLAM (shock to 40% of CYA, held until it clears) instead of the 10 × combined chlorine breakpoint dose.
- The reports' chlorine chart follows your CYA too: the green ideal band steps to the range for the CYA in effect at each reading (labelled "CYA 40" where there's room), the chart grows taller for higher levels such as a SLAM, and the target guidelines use your latest CYA. The hot tub chart uses the hot tub's own ranges instead of the pool's.
- The reports' chemical markers are sized by amount: each one's height compares it with the largest addition of the same chemical on the chart (2 lbs and 32 oz count the same). Tap a marker's dot to see what was added.
Version 1.3.0 November 2, 2026
Added
- Chlorine dose recommendation: when free chlorine is low, the reading form shows how much chlorine to add to reach your target, for the water body's volume and the product you use. When combined chlorine is high it recommends a breakpoint shock instead.
- Reading reminders on more than one day a week, for example Wednesday and Sunday.
- Re-check reminders: a reminder to re-test a few hours after you log a chemical addition (by default 4 hours after chlorine, 6 after pH products, 24 after alkalinity, hardness or CYA products). Logging a reading first cancels it, and one due overnight waits until 8 AM. Set them up from the bell.
- About screen with the app version, a privacy note and the open-source licenses. Tap the logo in the header, or About H2Oracle in the water body setup.
Changed
- Closing Add Reading or Add Chemical after entering something asks whether to save, discard or keep editing.
- Updated the Expo SDK 58 packages to their latest patch versions.
Version 1.2.0 October 25, 2026
Added
- Snooze 1 hour and Skip buttons on reading reminders. On Android they work without opening the app.
Fixed
- The water body setup could show the default capacities instead of the saved ones.
Removed
- The Send test reminder button in the reminder settings.
Version 1.1.1 October 24, 2026
Added
- Dates on chemical additions and usage sessions, so you can log one you forgot to enter.
- A clear button on Taylor drop counters, to save a test as not done.
Changed
- Taylor tests are listed in the order you run them.
Version 1.1.0 October 24, 2026
Added
- Taylor K-2006 drop entry: enter the drops you count instead of working out the results, with acid and base demand tests that give a dose for your water body, and K-1106 phosphate color cards.
- Calcium hardness readings.
- A test date on readings, defaulting to today.
Changed
- Combined chlorine replaces total chlorine. Saved readings are converted automatically.
- A clearer layout for the reading form.
Version 1.0.1 October 22, 2026
Added
- Edit a reading, chemical addition or session from its details.
- A welcome screen that explains reading reminders before asking for notification permission.
Changed
- New installs start empty. The sample events earlier versions added are removed, keeping everything you logged.
Fixed
- Spacing in the reports view.
Version 1.0.0 October 18, 2026
Added
- First release: a timeline of readings, chemical additions and usage sessions for a pool and a hot tub, with custom names and capacities, target-range checks, trend reports and weekly reading reminders.