The Unity Framework, Your Pool as a Chemistry System
Chemistry

The Unity Framework, Your Pool as a Chemistry System

Why parameter-by-parameter pool chemistry fails, and how the Unity Framework evaluates your water as one integrated system.

If you’ve been around for long enough (like we have, and yes we’re all old!), you might remember those circular disc slide calculators that came with test kits, in fact many still have them. You’d align your pH reading with your alkalinity, turn the disc, and read off a dosing recommendation through a little window. These devices were clever bits of analog engineering, essentially circular slide rules adapted for pool chemistry. Similar calculators existed for photography exposure, aviation flight planning, and engineering calculations going back to the 1930s and earlier.

The genius of these tools was also in their limitation. Each calculation happened in isolation. You’d do one for pH adjustment, another for chlorine dosing, maybe a third for water balance. The disc couldn’t consider all your readings in any uniform way because the physical mechanism only allowed for pairwise relationships. Line up two numbers, get one answer.

When pool chemistry went digital, most calculators simply replicated this approach in software. Enter your pH, get a recommendation. Enter your chlorine and StabilizerStabilizerAnother name for cyanuric acid (CYA). Protects chlorine from being destroyed by sunlight. Sometimes called conditioner., get another recommendation. Each parameter evaluated against its own ideal range, flagged if outside the lines. The circular slide rule became a series of if-then statements, but the fundamental thinking remained unchanged. Parameters as independent variables, each with static targets.

This approach works well enough for simple situations. But pool chemistry is more interconnected than these tools acknowledge, and that’s where the guidance starts to break down.

The Problem with Parameter-by-Parameter Thinking

Your pool is an interconnected system where everything affects everything else. The pH influences how effective your chlorine is. Your stabilizer level changes what “enough chlorine” even means. Water temperature shifts what “balanced” looks like. The SurfaceSurfaceYour pool’s interior finish. Plaster and pebble surfaces need higher calcium to prevent etching. Vinyl liners and fiberglass are non-mineral, so calcium targets are lower but still matter for equipment protection. type of your pool determines how much calcium you actually need. These relationships matter, and understanding them is what separates useful guidance from generic number-checking.

Consider two pools with identical chlorine readings of 3 ppmppmThe standard unit for measuring chemical concentrations in pool water. 1 ppm equals about 1 drop in 13 gallons.. One has a salt water generatorSalt Water GeneratorEquipment that converts dissolved salt into chlorine through electrolysis. Eliminates manual chlorine dosing but produces sodium hydroxide as a byproduct, which raises pH. and stabilizer at 70 ppm. The other uses liquid chlorine with stabilizer at 30 ppm. Same chlorine number, completely different situations.

Cyanuric AcidCyanuric AcidAlso called stabilizer or conditioner. Protects chlorine from being destroyed by sunlight. Essential for outdoor pools, but too much reduces chlorine’s killing power. binds to chlorine molecules, protecting them from UV degradation but also reducing their sanitizing power. The higher your stabilizer, the more total chlorine you need to maintain the same level of active, killing chlorine. At 70 ppm CYACYAShort for Cyanuric Acid. Also called stabilizer or conditioner. Protects chlorine from UV breakdown in outdoor pools., a reading of 3 ppm Free ChlorineFree ChlorineThe chlorine available to sanitize your pool right now. This is what kills bacteria and algae. Different from combined chlorine, which has already reacted with contaminants. means most of that chlorine is bound up and unavailable. At 30 ppm CYA, more of it remains active. The first pool with its salt water generator is producing chlorine continuously and maintaining adequate sanitation despite the higher stabilizer. The second pool is already creating conditions favorable to algae because its chlorine, dosed intermittently, can’t keep up with the demand created by lower but still significant CYA binding.

A chart that says “3-5 ppm chlorine is ideal” misses this entirely. The number 3 doesn’t mean the same thing in both pools.

This pattern repeats across parameters. pH has a textbook ideal around 7.4 to 7.6, but where you actually want to be within that range depends on your water’s overall balance. Total AlkalinityTotal AlkalinityA measure of your water’s ability to resist pH changes. Think of it as a buffer that keeps your pH stable. Measured in ppm. acts as a buffer for pH, but the ideal TA level varies based on your sanitizer type and whether you’re running a pool or a spa. Calcium HardnessCalcium HardnessThe amount of dissolved calcium in your water. Too low and water becomes corrosive; too high and you get scale buildup. targets depend on your surface material, your water temperature, and what the rest of your chemistry is doing.

The circular slide calculator couldn’t handle this complexity. Neither can its digital descendants.

Water Balance and the Saturation Index

Water balance is where the interconnection becomes most apparent and where parameter-by-parameter thinking fails most visibly.

The Calcite Saturation IndexCalcite Saturation IndexA saturation index based on more precise thermochemistry than the traditional LSI. Both use carbonate alkalinity, but CSI calculations are more accurate for pool water., sometimes called the Langelier Saturation IndexLangelier Saturation IndexA formula that predicts whether your water will deposit scale or corrode surfaces. Zero is balanced; positive means scale-forming; negative means corrosive., combines pH, alkalinity, calcium hardness, and temperature into a single number that tells you whether your water wants to dissolve minerals or deposit them. A negative CSICSIShort for Calcite Saturation Index. A more precise saturation index than LSI, based on actual calcium carbonate thermochemistry. means water is aggressive and will pull calcium from wherever it can find it, including your plaster, your heater’s heat exchanger, and your pump seals. A positive CSI means water is supersaturated and will deposit scale on surfaces, clogging equipment and creating rough spots on pool walls.

The target is balance, typically a CSI near zero, where water is neither aggressive nor scaling.

Here’s where traditional tools create confusion. You might see every individual parameter showing green checkmarks while a separate water balance indicator shows a corrosion warning. Your pH card says “ideal” but your Saturation IndexSaturation IndexA calculation that predicts whether your water will deposit scale or dissolve calcium from surfaces. Balanced water has an index near zero. says the water is eating your plaster. Which should you believe?

Both are telling the truth from their limited perspective. The pH really is within its standalone ideal range. The water really is aggressive. These facts coexist because CSI depends on the interaction of multiple parameters, not on any single one. A pH of 7.4 might contribute to balanced water in one pool and corrosive water in another, depending on what’s happening with alkalinity, calcium, and temperature.

Temperature deserves special attention here. The same chemistry that produces balanced water at 75°F (24°C) will produce scaling water at 104°F (40°C). Calcium becomes less soluble as temperature rises, which means hot water can hold less calcium in solution before it starts depositing. This is why hot tubs and spas need to target slightly negative CSI values. Water that would be perfectly balanced in a cooler pool will actively deposit scale at spa temperatures. Anyone who has seen the inside of a neglected spa heater understands this viscerally.

Static targets don’t account for any of this. The chemistry itself changes with conditions.

The Unity Framework

How PoolFu Approaches This Differently


This is the problem PoolFu was built to solve. Rather than evaluating parameters against static charts, the app treats your water chemistry as one integrated system through what we call the Unity Framework.

The name reflects our philosophy. Parameters and water balance aren’t separate concerns that compete with each other. They’re aspects of a single system that need to be understood together. When you enter your readings, the Chemistry Engine evaluates each parameter in the context of everything else happening in your water. Your equipment, your surface type, your stabilizer level, your water temperature. The same number gets interpreted differently based on your specific setup, because that’s how pool chemistry actually behaves.

When the app suggests adjusting pH, it’s considering both the parameter itself and how that change affects overall water balance. When balance is off, it identifies the most practical way to correct it without pushing other readings out of range. This coordination happens automatically. You don’t see conflicting advice because the system doesn’t generate conflicting advice.

The Chemistry Engine handles all the underlying calculations, maintaining what we believe is the most comprehensive model of pool chemistry relationships available in a consumer app. It knows that chlorine effectiveness depends on CYA. It knows that calcium targets vary by surface type. It knows that temperature affects saturation behavior. These relationships are built into every recommendation rather than bolted on as afterthoughts.

One System
Not Separate Charts
Parameters and water balance evaluated together. The same chlorine reading gets different guidance at different stabilizer levels, because that's how the chemistry works.
Your Setup
Not Generic
Surface type, equipment, temperature, and sanitizer method all factor into every recommendation. No two pools get identical advice unless they're genuinely identical.
No Conflicts
By Design
Because the Chemistry Engine evaluates everything simultaneously, it never suggests fixing one parameter in a way that breaks another.

Your Equipment Should Do Its Job

Context-awareness extends to your equipment. If you have a salt water generator and your chlorine is low, the first suggestion shouldn’t be “add bleach.” Your pool makes its own chlorine. The equipment should handle it.

PoolFu knows what you have and recommends accordingly. For salt water pools running low on chlorine, the guidance starts with adjusting your generator output or extending run time. Chemical additions come into play when the equipment genuinely can’t keep up, not as the default response. This seems obvious when you say it out loud, but it requires the system to understand equipment capabilities rather than just treating every pool as a vessel that needs chemicals added to it.

The same thinking applies throughout. Pools with heaters get different calcium guidance because scale buildup affects heat exchangers more directly. Pools with water features get context about why pH might be drifting upward from aeration. The recommendations reflect your actual setup rather than assuming a generic pool that doesn’t exist.

Surface Type and Temperature

Your pool’s surface material affects what “correct” chemistry looks like, particularly for calcium hardness.

Plaster and pebble surfaces need calcium saturation. If your water is undersaturated with calcium, it will pull minerals out of the plaster itself, gradually etching and roughening the surface. This is why plaster pools target higher calcium levels, typically 250 to 350 ppm.

Vinyl and fiberglass don’t have the same surface protection needs. The liner or shell doesn’t care about calcium saturation the way plaster does. But your equipment still needs protection. Aggressive water attacks heater elements, pump seals, and any metal components in the circulation system regardless of what your pool walls are made of. So even pools without mineral surfaces need some minimum calcium level, just not as high as plaster requires.

The Unity Framework incorporates surface type into its balance calculations. When the theoretically optimal calcium level for perfect CSI falls outside what’s safe or sensible for your surface, the system adapts. Maybe calcium is already at the maximum reasonable level for fiberglass, so pH becomes the adjustment path instead. The goal is achievable balance within your pool’s actual constraints rather than theoretical perfection that would damage something else.

Temperature affects these calculations significantly. Cold water naturally runs more negative CSI because of how calcium solubility works at lower temperatures. A pool at 50°F (10°C) that shows slightly negative CSI might be behaving exactly as physics dictates, not suffering from a chemistry problem that needs solving. Hot spas face the opposite challenge, where even small positive CSI values can mean active scaling.

PoolFu adjusts its targets and its guidance based on water temperature because the underlying chemistry genuinely changes with conditions. Recommendations for a heated spa at 104°F (40°C) look different from recommendations for an unheated pool at 68°F (20°C), as they should.

Expected Chemistry vs. Problems to Solve

One of the more subtle aspects of the Unity Framework is recognizing when unusual-looking readings are actually expected for a particular setup.

Salt water generators with proper stabilizer levels will naturally show slightly negative saturation index values. This happens because of how CYA affects the calculation. Cyanuric acid reduces the effective carbonate alkalinityCarbonate AlkalinityThe portion of total alkalinity that actually affects water balance. In stabilized pools, subtract about a third of your CYA from total alkalinity to get this number. that factors into CSI, pulling the index negative. The water isn’t actually corrosive in the way the raw number might suggest. It’s behaving exactly as the chemistry predicts for that equipment and stabilizer combination.

Most tools would flag this as a problem. The CSI is negative, therefore the water is aggressive, therefore you need to add calcium or raise pH. But following that advice for an SWGSWGShort for Salt Water Generator. Converts dissolved salt into chlorine through electrolysis, so you don’t have to add chlorine manually. pool with proper stabilizer would push other parameters out of their ideal ranges while solving a problem that doesn’t actually exist.

PoolFu recognizes these patterns and doesn’t create unnecessary alarm about chemistry that’s working correctly. When your water balance is exactly where it should be given your setup, the app tells you that rather than suggesting interventions that would make things worse.

This kind of recognition requires understanding the relationships between parameters, equipment, and expected outcomes. It’s not something you can encode in a circular slide calculator or its digital equivalent. The system needs to model how the pieces fit together.

Patterns Over Time

With enough test records, patterns start to emerge that help explain recurring issues.

Maybe your pH consistently drifts upward over weeks of testing. For a salt water pool, this is a signature behavior. The electrolysis process that generates chlorine also produces sodium hydroxide as a byproduct, which raises pH. Understanding this explains why you’re always adding acid and suggests that running slightly lower TA might reduce the buffering that makes pH harder to move.

Maybe your stabilizer keeps climbing even though you’re not adding any. This usually means you’re using DichlorDichlorA fast-dissolving granular chlorine that contains cyanuric acid. Convenient for quick dosing, but adds stabilizer with every use. or TrichlorTrichlorSlow-dissolving chlorine tablets or pucks used in floating dispensers and feeders. Contains cyanuric acid, so stabilizer levels rise with continued use. tablets, which contain cyanuric acid as part of their formulation. Every dose of chlorine is also a dose of stabilizer. Eventually CYA accumulates to the point where it’s hampering chlorine effectiveness, and the only solution is partial drain and refill to dilute it down.

PoolFu watches for these patterns and provides insights about what’s happening over time. This helps you understand the recurring “why” behind certain issues rather than treating the same symptoms repeatedly without addressing root causes.

The app doesn’t pretend to know things it doesn’t know. If you haven’t entered your salt generator’s output percentage, it won’t assume a value and calculate around it. Recommendations stay grounded in what you’ve actually told the system about your setup.

This matters because bad assumptions lead to bad advice. Guessing that your SWG is running at 50% output when it’s actually at 80% produces a completely different recommendation than the truth would. Rather than fabricate certainty, the app acknowledges what’s known and what isn’t.

For genuinely complex situations, we don’t pretend the app replaces professional judgment. Some pool problems require someone on site looking at the water, the equipment, and the surfaces. But for the vast majority of routine maintenance decisions, having a tool that actually understands chemistry relationships beats having a fancy version of a circular slide calculator.

The Goal

Pool chemistry shouldn’t feel like a mystery that requires memorizing charts or cross-referencing multiple sources. It shouldn’t generate contradictory advice that leaves you wondering which recommendation to follow. It shouldn’t treat every pool as identical when they’re clearly not.

PoolFu aims to be the knowledgeable friend who actually understands how pools work, considers your specific situation, and gives you guidance that holds together as a coherent whole. Your water is a system. The Unity Framework and Chemistry Engine exist because the tools that help you manage it should understand that too.

The circular slide calculator was a brilliant solution for its era. But your pool deserves better than forty-year-old thinking dressed up in a modern interface.