Section 336(e) Elections: Tax Basis Step-Up Through Deemed Asset Sale Treatment
Structuring Qualifying Stock Dispositions for Partnership and Private Equity Acquirers

Welcome! Strafford is now BARBRI! The expert courses you know from the trusted global leader in legal education.
Course Details
- smart_display Format
On-Demand
- signal_cellular_alt Difficulty Level
Intermediate
- work Practice Area
Tax Law
- event Date
Tuesday, August 12, 2025
- schedule Time
1:00 p.m. ET./10:00 a.m. PT
- timer Program Length
90 minutes
-
This 90-minute webinar is eligible in most states for 1.5 CLE credits.
-
Live Online
On Demand
This CLE/CPE webinar will provide tax counsel with a thorough and practical guide to utilizing a Section 336(e) step-up election in the acquisition of a target corporation. The panel will contrast the 336(e) election with 338(h)(10) treatment, outline the requirements for qualification, and detail the specific tactics and risks involved in making the election.
Description
The Section 336(e) election is a tax planning tool increasingly used in corporate acquisitions. It allows acquirers of a company to achieve a step-up in the tax basis of the target company's assets. Similar to the longer established Section 338(h)(10) election, the 336(e) election allows equivalent tax consequences across a broader spectrum of target companies with a more straightforward transaction structure.
A 336(e) election permits a purchaser to treat a "qualified stock disposition" as a purchase of the target's assets. Unlike Section 338(h)(10), which is only available to corporations purchasing other corporations, a 336(e) election is useful for partnerships, private equity funds, and individuals. Also, stock dispositions may be aggregated over 12 months rather than in a single disposition to a single corporate purchaser.
Tax counsel must consider critical differences in the elections when structuring any transaction to qualify for 336(e) treatment. Our panel will provide tax counsel with a thorough and practical guide to utilizing a Section 336(e) step-up election in the acquisition of a target corporation. The panel will contrast the 336(e) election with 338(h)(10) treatment, outline the requirements for qualification, and detail the specific tactics and risks involved in making the election.
Listen as our experienced panel provides a thorough and practical guide to the tax deferral opportunities, risks, and drafting requirements in structuring a transaction to qualify for a Section 336(e) election.
Outline
- The basic operation of Section 336(e) election
- When and when not to elect 336(e) treatment
- Step-up in the tax basis of target company assets in an 80 percent or greater stock acquisition
- Differences between a Section 336(e) election and a 338(h)(10) election
- Structuring concerns
- Use of Section 336(e) by pass-through entity acquirers
Benefits
The panel will review these and other high priority issues:
- What is a "qualified stock disposition," and how does it differ when applied to a Section 336(e) election vs. a 338(h)(10) election?
- Under what circumstances may a stock distribution qualify for Section 336(e) treatment?
- How should counsel for acquiring parties structure a purchase agreement to protect a purchaser's right to claim the benefits of making or foregoing a Section 336(e) election?
- What tactics should tax counsel employ to ensure that a 336(e) election is not voided due to the nonrecognition of the underlying transaction?
The following has evaluated to null or missing: ==> barbriRedisCacheAPI.get("barbripass", productId) [in template "20096#20121#2885355" at line 5, column 77] ---- Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: response = barbriRedisCacheAPI.get("b... [in template "20096#20121#2885355" at line 5, column 66] ----
1<#assign productId = ''/>
2 <#if (productID.getData())?? && productID.getData()?has_content>
3 <#assign productId = productID.getData() />
4 </#if>
5 <#assign response = barbriRedisCacheAPI.get("barbripass", productId)
6 json = jsonFactoryUtil.createJSONObject(response)
7 />
8
9 <div class="card">
10 <div class="card-body">
11 <div class="row justify-content-between align-items-center">
12 <div class="col-auto col-sm-auto">
13 <div class="btn cle_btn" id="modalPassShortName"><#if (passName.getData())??>${passName.getData()}</#if></div>
14 </div>
15 <div class="col-auto col-sm-auto pl-lg-0">
16 <span class="sale-price" id="modalPassPrice">$${json.pricebook?replace(",", "")?number?string("#,##0.00")}</span>
17 </div>
18 </div>
19 <div class="small_heading_area" id="modalPassFullName"><#if (title.getData())??>${title.getData()}</#if></div>
20 <p><#if (unlimitedText.getData())??>${unlimitedText.getData()}</#if>:</p>
21 <ul class="common-list disc_list paddNone">
22 <#if (benefits.getData())??>
23 ${benefits.getData()}
24</#if>
25 </ul>
26 </div>
27 <div class="btn-float">
28 <div class="premium-cle-pass cart-item">
29 <input type="hidden" class="product-id" value="${productId}">
30 <input type="hidden" class="product-name" value="${json.name}">
31 <input type="hidden" class="pass-value" value="${passName.getData()}">
32 <input type="hidden" class="product-price" value="${json.pricebook}">
33 <input type="hidden" class="passAccessLengthMonths" value="${json.passAccessLengthMonths}">
34 <input type="hidden" class="product-pass" value="family">
35 <input type="hidden" class="product-expireDate" value="">
36
37 <a href="javascript:void(0);" class="btn pc_theme_btn btn-primary btn_maxwidth_xxl_large add-to-cart"> <span class="material-symbols-rounded"> shopping_cart </span> Add to Cart </a>
38 </div>
39 </div>
40 </div>
41
42 <script>
43$(document).on('click', '.add-to-cart', function () {
44 let monthsToAdd = parseInt($(".passAccessLengthMonths").val());
45 let currentDate = new Date();
46 let futureDate = new Date(currentDate);
47 // Add months dynamically
48 futureDate.setMonth(futureDate.getMonth() + monthsToAdd);
49
50 // Handle overflow (e.g., Jan 31 + 1 month)
51 if (futureDate.getDate() !== currentDate.getDate()) {
52 futureDate.setDate(0); // last day of previous month
53 }
54
55 // Format as MM/DD/YYYY
56 function formatDateMMDDYYYY(date) {
57 let mm = String(date.getMonth() + 1).padStart(2, '0');
58 let dd = String(date.getDate()).padStart(2, '0');
59 let yyyy = date.getFullYear();
60 return mm + '/' + dd + '/' + yyyy;
61 }
62 $(".product-expireDate").val(formatDateMMDDYYYY(futureDate));
63
64 // Then close the modal
65 $('.single_option').modal('hide');
66 });
67</script>
The following has evaluated to null or missing: ==> barbriRedisCacheAPI.get("barbripass", productId) [in template "20096#20121#2885355" at line 5, column 77] ---- Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: response = barbriRedisCacheAPI.get("b... [in template "20096#20121#2885355" at line 5, column 66] ----
1<#assign productId = ''/>
2 <#if (productID.getData())?? && productID.getData()?has_content>
3 <#assign productId = productID.getData() />
4 </#if>
5 <#assign response = barbriRedisCacheAPI.get("barbripass", productId)
6 json = jsonFactoryUtil.createJSONObject(response)
7 />
8
9 <div class="card">
10 <div class="card-body">
11 <div class="row justify-content-between align-items-center">
12 <div class="col-auto col-sm-auto">
13 <div class="btn cle_btn" id="modalPassShortName"><#if (passName.getData())??>${passName.getData()}</#if></div>
14 </div>
15 <div class="col-auto col-sm-auto pl-lg-0">
16 <span class="sale-price" id="modalPassPrice">$${json.pricebook?replace(",", "")?number?string("#,##0.00")}</span>
17 </div>
18 </div>
19 <div class="small_heading_area" id="modalPassFullName"><#if (title.getData())??>${title.getData()}</#if></div>
20 <p><#if (unlimitedText.getData())??>${unlimitedText.getData()}</#if>:</p>
21 <ul class="common-list disc_list paddNone">
22 <#if (benefits.getData())??>
23 ${benefits.getData()}
24</#if>
25 </ul>
26 </div>
27 <div class="btn-float">
28 <div class="premium-cle-pass cart-item">
29 <input type="hidden" class="product-id" value="${productId}">
30 <input type="hidden" class="product-name" value="${json.name}">
31 <input type="hidden" class="pass-value" value="${passName.getData()}">
32 <input type="hidden" class="product-price" value="${json.pricebook}">
33 <input type="hidden" class="passAccessLengthMonths" value="${json.passAccessLengthMonths}">
34 <input type="hidden" class="product-pass" value="family">
35 <input type="hidden" class="product-expireDate" value="">
36
37 <a href="javascript:void(0);" class="btn pc_theme_btn btn-primary btn_maxwidth_xxl_large add-to-cart"> <span class="material-symbols-rounded"> shopping_cart </span> Add to Cart </a>
38 </div>
39 </div>
40 </div>
41
42 <script>
43$(document).on('click', '.add-to-cart', function () {
44 let monthsToAdd = parseInt($(".passAccessLengthMonths").val());
45 let currentDate = new Date();
46 let futureDate = new Date(currentDate);
47 // Add months dynamically
48 futureDate.setMonth(futureDate.getMonth() + monthsToAdd);
49
50 // Handle overflow (e.g., Jan 31 + 1 month)
51 if (futureDate.getDate() !== currentDate.getDate()) {
52 futureDate.setDate(0); // last day of previous month
53 }
54
55 // Format as MM/DD/YYYY
56 function formatDateMMDDYYYY(date) {
57 let mm = String(date.getMonth() + 1).padStart(2, '0');
58 let dd = String(date.getDate()).padStart(2, '0');
59 let yyyy = date.getFullYear();
60 return mm + '/' + dd + '/' + yyyy;
61 }
62 $(".product-expireDate").val(formatDateMMDDYYYY(futureDate));
63
64 // Then close the modal
65 $('.single_option').modal('hide');
66 });
67</script>
The following has evaluated to null or missing: ==> barbriRedisCacheAPI.get("barbripass", productId) [in template "20096#20121#2885355" at line 5, column 77] ---- Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: response = barbriRedisCacheAPI.get("b... [in template "20096#20121#2885355" at line 5, column 66] ----
1<#assign productId = ''/>
2 <#if (productID.getData())?? && productID.getData()?has_content>
3 <#assign productId = productID.getData() />
4 </#if>
5 <#assign response = barbriRedisCacheAPI.get("barbripass", productId)
6 json = jsonFactoryUtil.createJSONObject(response)
7 />
8
9 <div class="card">
10 <div class="card-body">
11 <div class="row justify-content-between align-items-center">
12 <div class="col-auto col-sm-auto">
13 <div class="btn cle_btn" id="modalPassShortName"><#if (passName.getData())??>${passName.getData()}</#if></div>
14 </div>
15 <div class="col-auto col-sm-auto pl-lg-0">
16 <span class="sale-price" id="modalPassPrice">$${json.pricebook?replace(",", "")?number?string("#,##0.00")}</span>
17 </div>
18 </div>
19 <div class="small_heading_area" id="modalPassFullName"><#if (title.getData())??>${title.getData()}</#if></div>
20 <p><#if (unlimitedText.getData())??>${unlimitedText.getData()}</#if>:</p>
21 <ul class="common-list disc_list paddNone">
22 <#if (benefits.getData())??>
23 ${benefits.getData()}
24</#if>
25 </ul>
26 </div>
27 <div class="btn-float">
28 <div class="premium-cle-pass cart-item">
29 <input type="hidden" class="product-id" value="${productId}">
30 <input type="hidden" class="product-name" value="${json.name}">
31 <input type="hidden" class="pass-value" value="${passName.getData()}">
32 <input type="hidden" class="product-price" value="${json.pricebook}">
33 <input type="hidden" class="passAccessLengthMonths" value="${json.passAccessLengthMonths}">
34 <input type="hidden" class="product-pass" value="family">
35 <input type="hidden" class="product-expireDate" value="">
36
37 <a href="javascript:void(0);" class="btn pc_theme_btn btn-primary btn_maxwidth_xxl_large add-to-cart"> <span class="material-symbols-rounded"> shopping_cart </span> Add to Cart </a>
38 </div>
39 </div>
40 </div>
41
42 <script>
43$(document).on('click', '.add-to-cart', function () {
44 let monthsToAdd = parseInt($(".passAccessLengthMonths").val());
45 let currentDate = new Date();
46 let futureDate = new Date(currentDate);
47 // Add months dynamically
48 futureDate.setMonth(futureDate.getMonth() + monthsToAdd);
49
50 // Handle overflow (e.g., Jan 31 + 1 month)
51 if (futureDate.getDate() !== currentDate.getDate()) {
52 futureDate.setDate(0); // last day of previous month
53 }
54
55 // Format as MM/DD/YYYY
56 function formatDateMMDDYYYY(date) {
57 let mm = String(date.getMonth() + 1).padStart(2, '0');
58 let dd = String(date.getDate()).padStart(2, '0');
59 let yyyy = date.getFullYear();
60 return mm + '/' + dd + '/' + yyyy;
61 }
62 $(".product-expireDate").val(formatDateMMDDYYYY(futureDate));
63
64 // Then close the modal
65 $('.single_option').modal('hide');
66 });
67</script>
The following has evaluated to null or missing: ==> barbriRedisCacheAPI.get("barbripass", productId) [in template "20096#20121#2885355" at line 5, column 77] ---- Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: response = barbriRedisCacheAPI.get("b... [in template "20096#20121#2885355" at line 5, column 66] ----
1<#assign productId = ''/>
2 <#if (productID.getData())?? && productID.getData()?has_content>
3 <#assign productId = productID.getData() />
4 </#if>
5 <#assign response = barbriRedisCacheAPI.get("barbripass", productId)
6 json = jsonFactoryUtil.createJSONObject(response)
7 />
8
9 <div class="card">
10 <div class="card-body">
11 <div class="row justify-content-between align-items-center">
12 <div class="col-auto col-sm-auto">
13 <div class="btn cle_btn" id="modalPassShortName"><#if (passName.getData())??>${passName.getData()}</#if></div>
14 </div>
15 <div class="col-auto col-sm-auto pl-lg-0">
16 <span class="sale-price" id="modalPassPrice">$${json.pricebook?replace(",", "")?number?string("#,##0.00")}</span>
17 </div>
18 </div>
19 <div class="small_heading_area" id="modalPassFullName"><#if (title.getData())??>${title.getData()}</#if></div>
20 <p><#if (unlimitedText.getData())??>${unlimitedText.getData()}</#if>:</p>
21 <ul class="common-list disc_list paddNone">
22 <#if (benefits.getData())??>
23 ${benefits.getData()}
24</#if>
25 </ul>
26 </div>
27 <div class="btn-float">
28 <div class="premium-cle-pass cart-item">
29 <input type="hidden" class="product-id" value="${productId}">
30 <input type="hidden" class="product-name" value="${json.name}">
31 <input type="hidden" class="pass-value" value="${passName.getData()}">
32 <input type="hidden" class="product-price" value="${json.pricebook}">
33 <input type="hidden" class="passAccessLengthMonths" value="${json.passAccessLengthMonths}">
34 <input type="hidden" class="product-pass" value="family">
35 <input type="hidden" class="product-expireDate" value="">
36
37 <a href="javascript:void(0);" class="btn pc_theme_btn btn-primary btn_maxwidth_xxl_large add-to-cart"> <span class="material-symbols-rounded"> shopping_cart </span> Add to Cart </a>
38 </div>
39 </div>
40 </div>
41
42 <script>
43$(document).on('click', '.add-to-cart', function () {
44 let monthsToAdd = parseInt($(".passAccessLengthMonths").val());
45 let currentDate = new Date();
46 let futureDate = new Date(currentDate);
47 // Add months dynamically
48 futureDate.setMonth(futureDate.getMonth() + monthsToAdd);
49
50 // Handle overflow (e.g., Jan 31 + 1 month)
51 if (futureDate.getDate() !== currentDate.getDate()) {
52 futureDate.setDate(0); // last day of previous month
53 }
54
55 // Format as MM/DD/YYYY
56 function formatDateMMDDYYYY(date) {
57 let mm = String(date.getMonth() + 1).padStart(2, '0');
58 let dd = String(date.getDate()).padStart(2, '0');
59 let yyyy = date.getFullYear();
60 return mm + '/' + dd + '/' + yyyy;
61 }
62 $(".product-expireDate").val(formatDateMMDDYYYY(futureDate));
63
64 // Then close the modal
65 $('.single_option').modal('hide');
66 });
67</script>
Related Courses

Section 336(e) Elections: Tax Basis Step-Up Through Deemed Asset Sale Treatment
Available On-Demand

Tax Treatment of Earnouts in M&A Transactions: Navigating Key Tax and Accounting Implications for Buyers and Sellers
Tuesday, July 15, 2025
1:00 p.m. ET./10:00 a.m. PT
Recommended Resources
Building Your Book: Strategies to Secure Long-Term Success
- Business & Professional Skills
- Career Advancement
- Talent Development