Skip to main content
Open the calculator

How the two residence clocks are tested

13 of 13 cases match; 0 warnings

These reference cases run through the same functions as the calculator when this page is built. A mismatch fails the build. Passing examples are not a legal review of every possible situation.

Last verified against the linked primary sources: 2026-09-11.

What is not modelled

Individual residence only. The source is section 2(v) as reproduced in RBI's resident foreign-currency FAQ, plus RBI's account-return guidance; the full India Code link was unavailable. Purpose is supplied, not inferred from dates. Student, crew, diplomatic, special-notification and disputed-purpose cases need separate review. Prior non-resident tax years are user-supplied. FEMA status applies on the selected date, not throughout a financial year. No tax bill, FCNR maturity or filing deadline is inferred.

Ordinary stay: 181 preceding-year days

FEMA section 2(v)(i), including purpose exclusions (A) and (B); RBI non-resident accounts return guidance.

Reference inputs
{
  "precedingFyDays": 181,
  "purpose": "ORDINARY_STAY",
  "effectiveDate": "2027-04-01"
}

Expected

{
  "status": "non-resident",
  "trigger": null
}

Actual

{
  "status": "non-resident",
  "trigger": null
}

Ordinary stay: exactly 182 is not more than 182

FEMA section 2(v)(i), including purpose exclusions (A) and (B); RBI non-resident accounts return guidance.

Reference inputs
{
  "precedingFyDays": 182,
  "purpose": "ORDINARY_STAY",
  "effectiveDate": "2027-04-01"
}

Expected

{
  "status": "non-resident",
  "trigger": null
}

Actual

{
  "status": "non-resident",
  "trigger": null
}

Ordinary stay: 183 preceding-year days

FEMA section 2(v)(i), including purpose exclusions (A) and (B); RBI non-resident accounts return guidance.

Reference inputs
{
  "precedingFyDays": 183,
  "purpose": "ORDINARY_STAY",
  "effectiveDate": "2027-04-01"
}

Expected

{
  "status": "resident",
  "trigger": null
}

Actual

{
  "status": "resident",
  "trigger": null
}

Return for employment with no preceding-year days

FEMA section 2(v)(i), including purpose exclusions (A) and (B); RBI non-resident accounts return guidance.

Reference inputs
{
  "precedingFyDays": 0,
  "purpose": "IN_EMPLOYMENT",
  "effectiveDate": "2027-02-01"
}

Expected

{
  "status": "resident",
  "trigger": "2027-02-01"
}

Actual

{
  "status": "resident",
  "trigger": "2027-02-01"
}

Return for business with no preceding-year days

FEMA section 2(v)(i), including purpose exclusions (A) and (B); RBI non-resident accounts return guidance.

Reference inputs
{
  "precedingFyDays": 0,
  "purpose": "IN_BUSINESS",
  "effectiveDate": "2027-02-01"
}

Expected

{
  "status": "resident",
  "trigger": "2027-02-01"
}

Actual

{
  "status": "resident",
  "trigger": "2027-02-01"
}

Return for an uncertain period

FEMA section 2(v)(i), including purpose exclusions (A) and (B); RBI non-resident accounts return guidance.

Reference inputs
{
  "precedingFyDays": 0,
  "purpose": "IN_UNCERTAIN",
  "effectiveDate": "2027-02-01"
}

Expected

{
  "status": "resident",
  "trigger": "2027-02-01"
}

Actual

{
  "status": "resident",
  "trigger": "2027-02-01"
}

Employment abroad despite 300 preceding-year India days

FEMA section 2(v)(i), including purpose exclusions (A) and (B); RBI non-resident accounts return guidance.

Reference inputs
{
  "precedingFyDays": 300,
  "purpose": "OUT_EMPLOYMENT",
  "effectiveDate": "2027-04-01"
}

Expected

{
  "status": "non-resident",
  "trigger": null
}

Actual

{
  "status": "non-resident",
  "trigger": null
}

Business abroad despite 300 preceding-year India days

FEMA section 2(v)(i), including purpose exclusions (A) and (B); RBI non-resident accounts return guidance.

Reference inputs
{
  "precedingFyDays": 300,
  "purpose": "OUT_BUSINESS",
  "effectiveDate": "2027-04-01"
}

Expected

{
  "status": "non-resident",
  "trigger": null
}

Actual

{
  "status": "non-resident",
  "trigger": null
}

Uncertain-period stay abroad

FEMA section 2(v)(i), including purpose exclusions (A) and (B); RBI non-resident accounts return guidance.

Reference inputs
{
  "precedingFyDays": 300,
  "purpose": "OUT_UNCERTAIN",
  "effectiveDate": "2027-04-01"
}

Expected

{
  "status": "non-resident",
  "trigger": null
}

Actual

{
  "status": "non-resident",
  "trigger": null
}

Temporary India visit remains purpose-excluded

FEMA section 2(v)(i), including purpose exclusions (A) and (B); RBI non-resident accounts return guidance.

Reference inputs
{
  "precedingFyDays": 300,
  "purpose": "VISIT_INDIA",
  "effectiveDate": "2027-04-01"
}

Expected

{
  "status": "non-resident",
  "trigger": null
}

Actual

{
  "status": "non-resident",
  "trigger": null
}

An unresolved purpose is not a residency answer

FEMA section 2(v)(i), including purpose exclusions (A) and (B); RBI non-resident accounts return guidance.

Reference inputs
{
  "precedingFyDays": 200,
  "purpose": "UNSURE",
  "effectiveDate": "2027-04-01"
}

Expected

{
  "status": "review",
  "trigger": null
}

Actual

{
  "status": "review",
  "trigger": null
}

Ten non-resident years, qualifying return 2026-04-01

FEMA s.2(v), RBI non-resident accounts FAQ and Income-tax Act 2025 s.6.

Reference inputs
{
  "effectiveDate": "2026-04-01",
  "purpose": "IN_UNCERTAIN",
  "taxFacts": {
    "isIndianCitizen": true,
    "isPIO": false,
    "isVisitingIndia": false,
    "isLeavingForEmployment": false,
    "nonForeignSourceIncomeINR": 0,
    "liableToTaxAbroad": "yes",
    "nrYearsInLast10Preceding": 10
  },
  "trips": [
    {
      "arrival": "2026-04-01",
      "departure": "2027-03-31"
    }
  ]
}

Expected

{
  "days": 365,
  "precedingDays": 0,
  "tax": "RNOR",
  "warnings": [],
  "fema": "resident",
  "trigger": "2026-04-01"
}

Actual

{
  "days": 365,
  "precedingDays": 0,
  "tax": "RNOR",
  "warnings": [],
  "fema": "resident",
  "trigger": "2026-04-01"
}

Ten non-resident years, qualifying return 2027-02-01

FEMA s.2(v), RBI non-resident accounts FAQ and Income-tax Act 2025 s.6.

Reference inputs
{
  "effectiveDate": "2027-02-01",
  "purpose": "IN_UNCERTAIN",
  "taxFacts": {
    "isIndianCitizen": true,
    "isPIO": false,
    "isVisitingIndia": false,
    "isLeavingForEmployment": false,
    "nonForeignSourceIncomeINR": 0,
    "liableToTaxAbroad": "yes",
    "nrYearsInLast10Preceding": 10
  },
  "trips": [
    {
      "arrival": "2027-02-01",
      "departure": "2027-03-31"
    }
  ]
}

Expected

{
  "days": 59,
  "precedingDays": 0,
  "tax": "NR",
  "warnings": [],
  "fema": "resident",
  "trigger": "2027-02-01"
}

Actual

{
  "days": 59,
  "precedingDays": 0,
  "tax": "NR",
  "warnings": [],
  "fema": "resident",
  "trigger": "2027-02-01"
}

Was this correct?

Educational only. RebaseNest is not a SEBI-registered investment adviser and does not give tax, legal or investment advice. Rules change; confirm your position with a qualified chartered accountant before acting. Full disclaimer.

Accounts and Banking
NRE/NRO/FCNR Redesignation Planner