We start by using NASA data to get the precise positions of the planets. Then we assign semantic meaning to these raw data points using the rules of astrology (i.e what significance the Moon has, what the different signs mean, etc). And lastly, we combine them together into human readable text which we show to the user.