# jfoclpf/plotEffectiveTaxRate

Octave function to Plot Effective Tax Rate for Income Progressive Taxes
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.

## What is an effective income tax rate

The actual rate at which a taxpayer pays taxes on income accounting for all taxes and offsets. The rate is calculated by dividing the total of all taxes paid, less offsets, by the total taxable income. The effective rate is typically lower than the tax bracket, which is currently based on a progressive rate scale. For example, a person in the 28% tax bracket who paid a total of state and federal taxes of \$13,000 on \$100,000 of taxable income has an effective tax rate of 13%.

source: investorwords.com

## How to use

This Octave function plots the Effective Tax Rate for Income Progressive Taxes.

Using Octave simply run the following function, taking as parameters arrays including the Tax Brackets and the corresponding Tax Rates for each Tax Bracket.

Therefore the syntax is

`plotEffectiveTaxRate( tax_brackets_array, tax_rates_array, colour_code [optional])`

• The first item of `tax_brackets_array` must always be zero.
• The `tax_rates_array` values must be inserted already as percentages, i.e., for a 20% tax, use `20` inseatd of `.2`
• The arrays must have the same size.

## Colour codes

The colour codes are the same applied for the Octave function `plot`, namely

• ‘k’ blacK
• ‘r’ Red
• ‘g’ Green
• ‘b’ Blue
• ‘y’ Yellow
• ‘m’ Magenta
• ‘c’ Cyan
• ‘w’ White

## Example

An example for the Portuguese progressive income tax for the year 2017

`plotEffectiveTaxRate([0, 7091, 20261, 40552, 80640], [14.5, 28.5, 37, 45, 48])`

which outputs

Another example for the Portuguese progressive income tax for the year 2018

`plotEffectiveTaxRate([0, 7091, 10700, 20261, 25000, 36856, 80640], [14.5, 23, 28.5, 35, 37, 45, 48], "r")`

which outputs

## Multiple charts

For multiple charts use the Octave commands `hold on` and `hold off`. For example

`plotEffectiveTaxRate([0, 7091, 20261, 40552, 80640], [14.5, 28.5, 37, 45, 48], "b")`
`hold on`
`plotEffectiveTaxRate([0, 7091, 10700, 20261, 25000, 36856, 80640], [14.5, 23, 28.5, 35, 37, 45, 48], "r")`
`hold off`

which outpurts