House Tax Plan 12/02/2017
Graph of cuts by income
HTML
<h1>House Tax cut (12/02/2017):</h1>
<form onsubmit="return false">
<label>
Home:
<select name="own" onchange="updateGraph()">
<option value="true">Own</option>
<option value="false" selected>Rent</option>
</select>
</label>
<label>
Status:
<select name="married" onchange="updateGraph()">
<option value="true">Married</option>
<option value="false">Single</option>
</select>
</label>
<label>
Children:
<select name="children" onchange="updateGraph()">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
</label>
<label>
State:
<select name="state" onchange="updateGraph()">
<option value="CA">CA</option>
<option value="NY">NY</option>
<option value="WA">WA</option>
<option value="N/A">N/A</option>
</select>
</label>
<label>
Home value / Net Income
<select name="houseValue" onchange="updateGraph()">
<option value="2">2</option>
<option value="2.5">2.5</option>
<option value="3">3</option>
<option value="3.5">3.5</option>
<option value="4" selected>4</option>
<option value="4.5">4.5</option>
<option value="5">5</option>
<option value="5.5">5.5</option>
<option value="6">6</option>
<option value="6.5">6.5</option>
<option value="7">7</option>
<option value="8.5">8</option>
<option value="8">8.5</option>
<option value="9">9</option>
<option value="9.5">9.5</option>
<option value="10">10</option>
</select>
</label>
</form>
<br />
<div id="chartContainer" style="height: 400px; width: 100%;"></div>
<div>
<h2>Notes</h2> Home - Own: assumes the person does 20% down and mortgage rate of 4% for 30 years.
<br /> Since the bill has a limit of 10K for property tax it hurts rich people if they are buying huge houses. If rich people buy small houses it hurts them much less.
<br />
<br />CA: state income tax +...
CSS
l
JavaScript
(function() {
var debugMode = false;
var person = {
// HTML form sets own, married, children, state
charityRate: 0, // 0%
//charityRate: .1, // 10% (pretax)
medicalRate: 0, // (pretax %)
downPayment: .2, // 20% of home value
mortgageRate: .04, // 4% for 30 year
homeToSalary: .20, // 20% of salary to mortgage payment
}
let salaries = [];
for (let i = 50000; i <= 1200000; i += 1000) {
salaries.push(i);
}
if (debugMode) {
salaries = [2000000];
}
const defaultConfig = {
brackets: [
{s: 0, m: 0, r: .10},
{s: 9525, m: 19050, r: .15},
{s: 38700, m: 77400, r: .25},
{s: 93700, m: 156150, r: .28},
{s: 195450, m: 237950, r: .33},
{s: 424950, m: 424950, r: .35},
{s: 426700, m: 480050, r: .396},
],
deductionLimits: {
propertyTax: -1,
stateTax: -1,
charity: -1,
medical: -1,
mortgageInterest: person.mortgageRate * 1000000,
},
personalExemption: {amount: 4150},
standardDeduction: {s: 6500, m: 13000},
childTaxCredit: {amount: 1000, s: 75000, m: 110000},
phaseout: {m: 305000, s: 254000},
phaseoutRate: {m: .03, s: .03},
amt: {
exemption: {s: 55400, m: 86200},
phaseout: {s: 123100, m: 164100},
amtPhaseoutRate: 0.25,
// nothing to phase out
phaseoutRate: {m: 0, s: 0},
brackets: [
{s: 0, m: 0, r: .26},
{s: 191500, m: 191500, r: .28},
],
},
};
const houseConfig = {
brackets: [
{s: 0, m: 0, r: .12},
{s: 45000, m: 90000, r: .25},
{s: 200000, m: 260000, r: .35},
{s: 500000, m: 1000000, r: .396},
],
deductionLimits: {
propertyTax: 10000,
stateTax: 0,
charity: -1,
medical: -1,
mortgageInterest: person.mortgageRate * 500000
},
personalExemption: {amount: 0},
phaseout: {m: 305000, s: 254000},
// no pease phaseout
phaseoutRate: {m:...