Error message
Deprecated function: Creation of dynamic property Drupal\tablefield\TableValue::$value is deprecated in Drupal\Core\TypedData\TypedData->setValue() (line 102 of core/lib/Drupal/Core/TypedData/TypedData.php).
Drupal\Core\TypedData\TypedData->setValue(NULL, ) (Line: 87) Drupal\Core\TypedData\Plugin\DataType\Map->setValue(Array, ) (Line: 125) Drupal\Core\Field\FieldItemBase->setValue(Array, ) (Line: 206) Drupal\tablefield\Plugin\Field\FieldType\TablefieldItem->setValue(Array, ) (Line: 208) Drupal\Core\TypedData\TypedDataManager->getPropertyInstance(Object, 0, Array) (Line: 91) Drupal\Core\Field\FieldTypePluginManager->createFieldItem(Object, 0, Array) (Line: 41) Drupal\Core\Field\FieldItemList->createItem(0, Array) (Line: 69) Drupal\Core\TypedData\Plugin\DataType\ItemList->setValue(Array, ) (Line: 107) Drupal\Core\Field\FieldItemList->setValue(Array, ) (Line: 208) Drupal\Core\TypedData\TypedDataManager->getPropertyInstance(Object, 'field_calc_table', Array) (Line: 83) Drupal\Core\Field\FieldTypePluginManager->createFieldItemList(Object, 'field_calc_table', Array) (Line: 633) Drupal\Core\Entity\ContentEntityBase->getTranslatedField('field_calc_table', 'x-default') (Line: 597) Drupal\Core\Entity\ContentEntityBase->get('field_calc_table') (Line: 325) Drupal\Core\Entity\EntityViewBuilder->buildComponents(Array, Array, Array, 'default') (Line: 281) Drupal\Core\Entity\EntityViewBuilder->buildMultiple(Array) (Line: 18) Drupal\paragraphs\ParagraphViewBuilder->buildMultiple(Array) (Line: 238) Drupal\Core\Entity\EntityViewBuilder->build(Array) call_user_func_array(Array, Array) (Line: 111) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 859) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 421) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 240) Drupal\Core\Render\Renderer->render(Array) (Line: 475) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 68) __TwigTemplate_291debf4453c7ba2e34da4fa4cd83699->doDisplay(Array, Array) (Line: 394) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 367) Twig\Template->display(Array) (Line: 379) Twig\Template->render(Array) (Line: 38) Twig\TemplateWrapper->render(Array) (Line: 39) twig_render_template('themes/techprosolutions/templates/field/field.html.twig', Array) (Line: 348) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 480) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 240) Drupal\Core\Render\Renderer->render(Array) (Line: 475) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 111) __TwigTemplate_ff95cc8dbd011c21d5f5e7f83f8118b4->doDisplay(Array, Array) (Line: 394) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 367) Twig\Template->display(Array) (Line: 379) Twig\Template->render(Array) (Line: 38) Twig\TemplateWrapper->render(Array) (Line: 39) twig_render_template('modules/custom/easytax_calculators/templates/ecp-calculator-page.html.twig', Array) (Line: 348) Drupal\Core\Theme\ThemeManager->render('ecp_calculator_page', Array) (Line: 480) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 240) Drupal\Core\Render\Renderer->render(Array, ) (Line: 238) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 627) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 231) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 128) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 111) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 186) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 76) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 28) Drupal\Core\StackMiddleware\ContentLength->handle(Object, 1, 1) (Line: 32) Drupal\big_pipe\StackMiddleware\ContentLength->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 36) Drupal\Core\StackMiddleware\AjaxPageState->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\StackedHttpKernel->handle(Object, 1, 1) (Line: 704) Drupal\Core\DrupalKernel->handle(Object) (Line: 21)Deprecated function: Creation of dynamic property Drupal\tablefield\Plugin\Field\FieldFormatter\TablefieldFormatter::$ModuleHandler is deprecated in Drupal\tablefield\Plugin\Field\FieldFormatter\TablefieldFormatter->__construct() (line 57 of modules/contrib/tablefield/src/Plugin/Field/FieldFormatter/TablefieldFormatter.php).
Drupal\tablefield\Plugin\Field\FieldFormatter\TablefieldFormatter->__construct('tablefield', Array, Object, Array, 'hidden', 'default', Array, Object, Object) (Line: 64) Drupal\tablefield\Plugin\Field\FieldFormatter\TablefieldFormatter::create(Object, Array, 'tablefield', Array) (Line: 64) Drupal\Core\Field\FormatterPluginManager->createInstance('tablefield', Array) (Line: 126) Drupal\Core\Field\FormatterPluginManager->getInstance(Array) (Line: 205) Drupal\Core\Entity\Entity\EntityViewDisplay->getRenderer('field_calc_table') (Line: 241) Drupal\Core\Entity\Entity\EntityViewDisplay->buildMultiple(Array) (Line: 339) Drupal\Core\Entity\EntityViewBuilder->buildComponents(Array, Array, Array, 'default') (Line: 281) Drupal\Core\Entity\EntityViewBuilder->buildMultiple(Array) (Line: 18) Drupal\paragraphs\ParagraphViewBuilder->buildMultiple(Array) (Line: 238) Drupal\Core\Entity\EntityViewBuilder->build(Array) call_user_func_array(Array, Array) (Line: 111) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 859) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 421) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 240) Drupal\Core\Render\Renderer->render(Array) (Line: 475) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 68) __TwigTemplate_291debf4453c7ba2e34da4fa4cd83699->doDisplay(Array, Array) (Line: 394) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 367) Twig\Template->display(Array) (Line: 379) Twig\Template->render(Array) (Line: 38) Twig\TemplateWrapper->render(Array) (Line: 39) twig_render_template('themes/techprosolutions/templates/field/field.html.twig', Array) (Line: 348) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 480) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 240) Drupal\Core\Render\Renderer->render(Array) (Line: 475) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 111) __TwigTemplate_ff95cc8dbd011c21d5f5e7f83f8118b4->doDisplay(Array, Array) (Line: 394) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 367) Twig\Template->display(Array) (Line: 379) Twig\Template->render(Array) (Line: 38) Twig\TemplateWrapper->render(Array) (Line: 39) twig_render_template('modules/custom/easytax_calculators/templates/ecp-calculator-page.html.twig', Array) (Line: 348) Drupal\Core\Theme\ThemeManager->render('ecp_calculator_page', Array) (Line: 480) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 240) Drupal\Core\Render\Renderer->render(Array, ) (Line: 238) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 627) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 231) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 128) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 111) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 186) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 76) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 28) Drupal\Core\StackMiddleware\ContentLength->handle(Object, 1, 1) (Line: 32) Drupal\big_pipe\StackMiddleware\ContentLength->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 36) Drupal\Core\StackMiddleware\AjaxPageState->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\StackedHttpKernel->handle(Object, 1, 1) (Line: 704) Drupal\Core\DrupalKernel->handle(Object) (Line: 21)Warning: Undefined array key "caption" in Drupal\tablefield\Plugin\Field\FieldFormatter\TablefieldFormatter->viewElements() (line 150 of modules/contrib/tablefield/src/Plugin/Field/FieldFormatter/TablefieldFormatter.php).
Drupal\tablefield\Plugin\Field\FieldFormatter\TablefieldFormatter->viewElements(Object, 'en') (Line: 91) Drupal\Core\Field\FormatterBase->view(Object, 'en') (Line: 268) Drupal\Core\Entity\Entity\EntityViewDisplay->buildMultiple(Array) (Line: 339) Drupal\Core\Entity\EntityViewBuilder->buildComponents(Array, Array, Array, 'default') (Line: 281) Drupal\Core\Entity\EntityViewBuilder->buildMultiple(Array) (Line: 18) Drupal\paragraphs\ParagraphViewBuilder->buildMultiple(Array) (Line: 238) Drupal\Core\Entity\EntityViewBuilder->build(Array) call_user_func_array(Array, Array) (Line: 111) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 859) Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 421) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 240) Drupal\Core\Render\Renderer->render(Array) (Line: 475) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 68) __TwigTemplate_291debf4453c7ba2e34da4fa4cd83699->doDisplay(Array, Array) (Line: 394) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 367) Twig\Template->display(Array) (Line: 379) Twig\Template->render(Array) (Line: 38) Twig\TemplateWrapper->render(Array) (Line: 39) twig_render_template('themes/techprosolutions/templates/field/field.html.twig', Array) (Line: 348) Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 480) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 240) Drupal\Core\Render\Renderer->render(Array) (Line: 475) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 111) __TwigTemplate_ff95cc8dbd011c21d5f5e7f83f8118b4->doDisplay(Array, Array) (Line: 394) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 367) Twig\Template->display(Array) (Line: 379) Twig\Template->render(Array) (Line: 38) Twig\TemplateWrapper->render(Array) (Line: 39) twig_render_template('modules/custom/easytax_calculators/templates/ecp-calculator-page.html.twig', Array) (Line: 348) Drupal\Core\Theme\ThemeManager->render('ecp_calculator_page', Array) (Line: 480) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 240) Drupal\Core\Render\Renderer->render(Array, ) (Line: 238) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 627) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 231) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 128) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 111) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 186) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 76) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 28) Drupal\Core\StackMiddleware\ContentLength->handle(Object, 1, 1) (Line: 32) Drupal\big_pipe\StackMiddleware\ContentLength->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 36) Drupal\Core\StackMiddleware\AjaxPageState->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\StackedHttpKernel->handle(Object, 1, 1) (Line: 704) Drupal\Core\DrupalKernel->handle(Object) (Line: 21)
ELSS Calculator
Project an ELSS tax-saver SIP — market-linked growth over the 3-year lock-in and beyond, plus the 80C tax it saves in year one.
Year-wise growth
| Year | Invested | Value at year end |
|---|---|---|
| 1 | ₹1,50,000 | ₹1,60,117 |
| 2 | ₹3,00,000 | ₹3,40,540 |
| 3 | ₹4,50,000 | ₹5,43,846 |
| 4 | ₹6,00,000 | ₹7,72,935 |
| 5 | ₹7,50,000 | ₹10,31,080 |
What is an ELSS fund?
An equity-linked savings scheme (ELSS) is a mutual fund with a tax deduction attached: investments qualify under section 80C up to ₹1,50,000 a year, and in exchange every rupee is locked in for three years — the shortest lock-in of any 80C option. Because the money is invested in equities, returns are market-linked: historically attractive over long periods, but never guaranteed.
This calculator projects an ELSS SIP on both fronts at once — what the monthly investment could grow into at your expected return, and the old-regime tax the first year's investment saves at your income. The growth math is identical to a regular SIP; the lock-in simply means the projection never runs shorter than three years.
The growth formula
FV = P × [((1 + i)ⁿ − 1) ÷ i] × (1 + i)
- FV — the projected value of your ELSS investment
- P — the monthly SIP amount
- i — the monthly rate: expected annual return ÷ 12
- n — the number of monthly instalments
The final × (1 + i) reflects instalments invested at the start of each month. The first-year tax saving is computed separately: your first 12 instalments (capped at ₹1,50,000) are run through the full old-regime slab calculation at your income — the same method as our tax saving calculator.
How to use this calculator
- Enter the monthly SIP amount. ₹12,500 a month exactly fills the ₹1,50,000 annual 80C ceiling.
- Set the expected annual return. Equity funds have historically delivered 10–14% over long periods; 12% is a common planning assumption, not a promise.
- Choose the investment period — the slider starts at 3 years because of the statutory lock-in.
- Enter your annual income so the calculator can work out the first-year 80C tax saving at your actual slab.
The results split the corpus into amount invested and expected returns, alongside the first-year tax saved.
A worked example
₹12,500 a month at 12% p.a. for 5 years, at a ₹15,00,000 income:
- Invested: 60 instalments × ₹12,500 = ₹7,50,000
- Expected returns: ₹2,81,080
- Projected value: ₹10,31,080
- First-year tax saved (80C, old regime): ₹46,800
At the three-year lock-in mark the corpus stands at about ₹5,43,846 on ₹4,50,000 invested — and every year of SIP after the first saves tax again, as long as you stay in the old regime.
₹12,500 a month at 12% p.a. — year by year
| Horizon | Invested | Projected value |
|---|---|---|
| 3 years (lock-in ends) | ₹4,50,000 | ₹5,43,846 |
| 5 years | ₹7,50,000 | ₹10,31,080 |
| 7 years | ₹10,50,000 | ₹16,49,737 |
| 10 years | ₹15,00,000 | ₹29,04,238 |
Monthly annuity-due convention at an assumed 12% p.a. — an illustration, not a forecast. ELSS returns are market-linked and can be higher or lower; past performance does not guarantee future results.
Each instalment locks for three years from its own investment date. The units bought in January 2026 free up in January 2029, February's in February 2029, and so on. There is no early-exit provision — ELSS units cannot be redeemed, switched or pledged during their lock-in.
As equity long-term capital gains, since the lock-in guarantees a holding period over one year: gains above ₹1,25,000 in a financial year are taxed at 12.5% plus cess under section 112A. Gains up to ₹1,25,000 a year are exempt, which rewards spreading redemptions across years.
No. ELSS funds invest in equities, so returns depend entirely on markets — individual years can be negative. The rate you set here is only a planning assumption. Unlike PPF or NSC, no ELSS return is fixed or government-backed.
They solve different problems. PPF offers a government-set rate (currently 7.1%, revisable quarterly) with a 15-year horizon and zero market risk; ELSS offers market-linked growth potential with just a 3-year lock-in. Many investors hold both — stability from PPF, growth from ELSS.
No — section 80C deductions are an old-regime benefit only. If you file under the new regime, an ELSS is simply a diversified equity fund with a 3-year lock-in; the growth projection still applies, but the first-year tax saving does not.
Yes, you can pause or stop the SIP at any time — there is no penalty from the fund. Already-invested instalments stay locked for their individual three-year terms, and stopping mid-year reduces the 80C deduction you can claim for that year.
