One function
compute_interest in shivprime94/file-itr
The author described this change as “fix(itr-engine): correct s.234C first_due year-roll for 44AD/44ADA (#23)”. It counts as a record because the check below fails on the code as it stood at f57b975ca and passes on 6106439c4, with nothing else changed between the two runs.
Projectshivprime94/file-itr
Fix saved2026-08-01
Sharing licenceMIT · LICENSE
Change size+2 −2
What the code was meant to do, written into the code itself as a docstring
Phase 4: s.234A/234B/234C interest on the Phase 3 tax figure. `tds` covers TDS/TCS credit; `payments` are advance-tax challans (payments dated within the FY count as advance tax). `items` are needed only for the s.234C capital-gains carve-out; without them, all income is treated as foreseeable from the first instalment (never understates interest).
The change
| 60 | 60 | if single_instalment else "s234c.schedule" | |
| 61 | 61 | ) | |
| 62 | 62 | schedule = table.get(schedule_key, ay_ref_date).value | |
| 63 | - | first_due = date(fy_start, schedule[0][0], schedule[0][1]) | |
| 63 | + | first_due = _instalment_due(fy_start, schedule[0][0], schedule[0][1]) | |
| 64 | 64 | cess = table.get("cess.health_education", ay_ref_date).value | |
| 65 | 65 | ||
| 66 | 66 | # Per-item tax attribution for the carve-out (proviso to s.234C(1)). | |
| ⋯ | |||
| 94 | 94 | ||
| 95 | 95 | i234c = Decimal("0") | |
| 96 | 96 | for month, day, cum, safe, nmonths in schedule: | |
| 97 | - | due = date(fy_start + 1 if month < 4 else fy_start, month, day) | |
| 97 | + | due = _instalment_due(fy_start, month, day) | |
| 98 | 98 | carved = sum((amt for sale, amt in carve_items if sale > due), Decimal("0")) | |
| 99 | 99 | annual = net - carved | |
| 100 | 100 | paid = sum((p.amount for p in payments if p.paid_on <= due), Decimal("0")) | |
The check that tells the two apart
fail→pass·skills/itr-india/engine/tests/test_interest.py::test_234c_presumptive_first_due_year_roll_allows_in_fy_slab_stcg
Check file skills/itr-india/engine/tests/test_interest.py, taken without changes from the fix and copied onto the older code, so the exact same check runs against both versions.
Origin and history
The code before itf57b975ca6e66b3f475606c9e68da23d39a316e1
Broken version dated2026-08-01
Moduleskills.itr-india.engine.interest
Units changedcompute_interest
Fingerprint35dd9ed8c305e3c7
Checked2026-08-18 by goldset/0.1
Every field above is generated by our program. None of it is written by hand.