The hardness test you utilized, has a large gap between indicators. As 17.1 ppm = 1 grain per gallon then:
0 ppm = 0 gpg
100 ppm = 5.85 gpg
250 ppm = 14.62 gpg
450 ppm = 26.3 gpg
800 ppm = 46.8 gpg
The large steps between indicators make it difficult to identify the water's specific hardness quantity if the hardness colour indicated is somewhere in-between the sample colours. When programming the softener, the specific hardness needs to be known.
While the municipal water quality report indicates the 'average' hardness from the ground source is 310 ppm (18.1 gpg), the hardness may also be as low as 150 ppm (8.77 gpg) or as high as 460ppm (27 gpg) which would consume the softener's capacity much faster than the 20 gpg currently anticipated in the settings.
The actual hardness amount needs to be measured at your specific location using an accurate test kit that measures gpg. As there are multiple water sources each with different hardness amounts, when programming the softener, it is usually recommended to add 2-3 gpg to the as-tested result so as to anticipate occasions when the hardness amount may be higher than tested.
The usually recommended capacity setting for 1.5 ft3 of resin is 31,500 grains when regenerated with 9 lbs salt, or 36,000 grains when using 12 lbs salt.
Your current 30 minutes Brine Fill setting X 0.125 gpm BLFC = 3.75 gallons total brine fill per regen cycle. As each 1-gallon water will dissolve 3 lbs salt, then 11.25 lbs will be dissolved which is insufficient to regenerate 48,000 grains capacity, so a further reason your soft water is not so soft.
For a good balance of capacity, water quality and salt efficiency, suggest reprogramming your softener's usable Capacity setting to 36 and your Brine Fill setting to 32 minutes. The 32-minute setting will allow 4 gallons to enter the brine tank to dissolve 12 lbs salt. The salt efficiency for this setting will be: 36,000 / 12 = 3,000 grains per lb.
The current Reserve setting is 10% of capacity which will be 3600 grains or 180 gallons if 20 gpg hardness is programmed. As there are 4 people, anticipating 60 gals/day per person consumption, then the reserve setting should actually be 240 gallons. Resetting RS:SF to RS:RC and SF to RC:240 should provide an appropriate reserve. If your average water consumption per person differs, program the appropriate amount.
Because all of the 1.5 cuft resin capacity has been exhausted, the total capacity will now need to be restored which will require a 1X regeneration using a higher quantity of salt. To restore 45,000 grains capacity will require 22.5 lbs of salt. As the brine tank will currently contain 3.75 gallons (BF 30 X 0.125 BLFC), then to dissolve 22.5 lbs will require an additional 3.75 gallons water added to the brine tank using a bucket or hose. Reprogram the correct settings as specified while allowing approx 2 hours for additional salt to dissolve before initiating a manual regeneration cycle. As the correct settings were already programmed, 4 gallons water will be added to the brine tank at the end of regeneration, to prepare the correct amount of brine for the following regeneration cycle to restore another 36K grains capacity.
The chart below will show various capacities and the applicable salt requirements for those capacities for a large range of softener sizes. Note, the salt quantities are specified as lbs per ft3 of resin. The salt efficiency and water quality for each salt setting are specified at the bottom of the chart.
https://terrylove.com/forums/index.php?attachments/resin-chart-jpg.53316/