EDIT:
I would be very wary of feeding 40 ppm Na or recommending others do so without an obligatory YMMV warning: use at your own risk. While that can work fine for most crops in a greenhouse or outdoors, the way we push cannabis with very high PPFD and DLI, >75’F air temp, and frequent irrigation means 40 ppm Na is too much IMVHO. Otherwise, use 20-25% leachate run-off based on total daily irrigation volume.
I shoot for 0 ppm Na, but because that’s impossible with the grades of salts we use, I ensure Na stays below 1-2 ppm.
Also, note that Na acts as an elemental substitute for K, and Na can interfere with K uptake and xylem NO3-dependent systems:
Hydroponics: A Practical Guide for the Soilless Grower
There is considerable evidence that some nonessential elements can partially substitute for an essential element, such as Na for K, Rb for K, Sr for Ca, and V for Mo. These partial substitutions may be beneficial to plants in situations where an essential element is at a marginally sufficient concentration.

Coordinated Transport of Nitrate, Potassium, and Sodium
Sodium is taken up by many K+ transporters, and a large proportion of Na+ ions accumulated in shoots appear to be loaded into the xylem by systems that show nitrate dependence. Thus, an adequate supply of mineral nutrients is paramount to reduce the noxious effects of salts and to sustain crop productivity under salt stress. In this review, we will focus on recent research unraveling the mechanisms that coordinate the K±NO3–; Na±NO3–, and K±Na+ transports, and the regulators controlling their uptake and allocation.
ORIGINAL:
I’m surprised no one mentioned UNH’s great AlkCal.
This tool has been available for 13 years online and 27 years as a spreadsheet. It will calculate the amount of acid (sulfuric, phosphoric, and nitric) needed to neutralize your alkalinity to a target pH or alkalinity. Where ya’ll been? LOL 
All you need is your municipality water quality report to find your water alkalinity (often termed ‘total hardness’ as CaCO3 or HCO3). To find your municipality’s water quality report enter your city into Google plus, “water quality report.” If you don’t find the report, call your water treatment plant and ask them to email it to you. But sending a sample to a lab for water analysis is best practice. You have to send a sample for water analysis if you’re on a well. However, it’s best to send a sample for analysis every three months because alkalinity changes throughout the year (especially for well water).
RO water has zero alkalinity. But you can irrigate with alkalinity anywhere from 0 ppm to upwards of 40 ppm (I would keep it to 60 ppm, max). Soft water is 0-60 ppm CaCO3. So, if you have hard water, you don’t have to remove all the hardness. Keeping some alkalinity will help buffer against downward pH drift.
Thanks to @danielfp, using HydroBuddy is a great way to go if you formulate your own nutrient solutions because it accounts for the alkalinity causing maco nutrients (CaCO3, MgCO3, etc.). But if a grower is buying a commercial product (like Athena), there’s no need to use HydroBuddy. Just follow AlkCalc’s dosage using 35% or 50% sulfuric acid (diluted from 40% here or 98% here), and you’re done. 
A nice thing about AlkCalc is you can use it for in-line injection, so your water is already neutralized by the time it hits your storage tank.
Here’s an example using city water with a total hardness of 234 as CaCO3 ppm:
Note that total hardness includes a few different ions, so even though it’s listed as ppm CaCO3, you can assume it includes Ca, Mg, etc. Greater than 120 ppm CaCO3 is considered hard water. So, this example is very hard water; therefore, I’m assuming the pH is 9.0.
I set a target of 40 ppm CaCO3, which is soft water, and if the 234 ppm CaCO3 all calcium hardness, that means I have ~93.7 mg/L Ca. When using 35% sulfuric acid I would add 1.64 mL/gal, providing 62.72 mg/L S (sulfate). Note the final pH drops to 5.69 after neutralizing 194 ppm of CaCO3 (234-40 = 194):
Also, if you’re on a well, check the Fe concentration. To remove the Fe through oxidation, you can add chlorine using calcium hypochlorite, which is technically a mix of hypochlorous acid and hypochlorite depending on pH, with free chlorine at 1.2 times the Fe concentration (ppm). Then run the water through a greensand filter to remove the insoluble Fe. A bonus is that free chlorine will regenerate your greensand in the filter. Then, measure the free chlorine in the water with a chlorine test strip. Followed by adding ascorbic acid (vitamin C) at 2.5 times the free chlorine concentration (ppm) to neutralize the chlorine. A bonus is ascorbic will reduce the pH by a few points. Finally, test the pH and adjust it to below 7 as required using sulfuric acid (so you’re not adding P or N). Now, your water is ready for nutrients and final pH adjustment!
Notes:
- Instead of using ascorbic acid for dechlorination, you can run the water through an activated carbon filter. Make sure to test for free chlorine (using test strips) afterward.
- If you’re using city water with chloramine (more potent than chlorine), you can use ascorbic acid to dechlorinate. Use the same dosage as used for chlorine.
- Don’t feed an RO filter water that has chloramines unless you want to replace your RO membranes a lot. Make sure you pretreat city water with chloramines by running through a filter designed for chloramines before your RO filter.