Deprecated: Return type of WP_Theme::offsetExists($offset) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/wilbul4/maxoutofpocket.com/wp-includes/class-wp-theme.php on line 554

Deprecated: Return type of WP_Theme::offsetGet($offset) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/wilbul4/maxoutofpocket.com/wp-includes/class-wp-theme.php on line 595

Deprecated: Return type of WP_Theme::offsetSet($offset, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/wilbul4/maxoutofpocket.com/wp-includes/class-wp-theme.php on line 535

Deprecated: Return type of WP_Theme::offsetUnset($offset) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/wilbul4/maxoutofpocket.com/wp-includes/class-wp-theme.php on line 544

Deprecated: Return type of WP_REST_Request::offsetExists($offset) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/wilbul4/maxoutofpocket.com/wp-includes/rest-api/class-wp-rest-request.php on line 960

Deprecated: Return type of WP_REST_Request::offsetGet($offset) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/wilbul4/maxoutofpocket.com/wp-includes/rest-api/class-wp-rest-request.php on line 980

Deprecated: Return type of WP_REST_Request::offsetSet($offset, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/wilbul4/maxoutofpocket.com/wp-includes/rest-api/class-wp-rest-request.php on line 992

Deprecated: Return type of WP_REST_Request::offsetUnset($offset) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/wilbul4/maxoutofpocket.com/wp-includes/rest-api/class-wp-rest-request.php on line 1003

Deprecated: Return type of WP_Block_List::current() should either be compatible with Iterator::current(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/wilbul4/maxoutofpocket.com/wp-includes/class-wp-block-list.php on line 151

Deprecated: Return type of WP_Block_List::next() should either be compatible with Iterator::next(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/wilbul4/maxoutofpocket.com/wp-includes/class-wp-block-list.php on line 175

Deprecated: Return type of WP_Block_List::key() should either be compatible with Iterator::key(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/wilbul4/maxoutofpocket.com/wp-includes/class-wp-block-list.php on line 164

Deprecated: Return type of WP_Block_List::valid() should either be compatible with Iterator::valid(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/wilbul4/maxoutofpocket.com/wp-includes/class-wp-block-list.php on line 186

Deprecated: Return type of WP_Block_List::rewind() should either be compatible with Iterator::rewind(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/wilbul4/maxoutofpocket.com/wp-includes/class-wp-block-list.php on line 138

Deprecated: Return type of WP_Block_List::offsetExists($index) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/wilbul4/maxoutofpocket.com/wp-includes/class-wp-block-list.php on line 75

Deprecated: Return type of WP_Block_List::offsetGet($index) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/wilbul4/maxoutofpocket.com/wp-includes/class-wp-block-list.php on line 89

Deprecated: Return type of WP_Block_List::offsetSet($index, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/wilbul4/maxoutofpocket.com/wp-includes/class-wp-block-list.php on line 110

Deprecated: Return type of WP_Block_List::offsetUnset($index) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/wilbul4/maxoutofpocket.com/wp-includes/class-wp-block-list.php on line 127

Deprecated: Return type of WP_Block_List::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/wilbul4/maxoutofpocket.com/wp-includes/class-wp-block-list.php on line 199

Deprecated: Return type of Pimple\Container::offsetExists($id) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/better-wp-security/vendor-prod/pimple/pimple/src/Pimple/Container.php on line 133

Deprecated: Return type of Pimple\Container::offsetGet($id) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/better-wp-security/vendor-prod/pimple/pimple/src/Pimple/Container.php on line 98

Deprecated: Return type of Pimple\Container::offsetSet($id, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/better-wp-security/vendor-prod/pimple/pimple/src/Pimple/Container.php on line 79

Deprecated: Return type of Pimple\Container::offsetUnset($id) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/better-wp-security/vendor-prod/pimple/pimple/src/Pimple/Container.php on line 143

Deprecated: Return type of iThemesSecurity\Lib\Lockout\Execute_Lock\Context::offsetExists($offset) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/better-wp-security/core/lib/lockout/execute-lock/abstract-context.php on line 60

Deprecated: Return type of iThemesSecurity\Lib\Lockout\Execute_Lock\Context::offsetGet($offset) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/better-wp-security/core/lib/lockout/execute-lock/abstract-context.php on line 66

Deprecated: Return type of iThemesSecurity\Lib\Lockout\Execute_Lock\Context::offsetSet($offset, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/better-wp-security/core/lib/lockout/execute-lock/abstract-context.php on line 72

Deprecated: Return type of iThemesSecurity\Lib\Lockout\Execute_Lock\Context::offsetUnset($offset) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/better-wp-security/core/lib/lockout/execute-lock/abstract-context.php on line 76

Deprecated: Return type of iThemesSecurity\Lib\Lockout\Execute_Lock\Context::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/better-wp-security/core/lib/lockout/execute-lock/abstract-context.php on line 56

Deprecated: Return type of ITSEC_Lib_Distributed_Storage_Cursor::current() should either be compatible with Iterator::current(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/better-wp-security/core/lib/class-itsec-lib-distributed-storage.php on line 578

Deprecated: Return type of ITSEC_Lib_Distributed_Storage_Cursor::next() should either be compatible with Iterator::next(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/better-wp-security/core/lib/class-itsec-lib-distributed-storage.php on line 585

Deprecated: Return type of ITSEC_Lib_Distributed_Storage_Cursor::key() should either be compatible with Iterator::key(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/better-wp-security/core/lib/class-itsec-lib-distributed-storage.php on line 606

Deprecated: Return type of ITSEC_Lib_Distributed_Storage_Cursor::valid() should either be compatible with Iterator::valid(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/better-wp-security/core/lib/class-itsec-lib-distributed-storage.php on line 613

Deprecated: Return type of ITSEC_Lib_Distributed_Storage_Cursor::rewind() should either be compatible with Iterator::rewind(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/better-wp-security/core/lib/class-itsec-lib-distributed-storage.php on line 620

Deprecated: Return type of WPCF7_FormTag::offsetExists($offset) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/contact-form-7/includes/form-tag.php on line 395

Deprecated: Return type of WPCF7_FormTag::offsetGet($offset) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/contact-form-7/includes/form-tag.php on line 387

Deprecated: Return type of WPCF7_FormTag::offsetSet($offset, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/contact-form-7/includes/form-tag.php on line 381

Deprecated: Return type of WPCF7_FormTag::offsetUnset($offset) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/contact-form-7/includes/form-tag.php on line 399

Deprecated: Return type of WPCF7_Validation::offsetExists($offset) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/contact-form-7/includes/validation.php on line 78

Deprecated: Return type of WPCF7_Validation::offsetGet($offset) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/contact-form-7/includes/validation.php on line 72

Deprecated: Return type of WPCF7_Validation::offsetSet($offset, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/contact-form-7/includes/validation.php on line 59

Deprecated: Return type of WPCF7_Validation::offsetUnset($offset) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/contact-form-7/includes/validation.php on line 82

Deprecated: Automatic conversion of false to array is deprecated in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/better-wp-security/core/modules.php on line 137

Deprecated: DateTime::__construct(): Passing null to parameter #1 ($datetime) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-includes/script-loader.php on line 348

Deprecated: Constant FILTER_SANITIZE_STRING is deprecated in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/wordpress-seo/src/conditionals/third-party/elementor-edit-conditional.php on line 22

Deprecated: Constant FILTER_SANITIZE_STRING is deprecated in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/wordpress-seo/src/conditionals/third-party/elementor-edit-conditional.php on line 28

Deprecated: Return type of Requests_Cookie_Jar::offsetExists($key) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/wilbul4/maxoutofpocket.com/wp-includes/Requests/Cookie/Jar.php on line 63

Deprecated: Return type of Requests_Cookie_Jar::offsetGet($key) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/wilbul4/maxoutofpocket.com/wp-includes/Requests/Cookie/Jar.php on line 73

Deprecated: Return type of Requests_Cookie_Jar::offsetSet($key, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/wilbul4/maxoutofpocket.com/wp-includes/Requests/Cookie/Jar.php on line 89

Deprecated: Return type of Requests_Cookie_Jar::offsetUnset($key) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/wilbul4/maxoutofpocket.com/wp-includes/Requests/Cookie/Jar.php on line 102

Deprecated: Return type of Requests_Cookie_Jar::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/wilbul4/maxoutofpocket.com/wp-includes/Requests/Cookie/Jar.php on line 111

Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::offsetExists($key) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/wilbul4/maxoutofpocket.com/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 40

Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::offsetGet($key) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/wilbul4/maxoutofpocket.com/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 51

Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::offsetSet($key, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/wilbul4/maxoutofpocket.com/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 68

Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::offsetUnset($key) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/wilbul4/maxoutofpocket.com/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 82

Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/wilbul4/maxoutofpocket.com/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 91

Deprecated: trim(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-includes/class-wp.php on line 173
State Income Taxes: An Extra $20,000 In Our Pocket - Max Out of Pocket
Deprecated: parse_str(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-includes/formatting.php on line 4975

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 176

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 176

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 176

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 176

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 176

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 176

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 176

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 176

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 176

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 176

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 176

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 176

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 176

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 176

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 176

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 176

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 176

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 176

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 176

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 176

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 176

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 176

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 176

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 176

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 176

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 176

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 176

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 176

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 176

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 176

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 176

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 176

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 176

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 176

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 176

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 176

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 176

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 176

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 176

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 176

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 176

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 176

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 176

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 176

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 176

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 176

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 176

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 176

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 176

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 176

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 176

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 176

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 176

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 176

Deprecated: ltrim(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-includes/wp-db.php on line 3030

State Income Taxes: An Extra $20,000 In Our Pocket


Deprecated: ltrim(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-includes/wp-db.php on line 3030

Deprecated: parse_str(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/jetpack/class.jetpack.php on line 4222

Mixing a pay raise with downsizing can do wonders for a financial situation. It’s pretty incredible. Throw in a favorable tax code, and we can start talking about some real money. I am told you are officially ‘old’ when taxes become a regular point of conversation. I like to think I have wisdom beyond my years. But I do find it an interesting subject, and I continue to be surprised just how different the tax structure can be from state to state.

I have lived thrived under four different state income tax jurisdictions: Michigan, Tennessee, North Carlina, and New Hampshire. This last move brought us up to New Hampshire from North Carolina about four years ago now. That’s a full high school career — time flies.

We accidentally landed in a state that has absolutely no taxes on W2 income. “Live free or die,” they say here in New Hampshire.

Taxes make big Max cry

Not exactly all income is sheltered, though. New Hampshire will hit interest and dividend income with a 5% tax at the $4,800 mark. We came close to that cliff in 2020 by tallying $4,288 in taxable dividend income. They don’t touch capital gains here.

So up until now, we have not paid a dime to New Hampshire in income taxes. North Carolina, on the other hand? That state always seemed to take their fair share of my income out of my pocket.

I like to say we accidentally landed in this scenario. I knew during the interview process there were no state income taxes here, but it did not drive the decision to move. It has been a pleasant surprise, though, that got me wondering – how much would I have paid in state income taxes if we stayed in North Carolina?

The math doesn’t lie. Our current situation has saved us over $20,000 in tax expense over the last four years.

North Carolina State Income Taxes

An article recently hit my google news feed suggesting North Carolina tax revenue has soared as they have moved out of the pandemic. They are expecting a $6.5 billion windfall by mid-2023. That’s a big number.

I had to look back at how the Tar Heel state taxed us to remember the specifics. It is a pretty simple system.

North Carolina takes the adjusted gross income (AGI) from our federal tax return, subtracts a standard state deduction, and taxes the remaining amount at a flat 5.25%. The tax percentage and deduction amount have moved around a bit in recent years, but the methodology has remained the same. 

Brief History of North Carolina State Taxes

So as an example, if a married couple had an adjusted gross income of $100,000 in 2020, the state would have taxed them $4,121 on that income.

$100,000 (Adjusted Gross Income) – $21,500 (NC deduction) = $78,500 X 5.25% = $4,121 Tax

Equations not your thing? They have a nice spreadsheet to help figure it out.

Is $4,000 enough to make you cry?

New Hampshire State Income Taxes

In New Hampshire, this tax simply does not exist. There is no equation. There is no spreadsheet. We pay $0.00 in state W2 income taxes.

But they must make up for it somewhere, right? Here in New Hampshire, they tend to tax consumption instead of personal income. Therefore, we need to keep an eye on our consumption.  

But with a state sales tax of 0%, where are they getting their revenue?

The state collects most (67%) of its General and Education Tax Trust Fund tax revenue from business taxes (30%), property taxes (14%), meals and rooms taxes (15%), and tobacco taxes (8%). I can make an argument that none of these taxes touch us materially. That interest and dividend 5% tax I mentioned above covers only 4% of the state’s general fund. I call the meals and rooms tax a ‘tourist tax’.

When you have a reasonable standard of living, the tax drag on your consumption is minor. We do not consume tobacco. We very rarely eat out or stay in hotels in our home state. As for the business tax, I suppose some businesses could pass some of their taxes on to us. But again, it’s not material when you don’t consume much.

A twofer – stay healthy, and save money on taxes!

What About Dividends?

One thing we are having a difficult time managing is dividend income hitting our taxable brokerage accounts. Last year didn’t help.

The Max Out of Pocket crew should easily pass $4,800 in dividends in 2021. The passive income generated from my medical office building REIT portfolio will likely push us over the tax cliff this year. The NH dividend tax is a flat 5% on anything over $4,800. The threshold is $2,400 if you are single. So as an example, if our dividends hit $5,800, we will pay the state $50.

Whoop dee doo. I will probably pay turbo tax more than that to file the paperwork.

$5,800 dividends – $4,800 (tax free) = $1,000 taxed x 5% = $50.00 Tax

Property Taxes 

Oh, but you must be paying deeply with property tax, right Max?

For us, the answer is no. But this is where New Hampshire can do some real damage to your tax bill. They have the highest property tax rate in the country.

That’s over $10,000 on $200,000 in property

We do not own a house here; we rent. Sure, our landlord would theoretically pass some of their tax burden (~$2,800) to us, but I am also calling that immaterial. Plus, we were already paying a decent chunk of property tax down south.

We owned a place in North Carolina, and we paid approximately $1,800 in property taxes to the state back in 2016. We also paid about $1,500 to the state of North Carolina in 2014 and 2015. I just looked it up, and Zillow suggests property taxes on that house are way up to $2,138 now. I also need to stress; this would be in addition to our 5.25% flat income tax. So it cancels out. Even if our current landlord passed some of their $2,800 tax burden on us, it would not come even close to $2,000.

When we moved here, we downsized pretty dramatically. We are paying the same rent I was spending way back in 2006 when you divide it by two people.

As for our cars? New Hampshire does hit us on a tax there. But when you drive vehicles that are more than a decade old, that also becomes immaterial. Last year we paid about $250 for our cars, not much more than we paid in North Carolina.  

Mrs. Max OOP’s 2007 Civic – paid the state $101.20 for owning this ride in 2020

So How Much Have We Saved?

Although I took a significant pay increase with our move to New Hampshire, I think I could have landed a similar job opportunity in North Carolina. So, assuming equal income in both states, we have saved over $21,000 in state income taxes since moving out of North Carolina. That amount will continue to grow.

The difference would be even more significant if we had not maxed out our tax-deferred retirement accounts most of those years. Those contributions reduced our adjusted gross income over the last four years by about $90,000 or more. North Carolina would have gotten a 5.25% piece of that if we still lived there and did not put it aside.

Total Tax Burden by State

I found this cool table over on WalletHub that tracks the overall tax burden by state. They measure the proportion of total personal income that residents pay towards state and local taxes. It includes income, property, and sales tax in the equation and is reported back as a percentage. New York has the highest tax burden, and Alaska has the lowest.   

I pulled a few out by overall rank for both your viewing pleasure and mine.

  • #1 – New York – 12.79%
  • #34 – North Carolina – 8.07%
  • #46 – New Hampshire – 6.84%
  • #50 – Alaska – 5.10%

So $100,000 in personal income is worth $87,300 in New York and $94,900 in Alaska after taxes? Do that for 50 years, and you are looking at $380,000, not including investment returns. Yes, I know it’s not that simple.

It is worth noting Tennessee is ranked #49, and I lived there from 2006-2008. Michigan came in 24th place.

Final Thoughts

There is a lot more than money to consider here. Frankly, $20,000 over four years is not even close to enough money to dictate where we live. But these numbers do matter, and it is certainly something to know and understand. As income increases, these decisions do become more material.

In theory, a good chunk of this $20,000 was fully invested in the stock market and worth much more than $20,000 today.

Where federal taxes are relatively standardized, the state tax systems vary wildly.

I find myself liking the idea of a ‘consumption’ tax over ‘income’ tax. Incentivizing people to lower their consumption is a good move for the environment. That said, I have lived happily under both systems. I enjoyed my time down in North Carolina and think it is a great place to be. But this has been a nice little bonus to our current living situation that has added up over the last four years.

Who knows? With the increase in remote work opportunities, perhaps setting up shop in the live free or die state makes sense?  

How much do you pay your state in taxes?  

Share

Deprecated: ltrim(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-includes/wp-db.php on line 3030

Deprecated: ltrim(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-includes/wp-db.php on line 3030

Deprecated: ltrim(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-includes/wp-db.php on line 3030

6 Responses

  1. Medimentary says:

    Interesting post Max. This speaks to geographic arbitrage. Instead of income and cost of living being the main drivers, I think some folks look at state income tax as well.

    I took a look at your WalletHub link and they present an interesting table. In about a week I will be moving from a low income-tax state (MO) to an average state (CO). The difference in state income tax will be about 0.56%.

    The move is for personal reasons and quality of life and I’ve thought about what else I’m gaining. Since the largest line items in a state budget usually are k-12 education, Medicaid/CHIP, and higher education, I am quite happy to be taxed a little more for these services.

    On the flip side, I will be moving to a lower property tax rate. Since I currently rent and plan to buy at some point in the future, this may just cancel everything out.

    In general, I think the more I pay in taxes (marginal income tax), the better off I must be doing. Overall, it’s a good problem to have!

    • Max OOP says:

      Thanks, Dr. Medimentary.

      Good luck on the move! Glad you are getting back closer to your roots! Interesting, moving from a marginal income tax state to a flat tax state! Looks like CO has a flat tax (4.63%) on income a lot I had like North Carolina.

      You are right, there is a whole other side to this equation that should look at what we are getting (or what we are supporting) with our tax dollars. Paying a higher rate for better education makes a ton of sense. Now that I have a child, I can definitely see looking into that much more than I have.

      Take care,

      Max

  2. Ignoring stimulus payments, I paid the following last year:
    * $17.9k federal
    * $8.6k state
    * $8.5k property tax
    * $355 license plate renewal (two ten year old cars)
    * ??? sales tax; probably not too high given they don’t tax groceries

    So I pay about as much in state as I do federal. If I didn’t do tax optimization (529, 403b, 401a, 457, HSA, Backdoor Roth), it would be much much worse.

    I daydream daily of leaving this high tax state. I would prefer to be taxed on my low consumption. Preferably, I’ll retire to a state with low recurring property taxes.

    This is the best resource I’ve found for digging into state tax burdens: https://smartasset.com/taxes/new-hampshire-tax-calculator

    Substitute “new-hampshire” in the URL above with any other state for a really detailed overview of the tax regime.

    • Max OOP says:

      Hi Professor! Thanks for sharing that link – I like how the rundown is pretty standardized. Any top destinations for retirement?

      Have a good long weekend.

      Max

  3. David says:

    In Virginia (#37), we have a top bracket, 5.75% state income tax. You’re in that bracket unless you make less than $17k of taxable income. And if you’re in a metro area, like Northern Virginia, I suspect that local property tax rates are much higher than the numbers quoted in that link. I pay over $8k of property tax each year, and I’m not living in a palatial estate, but a two story, 2400 sq.ft colonial.

    I do miss Washington state (#24) with its 0% state income tax. Living in Seattle, I can attest that they tried to make up for it with a +9% when we lived there. But low consumption made it not so much a biggie.

    I would totally be game for a national VAT and dropping the income tax rates a bit.

    • Max OOP says:

      Hi David – $8,000 property taxes? Ouch! That’s 66% of my rent! I heard Washington State is now hitting capital gains as well, but only on gains of 250k or more. Not sure of the details, but likely something I would never need to worry about.

      Hope you are well and had a nice 4th!

      Max


Deprecated: parse_str(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-content/plugins/jetpack/class.jetpack.php on line 4222

Leave a Reply

Your email address will not be published. Required fields are marked *


Deprecated: rtrim(): Passing null to parameter #1 ($string) of type string is deprecated in /home/wilbul4/maxoutofpocket.com/wp-includes/formatting.php on line 2747
%d bloggers like this: