Skip to main content
Tax Planning

Year End Tax Planning Strategies For Your Stock Market Portfolio

When you take advantage of the tax law’s offset game, your stock market portfolio can represent opportunities to reduce your 2022 income taxes.

The tax code contains the basic rules to follow, and once you know the rules, you can apply the correct strategies.

Here’s the basic strategy:

  • Avoid the high taxes (up to 40.8 percent) on short-term capital gains and ordinary income.
  • Lower the taxes to zero—or if you can’t do that, lower them to 23.8 percent or less by making the profits subject to long-term capital gains.

Think of this: you are paying taxes at a 71.4 percent higher rate when you pay at 40.8 percent rather than the tax-favored 23.8 percent.

To avoid higher rates, here are seven possible tax planning strategies.

Strategy 1

Examine your portfolio for stocks you want to unload and make sales where you offset short-term gains subject to a high tax rate, such as 40.8 percent, with long-term losses (up to 23.8 percent).

In other words, make the high taxes disappear by offsetting them with low-taxed losses, and pocket the difference.

Strategy 2

Use long-term losses to create the $3,000 deduction allowed against ordinary income.

Again, you are trying to use the 23.8 percent loss to kill a 40.8 percent rate of tax (or a 0 percent loss to kill a 12 percent tax, if you are in the 12 percent or lower tax bracket).

Strategy 3

As an individual investor, avoid the wash-sale loss rule.

Under the wash-sale loss rule, if you sell a stock or other security and then purchase substantially identical stock or securities within 30 days before or after the date of sale, you don’t recognize your loss on that sale. Instead, the code makes you add the loss amount to the basis of your new stock.

If you want to use the loss in 2022, you’ll have to sell the stock and sit on your hands for more than 30 days before repurchasing that stock.

Strategy 4

If you have lots of capital losses or capital loss carryovers and the $3,000 allowance is looking extra tiny, sell additional stocks, rental properties, and other assets to create offsetting capital gains.

If you sell stocks to purge the capital losses, you can immediately repurchase the stock after you sell it—there’s no wash-sale “gain” rule.

Strategy 5

Do you give money to your parents to assist them with their retirement or living expenses? How about children (specifically, children not subject to the kiddie tax)?

If so, consider giving appreciated stock to your parents and your non-kiddie-tax children. Why? If the parents or children are in lower tax brackets than you are, you get a bigger bang for your buck by

  •  gifting them stock,
  • having them sell the stock, and then
  • having them pay taxes on the stock sale at their lower tax rates.

Strategy 6

If you are going to donate to a charity, consider appreciated stock rather than cash because a donation of appreciated stock gives you more tax benefit.

It works like this:

  • Benefit 1. You deduct the fair market value of the stock as a charitable donation.
  • Benefit 2. You don’t pay any of the taxes you would have had to pay if you sold the stock.

Example. You bought a publicly traded stock for $1,000, and it’s now worth $11,000. If you give it to a 501(c)(3) charity, the following happens:

  • You get a tax deduction for $11,000.
  • You pay no taxes on the $10,000 profit.

Two rules to know:

  1.  Your deductions for donating appreciated stocks to 501(c)(3) organizations may not exceed 30 percent of your adjusted gross income.
  2. . If your publicly traded stock donation exceeds the 30 percent, no problem. Tax law allows you to carry forward the excess until used, for up to five years.

Strategy 7

If you could sell a publicly traded stock at a loss, do not give that loss-deduction stock to a 501(c)(3) charity. Why? If you sell the stock, you have a tax loss that you can deduct. If you give the stock to a charity, you get no deduction for the loss—in other words, you can just kiss that tax-reducing loss goodbye.

These stock market portfolio strategies have a long history in tax planning. If you need my help with any of them, please call East Coast Tax Consulting Group  at 561-826-9303.

Contact Us 

You deserve the best in IRS tax representation, tax preparation, and tax planning services. At East Coast Tax Consulting Group, you’ll work with a licensed CPA who will handle your case from beginning to end. We invite you to contact our team to schedule a free, confidential consultation.

[gravityforms id="5" title="false" description="false" ajax="true" tabindex="199"]
<script type="text/javascript">var gform;gform||(document.addEventListener("gform_main_scripts_loaded",function(){gform.scriptsLoaded=!0}),window.addEventListener("DOMContentLoaded",function(){gform.domLoaded=!0}),gform={domLoaded:!1,scriptsLoaded:!1,initializeOnLoaded:function(o){gform.domLoaded&&gform.scriptsLoaded?o():!gform.domLoaded&&gform.scriptsLoaded?window.addEventListener("DOMContentLoaded",o):document.addEventListener("gform_main_scripts_loaded",o)},hooks:{action:{},filter:{}},addAction:function(o,n,r,t){gform.addHook("action",o,n,r,t)},addFilter:function(o,n,r,t){gform.addHook("filter",o,n,r,t)},doAction:function(o){gform.doHook("action",o,arguments)},applyFilters:function(o){return gform.doHook("filter",o,arguments)},removeAction:function(o,n){gform.removeHook("action",o,n)},removeFilter:function(o,n,r){gform.removeHook("filter",o,n,r)},addHook:function(o,n,r,t,i){null==gform.hooks[o][n]&&(gform.hooks[o][n]=[]);var e=gform.hooks[o][n];null==i&&(i=n+"_"+e.length),gform.hooks[o][n].push({tag:i,callable:r,priority:t=null==t?10:t})},doHook:function(n,o,r){var t;if(r=Array.prototype.slice.call(r,1),null!=gform.hooks[n][o]&&((o=gform.hooks[n][o]).sort(function(o,n){return o.priority-n.priority}),o.forEach(function(o){"function"!=typeof(t=o.callable)&&(t=window[t]),"action"==n?t.apply(null,r):r[0]=t.apply(null,r)})),"filter"==n)return r[0]},removeHook:function(o,n,t,i){var r;null!=gform.hooks[o][n]&&(r=(r=gform.hooks[o][n]).filter(function(o,n,r){return!!(null!=i&&i!=o.tag||null!=t&&t!=o.priority)}),gform.hooks[o][n]=r)}});</script> <div class='gf_browser_unknown gform_wrapper gform_wrapper_original_id_5 gravity-theme whitepaper-cta-popup_wrapper' id='gform_wrapper_936751704' ><div id='gf_936751704' class='gform_anchor' tabindex='-1'></div> <div class='gform_heading'> <p class='gform_required_legend'>&quot;<span class="gfield_required gfield_required_asterisk">*</span>&quot; indicates required fields</p> </div><form method='post' enctype='multipart/form-data' target='gform_ajax_frame_936751704' id='gform_936751704' class='whitepaper-cta-popup' action='/year-end-tax-planning-strategies-for-your-stock-market-portfolio/#gf_936751704' novalidate> <div class='gform_body gform-body'><div id='gform_fields_936751704' class='gform_fields top_label form_sublabel_below description_below'><div id="field_5_2" class="gfield gfield_contains_required field_sublabel_below field_description_below hidden_label gfield_visibility_visible" data-js-reload="field_5_2"><label class='gfield_label' for='input_936751704_2' >First Name<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_container ginput_container_text'><input name='input_2' id='input_936751704_2' type='text' value='' class='large' tabindex='199' placeholder='First Name' aria-required="true" aria-invalid="false" /> </div></div><div id="field_5_3" class="gfield gfield_contains_required field_sublabel_below field_description_below hidden_label gfield_visibility_visible" data-js-reload="field_5_3"><label class='gfield_label' for='input_936751704_3' >Last Name<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_container ginput_container_text'><input name='input_3' id='input_936751704_3' type='text' value='' class='large' tabindex='200' placeholder='Last Name' aria-required="true" aria-invalid="false" /> </div></div><div id="field_5_1" class="gfield gfield_contains_required field_sublabel_below field_description_below hidden_label gfield_visibility_visible" data-js-reload="field_5_1"><label class='gfield_label' for='input_936751704_1' >Email Address<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_container ginput_container_email'> <input name='input_1' id='input_936751704_1' type='email' value='' class='large' tabindex='201' placeholder='Email Address' aria-required="true" aria-invalid="false" /> </div></div><div id="field_5_4" class="gfield gform_validation_container field_sublabel_below field_description_below gfield_visibility_visible" data-js-reload="field_5_4"><label class='gfield_label' for='input_936751704_4' >Phone</label><div class='ginput_container'><input name='input_4' id='input_936751704_4' type='text' value='' autocomplete='new-password'/></div><div class='gfield_description' id='gfield_description_5_4'>This field is for validation purposes and should be left unchanged.</div></div></div></div> <div class='gform_footer top_label'> <button type='submit' onclick='if(window["gf_submitting_936751704"]){return false;} if( !jQuery("#gform_936751704")[0].checkValidity || jQuery("#gform_936751704")[0].checkValidity()){window["gf_submitting_936751704"]=true;} ' onkeypress='if( event.keyCode == 13 ){ if(window["gf_submitting_936751704"]){return false;} if( !jQuery("#gform_936751704")[0].checkValidity || jQuery("#gform_936751704")[0].checkValidity()){window["gf_submitting_936751704"]=true;} jQuery("#gform_936751704").trigger("submit",[true]); }' id='gform_submit_button_936751704' class='gform_button button om-trigger-conversion'>Submit</button> <input type='hidden' name='gform_ajax' value='form_id=5&amp;title=&amp;description=&amp;tabindex=199' /> <input type='hidden' class='gform_hidden' name='is_submit_5' value='1' /> <input type='hidden' class='gform_hidden' name='gform_submit' value='5' /> <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' /> <input type='hidden' class='gform_hidden' name='state_5' value='WyJbXSIsIjE3OGJjZmUyNjg3ZTQyOGFjZTRkZjMzZjBiOTAzYTRlIl0=' /> <input type='hidden' class='gform_hidden' name='gform_target_page_number_5' id='gform_target_page_number_5' value='0' /> <input type='hidden' class='gform_hidden' name='gform_source_page_number_5' id='gform_source_page_number_5' value='1' /> <input type='hidden' name='gform_random_id' value='936751704' /><input type='hidden' name='gform_field_values' value='' /> </div> </form> </div> <iframe style='display:none;width:0px;height:0px;' src='about:blank' name='gform_ajax_frame_936751704' id='gform_ajax_frame_936751704' title='This iframe contains the logic required to handle Ajax powered Gravity Forms.'></iframe> <script type="text/javascript"> gform.initializeOnLoaded( function() {gformInitSpinner( 936751704, 'https://www.eastcoasttaxconsulting.com/wp-content/plugins/gravityforms/images/spinner.svg' );jQuery('#gform_ajax_frame_936751704').on('load',function(){var contents = jQuery(this).contents().find('*').html();var is_postback = contents.indexOf('GF_AJAX_POSTBACK') >= 0;if(!is_postback){return;}var form_content = jQuery(this).contents().find('#gform_wrapper_936751704');var is_confirmation = jQuery(this).contents().find('#gform_confirmation_wrapper_936751704').length > 0;var is_redirect = contents.indexOf('gformRedirect(){') >= 0;var is_form = form_content.length > 0 && ! is_redirect && ! is_confirmation;var mt = parseInt(jQuery('html').css('margin-top'), 10) + parseInt(jQuery('body').css('margin-top'), 10) + 100;if(is_form){jQuery('#gform_wrapper_936751704').html(form_content.html());if(form_content.hasClass('gform_validation_error')){jQuery('#gform_wrapper_936751704').addClass('gform_validation_error');} else {jQuery('#gform_wrapper_936751704').removeClass('gform_validation_error');}setTimeout( function() { /* delay the scroll by 50 milliseconds to fix a bug in chrome */ jQuery(document).scrollTop(jQuery('#gform_wrapper_936751704').offset().top - mt); }, 50 );if(window['gformInitDatepicker']) {gformInitDatepicker();}if(window['gformInitPriceFields']) {gformInitPriceFields();}var current_page = jQuery('#gform_source_page_number_5').val();gformInitSpinner( 936751704, 'https://www.eastcoasttaxconsulting.com/wp-content/plugins/gravityforms/images/spinner.svg' );jQuery(document).trigger('gform_page_loaded', [936751704, current_page]);window['gf_submitting_936751704'] = false;}else if(!is_redirect){var confirmation_content = jQuery(this).contents().find('.GF_AJAX_POSTBACK').html();if(!confirmation_content){confirmation_content = contents;}setTimeout(function(){jQuery('#gform_wrapper_936751704').replaceWith(confirmation_content);jQuery(document).scrollTop(jQuery('#gf_936751704').offset().top - mt);jQuery(document).trigger('gform_confirmation_loaded', [936751704]);window['gf_submitting_936751704'] = false;wp.a11y.speak(jQuery('#gform_confirmation_message_936751704').text());}, 50);}else{jQuery('#gform_936751704').append(contents);if(window['gformRedirect']) {gformRedirect();}}jQuery(document).trigger('gform_post_render', [936751704, current_page]);} );} ); </script>
[gravityforms id="5" title="false" description="false" ajax="true" tabindex="199"]
<div class='gf_browser_unknown gform_wrapper gform_wrapper_original_id_5 gravity-theme whitepaper-cta-popup_wrapper' id='gform_wrapper_66210598' ><div id='gf_66210598' class='gform_anchor' tabindex='-1'></div> <div class='gform_heading'> <p class='gform_required_legend'>&quot;<span class="gfield_required gfield_required_asterisk">*</span>&quot; indicates required fields</p> </div><form method='post' enctype='multipart/form-data' target='gform_ajax_frame_66210598' id='gform_66210598' class='whitepaper-cta-popup' action='/year-end-tax-planning-strategies-for-your-stock-market-portfolio/#gf_66210598' novalidate> <div class='gform_body gform-body'><div id='gform_fields_66210598' class='gform_fields top_label form_sublabel_below description_below'><div id="field_5_2" class="gfield gfield_contains_required field_sublabel_below field_description_below hidden_label gfield_visibility_visible" data-js-reload="field_5_2"><label class='gfield_label' for='input_66210598_2' >First Name<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_container ginput_container_text'><input name='input_2' id='input_66210598_2' type='text' value='' class='large' tabindex='199' placeholder='First Name' aria-required="true" aria-invalid="false" /> </div></div><div id="field_5_3" class="gfield gfield_contains_required field_sublabel_below field_description_below hidden_label gfield_visibility_visible" data-js-reload="field_5_3"><label class='gfield_label' for='input_66210598_3' >Last Name<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_container ginput_container_text'><input name='input_3' id='input_66210598_3' type='text' value='' class='large' tabindex='200' placeholder='Last Name' aria-required="true" aria-invalid="false" /> </div></div><div id="field_5_1" class="gfield gfield_contains_required field_sublabel_below field_description_below hidden_label gfield_visibility_visible" data-js-reload="field_5_1"><label class='gfield_label' for='input_66210598_1' >Email Address<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_container ginput_container_email'> <input name='input_1' id='input_66210598_1' type='email' value='' class='large' tabindex='201' placeholder='Email Address' aria-required="true" aria-invalid="false" /> </div></div><div id="field_5_4" class="gfield gform_validation_container field_sublabel_below field_description_below gfield_visibility_visible" data-js-reload="field_5_4"><label class='gfield_label' for='input_66210598_4' >Name</label><div class='ginput_container'><input name='input_4' id='input_66210598_4' type='text' value='' autocomplete='new-password'/></div><div class='gfield_description' id='gfield_description_5_4'>This field is for validation purposes and should be left unchanged.</div></div></div></div> <div class='gform_footer top_label'> <button type='submit' onclick='if(window["gf_submitting_66210598"]){return false;} if( !jQuery("#gform_66210598")[0].checkValidity || jQuery("#gform_66210598")[0].checkValidity()){window["gf_submitting_66210598"]=true;} ' onkeypress='if( event.keyCode == 13 ){ if(window["gf_submitting_66210598"]){return false;} if( !jQuery("#gform_66210598")[0].checkValidity || jQuery("#gform_66210598")[0].checkValidity()){window["gf_submitting_66210598"]=true;} jQuery("#gform_66210598").trigger("submit",[true]); }' id='gform_submit_button_66210598' class='gform_button button om-trigger-conversion'>Submit</button> <input type='hidden' name='gform_ajax' value='form_id=5&amp;title=&amp;description=&amp;tabindex=199' /> <input type='hidden' class='gform_hidden' name='is_submit_5' value='1' /> <input type='hidden' class='gform_hidden' name='gform_submit' value='5' /> <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' /> <input type='hidden' class='gform_hidden' name='state_5' value='WyJbXSIsIjE3OGJjZmUyNjg3ZTQyOGFjZTRkZjMzZjBiOTAzYTRlIl0=' /> <input type='hidden' class='gform_hidden' name='gform_target_page_number_5' id='gform_target_page_number_5' value='0' /> <input type='hidden' class='gform_hidden' name='gform_source_page_number_5' id='gform_source_page_number_5' value='1' /> <input type='hidden' name='gform_random_id' value='66210598' /><input type='hidden' name='gform_field_values' value='' /> </div> </form> </div> <iframe style='display:none;width:0px;height:0px;' src='about:blank' name='gform_ajax_frame_66210598' id='gform_ajax_frame_66210598' title='This iframe contains the logic required to handle Ajax powered Gravity Forms.'></iframe> <script type="text/javascript"> gform.initializeOnLoaded( function() {gformInitSpinner( 66210598, 'https://www.eastcoasttaxconsulting.com/wp-content/plugins/gravityforms/images/spinner.svg' );jQuery('#gform_ajax_frame_66210598').on('load',function(){var contents = jQuery(this).contents().find('*').html();var is_postback = contents.indexOf('GF_AJAX_POSTBACK') >= 0;if(!is_postback){return;}var form_content = jQuery(this).contents().find('#gform_wrapper_66210598');var is_confirmation = jQuery(this).contents().find('#gform_confirmation_wrapper_66210598').length > 0;var is_redirect = contents.indexOf('gformRedirect(){') >= 0;var is_form = form_content.length > 0 && ! is_redirect && ! is_confirmation;var mt = parseInt(jQuery('html').css('margin-top'), 10) + parseInt(jQuery('body').css('margin-top'), 10) + 100;if(is_form){jQuery('#gform_wrapper_66210598').html(form_content.html());if(form_content.hasClass('gform_validation_error')){jQuery('#gform_wrapper_66210598').addClass('gform_validation_error');} else {jQuery('#gform_wrapper_66210598').removeClass('gform_validation_error');}setTimeout( function() { /* delay the scroll by 50 milliseconds to fix a bug in chrome */ jQuery(document).scrollTop(jQuery('#gform_wrapper_66210598').offset().top - mt); }, 50 );if(window['gformInitDatepicker']) {gformInitDatepicker();}if(window['gformInitPriceFields']) {gformInitPriceFields();}var current_page = jQuery('#gform_source_page_number_5').val();gformInitSpinner( 66210598, 'https://www.eastcoasttaxconsulting.com/wp-content/plugins/gravityforms/images/spinner.svg' );jQuery(document).trigger('gform_page_loaded', [66210598, current_page]);window['gf_submitting_66210598'] = false;}else if(!is_redirect){var confirmation_content = jQuery(this).contents().find('.GF_AJAX_POSTBACK').html();if(!confirmation_content){confirmation_content = contents;}setTimeout(function(){jQuery('#gform_wrapper_66210598').replaceWith(confirmation_content);jQuery(document).scrollTop(jQuery('#gf_66210598').offset().top - mt);jQuery(document).trigger('gform_confirmation_loaded', [66210598]);window['gf_submitting_66210598'] = false;wp.a11y.speak(jQuery('#gform_confirmation_message_66210598').text());}, 50);}else{jQuery('#gform_66210598').append(contents);if(window['gformRedirect']) {gformRedirect();}}jQuery(document).trigger('gform_post_render', [66210598, current_page]);} );} ); </script>