<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: taxgarden</title>
    <description>The latest articles on DEV Community by taxgarden (@taxgarden_40fc262ae923ad6).</description>
    <link>https://dev.to/taxgarden_40fc262ae923ad6</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3953825%2F5a88567e-bd8c-441e-97c7-fcc4f5bbed6b.png</url>
      <title>DEV Community: taxgarden</title>
      <link>https://dev.to/taxgarden_40fc262ae923ad6</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/taxgarden_40fc262ae923ad6"/>
    <language>en</language>
    <item>
      <title># Automate CBDT Scrutiny Risk Scoring Against AIS Data in Python</title>
      <dc:creator>taxgarden</dc:creator>
      <pubDate>Mon, 17 Aug 2026 10:07:44 +0000</pubDate>
      <link>https://dev.to/taxgarden_40fc262ae923ad6/-automate-cbdt-scrutiny-risk-scoring-against-ais-data-in-python-30fg</link>
      <guid>https://dev.to/taxgarden_40fc262ae923ad6/-automate-cbdt-scrutiny-risk-scoring-against-ais-data-in-python-30fg</guid>
      <description>&lt;p&gt;CBDT issues compulsory scrutiny guidelines each year specifying which ITRs get flagged for mandatory audit. For FY 2026-27, the criteria are broader than previous years. If you are building compliance tools or processing ITR data, you need these rules encoded.&lt;/p&gt;

&lt;p&gt;The FY 2026-27 Compulsory Scrutiny Criteria&lt;br&gt;
CBDT mandates scrutiny when any of the following are present:&lt;/p&gt;

&lt;p&gt;AIR/SFT mismatch: Cash deposits above Rs 10 lakh in savings accounts not matching declared income&lt;br&gt;
Capital gains underreporting: LTCG/STCG in AIS not matching Schedule CG in ITR&lt;br&gt;
International transactions: Transfer pricing cases with turnover above Rs 50 crore&lt;br&gt;
Treaty claims: Non-residents claiming DTAA exemptions above threshold&lt;br&gt;
Non-filers with high-value transactions: Persons with SFT-reported transactions who did not file an ITR&lt;br&gt;
Returns selected by system-based risk parameters: INSIGHT portal flags based on behavioural analytics&lt;br&gt;
Building a Risk Scorer in Python&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;```python from dataclasses import dataclass from typing import Optional&lt;/p&gt;

&lt;p&gt;@dataclass class AISData:&lt;/p&gt;

&lt;p&gt;cash_deposits&lt;br&gt;
float&lt;br&gt;
reported_income&lt;br&gt;
float&lt;br&gt;
stcg_in_ais&lt;br&gt;
float&lt;br&gt;
stcg_in_itr&lt;br&gt;
float&lt;br&gt;
ltcg_in_ais&lt;br&gt;
float&lt;br&gt;
ltcg_in_itr&lt;br&gt;
float&lt;br&gt;
has_international_txn&lt;br&gt;
bool&lt;br&gt;
intl_txn_turnover&lt;br&gt;
float&lt;br&gt;
is_non_resident&lt;br&gt;
bool&lt;br&gt;
filed_itr&lt;br&gt;
bool&lt;br&gt;
sft_high_value&lt;br&gt;
bool&lt;br&gt;
def scrutiny_risk_score(ais: AISData) -&amp;gt; dict: flags = []&lt;/p&gt;

&lt;p&gt;if ais.cash_deposits &amp;gt; 1_000_000 and ais.cash_deposits &amp;gt; ais.reported_income * 0.3: flags.append("CASH_DEPOSIT_MISMATCH")&lt;/p&gt;

&lt;p&gt;if abs(ais.stcg_in_ais - ais.stcg_in_itr) &amp;gt; 10_000: flags.append("STCG_MISMATCH")&lt;/p&gt;

&lt;p&gt;if abs(ais.ltcg_in_ais - ais.ltcg_in_itr) &amp;gt; 10_000: flags.append("LTCG_MISMATCH")&lt;/p&gt;

&lt;p&gt;if ais.has_international_txn and ais.intl_txn_turnover &amp;gt; 50_000_000: flags.append("TRANSFER_PRICING_RISK")&lt;/p&gt;

&lt;p&gt;if ais.sft_high_value and not ais.filed_itr: flags.append("NON_FILER_HIGH_VALUE")&lt;/p&gt;

&lt;p&gt;return { "risk_level": "HIGH" if len(flags) &amp;gt;= 2 else "MEDIUM" if flags else "LOW", "flags": flags, "recommend_review": bool(flags) } ```&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;Integrating with AIS JSON Export&lt;br&gt;
The AIS is downloadable from the income tax portal as a JSON. Parse partB.generalInfo for SFT transactions and partB.capitalGains for AIS capital gains data. Cross-reference against the ITR XML export (ITR-2 / ITR-3 Schedule CG).&lt;/p&gt;

&lt;p&gt;Why This Matters for Compliance Platforms&lt;br&gt;
If you are building ITR validation or pre-filing checks, encoding the CBDT scrutiny criteria as a rule engine flags high-risk returns before submission. The taxpayer can either correct the return or prepare a paper trail in advance.&lt;/p&gt;

&lt;p&gt;Full CBDT scrutiny guidelines FY 2026-27 with case examples: &lt;a href="https://taxgarden.in/blog/cbdt-compulsory-scrutiny-guidelines-fy-2026-27" rel="noopener noreferrer"&gt;CBDT compulsory scrutiny criteria FY 2026-27&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title># Automating GST Inverted Duty Refund Calculations: Rule 89(5) in Code</title>
      <dc:creator>taxgarden</dc:creator>
      <pubDate>Wed, 12 Aug 2026 12:16:51 +0000</pubDate>
      <link>https://dev.to/taxgarden_40fc262ae923ad6/-automating-gst-inverted-duty-refund-calculations-rule-895-in-code-3p3k</link>
      <guid>https://dev.to/taxgarden_40fc262ae923ad6/-automating-gst-inverted-duty-refund-calculations-rule-895-in-code-3p3k</guid>
      <description>&lt;p&gt;If you are building a GST compliance module for an ERP, accounting SaaS, or tax automation tool, the inverted duty structure (IDS) refund calculation is a formula you will encounter. It is prescribed in Rule 89(5) of the CGST Rules and amended by Notification 14/2022-Central Tax dated 5 July 2022.&lt;/p&gt;

&lt;p&gt;Here is the formula, translated from legal language to something you can actually implement:&lt;/p&gt;

&lt;p&gt;The Rule 89(5) Formula&lt;br&gt;
&lt;code&gt;Maximum Refund = ( (Turnover_of_Inverted_Rated_Supply * Net_ITC) / Adjusted_Total_Turnover ) - Tax_Payable_on_Inverted_Rated_Supply&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Where:&lt;/p&gt;

&lt;p&gt;Turnover_of_Inverted_Rated_Supply = value of supplies where input rate &amp;gt; output rate&lt;br&gt;
Net_ITC = ITC availed on inputs (goods only, NOT input services, NOT capital goods)&lt;br&gt;
Adjusted_Total_Turnover = total turnover minus zero-rated supply turnover, exempt supply turnover, and the value of inverted supplies already counted&lt;br&gt;
Tax_Payable_on_Inverted_Rated_Supply = the output tax liability on inverted supplies&lt;br&gt;
Implementation Notes&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Exclude input services&lt;br&gt;
The Supreme Court ruling in VKC Footsteps India v. Union of India (2021) confirmed that input services are NOT included in Net_ITC for this formula. Your data model must track ITC by supply type (inputs/goods vs input services vs capital goods).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Get Adjusted_Total_Turnover right&lt;br&gt;
This is where most implementations fail. It must exclude:&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Zero-rated supplies (exports, SEZ supplies)&lt;br&gt;
Exempt supplies&lt;br&gt;
Turnover from supplies covered under Section 10 (composition scheme)&lt;br&gt;
Value of supplies already used as the numerator&lt;br&gt;
Some implementations double-count by including inverted supplies in both the numerator and the denominator.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Tax period granularity&lt;br&gt;
The refund is claimed period-by-period (monthly or quarterly). Your calculation engine needs to run this formula for each GSTIN for each tax period separately.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The 90% provisional refund (October 2025)&lt;br&gt;
Since GST Instruction 6/2025 (effective 1 October 2025), the system now grants 90% provisional refunds to low-risk taxpayers before full adjudication. If you are integrating with GSTN APIs, watch for the risk-score flags that determine provisional eligibility.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Industries to Flag in Your Product&lt;br&gt;
The IDS problem is concentrated in: pharma, footwear, textiles, EVs, corrugated boxes, and certain plastic products. If your SaaS serves these sectors, auto-flag potential IDS situations when input GST rate &amp;gt; output GST rate.&lt;/p&gt;

&lt;p&gt;For excluded goods (edible oils, Chapter 15; coal, Chapter 27), suppress the refund calculation and show a clear "not eligible" status.&lt;/p&gt;

&lt;p&gt;Filing Flow&lt;br&gt;
The human steps after your calculation: Form RFD-01 on the GST portal, ARN generation, provisional refund order, scrutiny and final order. Your tool can pre-populate the RFD-01 fields from the computation.&lt;/p&gt;

&lt;p&gt;For the full compliance context including legal framework and common rejection reasons, reference the &lt;a href="https://taxgarden.in/blog/gst-inverted-duty-structure-refund-section-54-rule-89-india-2026" rel="noopener noreferrer"&gt;GST inverted duty structure refund formula&lt;/a&gt; guide.&lt;/p&gt;

&lt;p&gt;Building something in this space? Drop a comment below.&lt;/p&gt;

</description>
      <category>automation</category>
      <category>backend</category>
      <category>code</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>7 Common ITR Filing Mistakes That Could Cost You Your Tax Refund</title>
      <dc:creator>taxgarden</dc:creator>
      <pubDate>Thu, 30 Jul 2026 07:31:36 +0000</pubDate>
      <link>https://dev.to/taxgarden_40fc262ae923ad6/7-common-itr-filing-mistakes-that-could-cost-you-your-tax-refund-3dnm</link>
      <guid>https://dev.to/taxgarden_40fc262ae923ad6/7-common-itr-filing-mistakes-that-could-cost-you-your-tax-refund-3dnm</guid>
      <description>&lt;p&gt;Every year, thousands of taxpayers lose refunds or receive notices from the Income Tax Department—not because they intentionally did something wrong, but because of simple filing mistakes. The good news? Most of these errors are completely avoidable.&lt;/p&gt;

&lt;p&gt;If you're filing your Income Tax Return (ITR) this year, make sure you don't make these seven common mistakes.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Choosing the Wrong ITR Form&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Selecting the wrong ITR form is one of the most common mistakes.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;ITR-1 is generally for individuals with salary and certain other simple income.&lt;br&gt;
ITR-2 is used when you have capital gains, multiple house properties, or foreign assets.&lt;br&gt;
ITR-3 is meant for business or professional income.&lt;/p&gt;

&lt;p&gt;Using the wrong form may result in your return being treated as defective, requiring you to file a corrected return.&lt;/p&gt;

&lt;p&gt;Tip: Understand your sources of income before selecting an ITR form.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Not Matching Form 26AS and AIS&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Many taxpayers file their return using only Form 16.&lt;/p&gt;

&lt;p&gt;However, banks, brokers, employers, and other institutions report your income directly to the Income Tax Department through Form 26AS and the Annual Information Statement (AIS).&lt;/p&gt;

&lt;p&gt;If your return doesn't match these records, you may receive a notice.&lt;/p&gt;

&lt;p&gt;Always verify:&lt;/p&gt;

&lt;p&gt;Salary&lt;br&gt;
Bank interest&lt;br&gt;
Dividend income&lt;br&gt;
Capital gains&lt;br&gt;
TDS deducted&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Missing Eligible Deductions&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;People often forget deductions that could reduce their tax liability.&lt;/p&gt;

&lt;p&gt;Common deductions include:&lt;/p&gt;

&lt;p&gt;Section 80C&lt;br&gt;
Section 80D&lt;br&gt;
NPS contributions&lt;br&gt;
Home loan interest&lt;br&gt;
Donations under Section 80G&lt;/p&gt;

&lt;p&gt;Review all available deductions before filing.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Not Reporting All Sources of Income&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Some taxpayers report only salary income and forget about:&lt;/p&gt;

&lt;p&gt;Savings account interest&lt;br&gt;
Fixed Deposit interest&lt;br&gt;
Dividend income&lt;br&gt;
Rental income&lt;br&gt;
Freelancing income&lt;br&gt;
Capital gains&lt;/p&gt;

&lt;p&gt;Even if tax has already been deducted, the income still needs to be reported.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Entering Incorrect Bank Account Details&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Your refund is credited directly to your bank account.&lt;/p&gt;

&lt;p&gt;If your account number or IFSC code is incorrect—or if the account isn't pre-validated—your refund may be delayed.&lt;/p&gt;

&lt;p&gt;Double-check your banking details before submitting your return.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Waiting Until the Last Minute&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Last-minute filing often leads to:&lt;/p&gt;

&lt;p&gt;Missing documents&lt;br&gt;
Incorrect information&lt;br&gt;
Technical issues on the portal&lt;br&gt;
Rushed decisions&lt;/p&gt;

&lt;p&gt;Filing early gives you enough time to verify all information and correct any mistakes.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Forgetting to E-Verify Your Return&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Submitting your ITR isn't the final step.&lt;/p&gt;

&lt;p&gt;Your return must be e-verified within the prescribed time limit using:&lt;/p&gt;

&lt;p&gt;Aadhaar OTP&lt;br&gt;
Net Banking&lt;br&gt;
Bank Account EVC&lt;br&gt;
Digital Signature (where applicable)&lt;/p&gt;

&lt;p&gt;Without e-verification, your return may be treated as not filed.&lt;/p&gt;

&lt;p&gt;Final Thoughts&lt;/p&gt;

&lt;p&gt;A few extra minutes spent reviewing your return can save you weeks of follow-up and help you receive your refund without unnecessary delays.&lt;/p&gt;

&lt;p&gt;Before clicking "Submit," make sure you've:&lt;/p&gt;

&lt;p&gt;Selected the correct ITR form&lt;br&gt;
Verified Form 26AS and AIS&lt;br&gt;
Claimed all eligible deductions&lt;br&gt;
Reported every source of income&lt;br&gt;
Checked your bank details&lt;br&gt;
Filed before the deadline&lt;br&gt;
Completed e-verification&lt;/p&gt;

&lt;p&gt;Filing your ITR accurately isn't just about complying with tax laws—it's about ensuring you pay the right amount of tax and receive any refund you're entitled to.&lt;/p&gt;

&lt;p&gt;Have you ever made one of these ITR filing mistakes? Share your experience in the comments—it might help someone else avoid the same issue&lt;/p&gt;

</description>
    </item>
    <item>
      <title>TDS on Tech Vendor Payments: What Indian Startups Need to Know in 2026</title>
      <dc:creator>taxgarden</dc:creator>
      <pubDate>Wed, 08 Jul 2026 07:15:42 +0000</pubDate>
      <link>https://dev.to/taxgarden_40fc262ae923ad6/tds-on-tech-vendor-payments-what-indian-startups-need-to-know-in-2026-o15</link>
      <guid>https://dev.to/taxgarden_40fc262ae923ad6/tds-on-tech-vendor-payments-what-indian-startups-need-to-know-in-2026-o15</guid>
      <description>&lt;p&gt;If your startup or tech company pays vendors, contractors, or cloud providers above threshold amounts, TDS obligations apply under the Income Tax Act.&lt;br&gt;
Key TDS sections for tech businesses:&lt;/p&gt;

&lt;p&gt;Section 194C: TDS at 1% (individual/HUF) or 2% (company) on contractor payments above Rs 30,000 per transaction or Rs 1 lakh per year&lt;br&gt;
Section 194J: TDS at 10% on professional fees (software development, consulting, legal) above Rs 30,000&lt;br&gt;
Section 194-O: TDS at 1% on e-commerce operator payments to sellers above Rs 5 lakh&lt;br&gt;
Section 195: TDS on payments to non-resident foreign vendors (AWS, Google Cloud, Stripe) , rate depends on DTAA&lt;br&gt;
Filing deadlines:&lt;/p&gt;

&lt;p&gt;Deposit TDS by 7th of the following month&lt;br&gt;
File TDS returns quarterly (Form 24Q / 26Q) by 31st of the month after quarter end&lt;br&gt;
Missing TDS deposits attracts interest at 1.5% per month. Late TDS returns attract Rs 200/day penalty.&lt;/p&gt;

&lt;p&gt;Tax Garden (&lt;a href="https://taxgarden.in" rel="noopener noreferrer"&gt;https://taxgarden.in&lt;/a&gt;) handles TDS computation, deposit, and quarterly return filing for startups and MSMEs in Hyderabad.&lt;/p&gt;

</description>
      <category>india</category>
      <category>tax</category>
      <category>startup</category>
      <category>compliance</category>
    </item>
    <item>
      <title>How We Automated Recurring Tax Compliance Workflows Using Technology</title>
      <dc:creator>taxgarden</dc:creator>
      <pubDate>Tue, 23 Jun 2026 12:20:48 +0000</pubDate>
      <link>https://dev.to/taxgarden_40fc262ae923ad6/how-we-automated-recurring-tax-compliance-workflows-using-technology-481f</link>
      <guid>https://dev.to/taxgarden_40fc262ae923ad6/how-we-automated-recurring-tax-compliance-workflows-using-technology-481f</guid>
      <description>&lt;p&gt;Indian tax compliance is a recurring-deadline problem: GST returns monthly, TDS quarterly, ROC annually, each with its own data shape and portal. The manual version is a person re-keying the same ledger data into different forms and hoping nothing drifts.&lt;/p&gt;

&lt;p&gt;The interesting engineering problem is reconciliation. GSTR-1 (what you reported as sales) has to agree with GSTR-3B (what you paid against) and with GSTR-2B (what your vendors reported). Modeling these as data pipelines with validation gates, instead of as forms a human fills, is where automation actually moves the needle: classify each transaction once, then let agents map it into every downstream return and flag mismatches before filing rather than after a notice.&lt;/p&gt;

&lt;p&gt;We wrote up how the agent layer is structured here: &lt;a href="https://taxgarden.in/technology" rel="noopener noreferrer"&gt;AI-driven compliance platform&lt;/a&gt;.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Tech angle on automating ITR data prep + 26AS/AIS reconciliation.</title>
      <dc:creator>taxgarden</dc:creator>
      <pubDate>Tue, 23 Jun 2026 12:19:02 +0000</pubDate>
      <link>https://dev.to/taxgarden_40fc262ae923ad6/tech-angle-on-automating-itr-data-prep-26asais-reconciliation-417b</link>
      <guid>https://dev.to/taxgarden_40fc262ae923ad6/tech-angle-on-automating-itr-data-prep-26asais-reconciliation-417b</guid>
      <description>&lt;p&gt;The slow part of filing an income tax return is not the form, it is making your numbers agree with the tax department's numbers. Form 26AS and the Annual Information Statement (AIS) are effectively the government's view of your income and TDS. If your return disagrees, you get a notice.&lt;/p&gt;

&lt;p&gt;So the sane data model treats 26AS/AIS as a source of truth to diff against, not as a reference to glance at. Pull both, normalize each line (deductor, section, amount, period), and reconcile against the taxpayer's own records before a single field of the ITR is populated. Mismatches become a worklist; everything that ties out flows straight through.&lt;/p&gt;

&lt;p&gt;Treating filing as a diff-and-resolve pipeline is what makes it repeatable across thousands of returns. The form-selection and deadline context is here: &lt;a href="https://taxgarden.in/blog/itr-filing-guide-ay-2026-27-new-forms-deadlines" rel="noopener noreferrer"&gt;ITR filing guide&lt;/a&gt;.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
