How to read effective tax rate on a stock screen
Effective tax rate is income tax expense divided by pretax income. It tells you how much of a profitable company's accounting income was claimed by tax for the period. On a stock screen, its best use isn't deciding that a low rate is good. It's finding cases where tax has made net income a poor description of the operating year.
A rate can swing because the business earned income in different countries, used tax credits, remeasured deferred taxes, settled an audit, or recorded a valuation allowance. Some effects repeat. Others don't. Start with the ratio, compare it with the company's own history, then open the tax note before treating the bottom line as durable.
This builds on the walk from revenue to net income. That article covered the whole income statement. Here we're taking apart its last subtraction.
What does effective tax rate measure?
An income statement reaches pretax income after operating costs, interest, and other non-tax items. The next line is the provision for income taxes, also called income tax expense. Subtract that provision and you reach net income.
The ratio is short:
effective tax rate = income tax expense / pretax income
The word effective matters. A statutory rate is the percentage written into tax law. The effective rate is the percentage the financial statements actually recorded after applying the company's mix of jurisdictions, credits, deductions, discrete tax events, and deferred-tax accounting.
Microsoft's fiscal year ended June 30, 2018 gives us a clean set of lines to follow. Its annual report reports pretax income of $36.474 billion, an income tax provision of $19.903 billion, and net income of $16.571 billion. Divide the second number by the first and the effective rate was about 55 percent, which the tax note prints as 55 percent.
That doesn't mean the operating business suddenly handed over more than half of an ordinary year's profit at a standing tax rate. The same note says Microsoft recorded a provisional net charge of $13.7 billion from the Tax Cuts and Jobs Act. The charge included a transition tax on accumulated foreign earnings, partly offset by remeasurement of deferred tax assets and liabilities.
The tax line did exactly what accounting required. It also made that year's net income hard to compare with the years around it.
Why can tax expense disagree with cash taxes?
Income tax expense is an accrual number. It measures tax attached to the accounting income reported for the period, including amounts whose cash payment belongs to another period. The cash flow statement then reconciles net income back toward cash from operations.
The bridge is deferred tax. Suppose tax rules let a company deduct an asset faster than book accounting depreciates it. The company pays less cash tax now, but the advantage reverses later. The balance sheet records that future obligation as a deferred tax liability. Other differences can create deferred tax assets, which represent future tax benefits if the company can use them.
This is the same stock-and-flow distinction introduced in how the three financial statements fit together. Income tax expense is a flow across a period. Deferred tax assets and liabilities are balance-sheet stocks at one date. Cash paid is another flow. Those three numbers can move differently without any arithmetic failing.
Microsoft's charge shows why the distinction matters. A law changed, so the company had to remeasure tax balances and recognize a transition tax. Much of the income-statement effect wasn't a new operating cost created by selling software during that year. It was the accounting consequence of applying new rules to earnings and balances accumulated across earlier years.
The reverse can happen too. A tax benefit can push net income above pretax income and make the effective rate negative. That can come from releasing a valuation allowance, resolving an uncertain tax position, or remeasuring deferred tax liabilities after a rate cut. Negative doesn't mean tax authorities paid the ordinary business to operate. It means a tax accounting item outweighed the current period's tax expense.
What makes a tax rate unusual?
There isn't one normal effective rate for every company. Even two businesses facing the same headline statutory rate can land far apart.
Geography changes the blend. A multinational earns profit under several tax systems. Shift the mix of profit between countries and the consolidated rate moves, even if the underlying products and tax rules don't.
Credits and deductions change the bill. Research credits, foreign tax credits, tax-exempt income, and special deductions can recur for years. A rate below the domestic statutory rate isn't automatically a one-off.
Losses break the ratio. With negative pretax income, dividing expense by loss produces a percentage whose sign is easy to misread. A loss-making company can record tax expense, a tax benefit, or no benefit because management doesn't expect to use its losses. Treat the rate as undefined when pretax income isn't positive.
A single event can dominate a year. A new law, audit settlement, valuation-allowance change, or legal restructuring can put years of tax consequences through one period. Microsoft's fiscal 2018 charge is the useful kind of extreme: the filing identifies the cause and quantifies it.
This is why cross-sectional ranking is a weak first move. Sorting the market from lowest rate to highest mixes companies operating in different countries with profitable companies carrying unusual benefits and loss-makers carrying mathematically strange ratios. Compare each company with itself first. Then compare peers that share a rough geographic and business shape.
How should a stock screen use the rate?
Use effective tax rate as an earnings-quality diagnostic. A large departure from the company's history tells you to inspect the tax note and consider whether net income is a fair input for valuation or profitability in that period.
Don't "normalize" the number inside the screen by deleting whatever looks strange. That turns a filed result into an analyst estimate before you've read the explanation. Let the screen identify the departure. Make any adjustment after the filing tells you what happened.
Three checks do most of the work:
- Require positive pretax income before calculating the ratio.
- Compare the newest fiscal quarter with the same fiscal quarter a year earlier, since quarterly tax rates can be seasonal and catch-up adjustments often land late in the year.
- Keep operating income beside the result. If operating profit held up while net income moved sharply, tax is one place to look.
A trailing rate is useful for smoothing quarterly noise, but it has a catch. One discrete charge remains in a trailing window until that quarter rolls out. A screen can flag the distorted rate for several runs after the event. That's useful if the purpose is to force a note read. It isn't proof that the tax event repeated.
How do you express it in Quantery?
The shape below is illustrative, and the bundled templates are the reference for exact fields. The thresholds are research parameters, not claims about a universal fair tax rate.
# "Operating profit, with the tax line made visible" - illustrative
params:
tax_low: 0.10
tax_high: 0.35
stability_band: 0.08
features:
pretax_ttm: ttm(pretax_income)
tax_ttm: ttm(income_tax_expense)
effective_tax_rate: if(pretax_ttm > 0, tax_ttm / pretax_ttm, null)
operating_ttm: ttm(operating_income)
pretax_q: newest(pretax_income)
tax_q: newest(income_tax_expense)
tax_rate_q: if(pretax_q > 0, tax_q / pretax_q, null)
pretax_prior: lag(pretax_income, 4)
tax_prior: lag(income_tax_expense, 4)
tax_rate_prior: if(pretax_prior > 0, tax_prior / pretax_prior, null)
tax_rate_change: if(not is_null(tax_rate_q) and not is_null(tax_rate_prior),
abs(tax_rate_q - tax_rate_prior), null)
criteria:
tax_rate_readable:
rules:
- { when: "is_null(effective_tax_rate)", score: 0, flag: no_meaningful_rate }
- { when: "effective_tax_rate >= $tax_low and effective_tax_rate <= $tax_high", score: 2 }
- { else: 1, flag: unusual_tax_rate }
tax_rate_stability:
rules:
- { when: "is_null(tax_rate_change)", score: 0, flag: no_yoy_comparison }
- { when: "tax_rate_change <= $stability_band", score: 2 }
- { else: 0, flag: large_tax_rate_move }
gate:
mode: strict
The first guard does the necessary work. It refuses to manufacture a meaningful percentage from zero or negative pretax income. The year-over-year branch also starts with a null check. Missing history earns no points and raises a flag instead of slipping into a comparison as zero.
The ordinary-looking band deserves restraint. A company outside it gets one point and an unusual_tax_rate flag. It stays in the results for inspection. Microsoft would have been unusual in the example year for a well-explained reason. Throwing it out would confuse a diagnostic with a judgment.
operating_ttm isn't scored here. Put it on the result so you can see whether the operating engine and the after-tax bottom line told different stories. You could add an operating-margin or growth criterion, but then you're testing a broader thesis. Keep the tax rule responsible for the tax question.
Quantery's thesis DSL reference documents the period functions and null behavior behind this example. Its rules are yours to change. Widen the band, score only the year-over-year change, or remove the rate from the gate and leave it as an annotation. Then run the variants and inspect which names move.
What does the tax note tell you that the ratio cannot?
The ratio tells you that the last subtraction was unusual. The tax note tells you why.
Start with the effective-rate reconciliation. It commonly begins with tax at the domestic statutory rate and lists the items that carry the reported rate to the effective one. Look for foreign-rate differences, credits, state taxes, valuation-allowance changes, audit settlements, and law changes. Then read the deferred-tax table to see which assets and liabilities may reverse later.
Ask four blunt questions. Did this item arise from the current operating year? Did cash move now, later, or earlier? Can the mechanism recur? Would the thesis still pass if you scored pretax or operating income instead of net income?
Microsoft's fiscal 2018 filing answers those questions well enough to keep the screen from making a category error. Operating income was $35.058 billion, according to the same annual report. The tax provision was $19.903 billion and net income was $16.571 billion. If a profitability screen used only that bottom line, it would fold a $13.7 billion tax-law charge into its view of the software business. If it ignored tax entirely, it would miss a real claim on shareholder earnings. The filing lets you hold both facts at once.
A screen can't read that explanation for you. It can catch the year, preserve the filed values, and put the oddity in front of you. That's enough. Turn the thresholds until the flags point to genuinely informative notes, and leave the final interpretation attached to the document that explains the number.
Research tooling, not investment advice. Nothing here is a recommendation to buy, sell, or hold any security. Screens, scores, and backtests are informational only; backtested results are hypothetical, exclude costs such as commissions and slippage, and do not guarantee future results. Verify against primary filings and make your own decisions.
Want to try this on your own rules? Quantery is free for 14 days: the full app, no card required.
← All articles