DS always liked math, liked to talk about it, loved numbers. We would give him problems to solve in his head when we were driving. I tried to teach him new things and realized that since I did not have a plan that I was leaving huge gaps so we went to IXL to fill those in.

He was quite accelerated and after a few years of back and forth with the school we settled on having him do EPGY during school. Biggest issue here was that he went through four grades of school in 6 months, much of this due to him already knowing the EPGY material. So be aware - using EPGY may not slow him down.

At some stage, I made flash cards through 20 for his multiplication. He memorized these over a long period of time, typically doing a few at a time on long car rides. He is in 7th today and still reviews these cards once every six months or so and believes those cards have been a huge help to him.

He wants to take Calculus now and arguably could have this year but we have slowed him down through AOPS courses on combinatorics/# theory. We have bought the AOPS books and he works through them independently and once finished he takes the online course. He likes this approach.

The downside we have is that he learns math independently as he is too accelerated for his school. He loves to talk about math so we found a math club and also have him go to a tutor periodically (a professor from a local college). They do not have a set program but talk through what he is working on usually. He really looks forward to this.

If we were doing it over I think I would have tried to slow him down even more early on as it is not great to have him studying independently. Also we might have tried to get him into a school that it would have been easier to have him attend higher level math classes with other kids. Just thought I would share our experience. It is not a great situation to have them several grades ahead of their peers but in our case better than having them sit in a class where he is not interested.