We study the optimal auditing of a taxpayer's income in a dynamic principal-agent model of hidden income. Taxpayers in our model initially have low income and stochastically transit to high income that is an absorbing state. A low-income taxpayer who transits to high income can under-report his true income and evade his taxes. With a constant absolute risk-aversion utility function and a costly auditing technology, we show that the auditing mechanism in our model consists of cycles. Within each cycle, a low-income taxpayer is initially unaudited, but if the duration of low-income report exceeds a threshold, then the auditing probability becomes positive. That is, the tax authority guarantees that the taxpayer will not be audited until the threshold duration is reached. We also find that auditing becomes less frequent if the auditing cost is higher or if the variance of income is lower.