October DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsClean PCRecommendedOne scan can reveal what keeps slowing WindowsLook for cleanup and repair opportunities.Run ScanOctober DealsAmazon USDeal season is back - check today's better picksAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
World desk7 min

How to Build an Explainable AIS/TIS Review Engine in JavaScript

A JavaScript AIS/TIS rules engine can flag reconciliation issues with traceable evidence, but it cannot reproduce undisclosed government scrutiny rules or predict selection.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

You can build a JavaScript engine to flag differences between tax-return inputs and AIS/TIS records, but it should be a transparent reconciliation aid—not a replica of the Income Tax Department’s system or a predictor of scrutiny. India’s public description confirms that scrutiny cases are selected using automated, rule-based analysis of financial data from multiple sources; it does not disclose the rules, thresholds, weights, or code. An independent engine can show which records triggered a review and why, while leaving tax conclusions to a human.

What are AIS and TIS, and how do they differ?

The Income Tax Department describes the Annual Information Statement (AIS) as a view of information currently available about a taxpayer. It can include tax deducted or collected at source (TDS/TCS), specified financial transactions, and other information reported to the Department. AIS is not a complete ledger of every transaction: the Department cautions that information may exist that is not shown there, and taxpayers remain responsible for reporting complete and accurate information in their returns.

As an Amazon Associate I earn from qualifying purchases.

The Taxpayer Information Summary (TIS) presents information in category-wise aggregates. It distinguishes a system-processed value, after deduplication under predefined rules, from a value accepted by the taxpayer or confirmed by a source following feedback. Accepted or confirmed information may be used for prefilling where applicable. Keep those values separate in software; treating them as one amount loses important context.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

AIS also supports feedback on active information and shows reported and modified values. Form 26AS is narrower: the Department describes it as displaying TDS/TCS-related data, while other taxpayer information is available in AIS. They are not interchangeable datasets. These scope and workflow descriptions come from the Income Tax Department’s AIS FAQ.

Does an AIS mismatch automatically mean scrutiny?

No. A difference between a return input and an AIS record is a reason to investigate the underlying records, not proof of under-reporting, tax due, or scrutiny selection. A reported value may have been modified after feedback; TIS may show a processed or accepted amount; and matching can be complicated by category, period, or source mapping.

A Government of India parliamentary answer describes scrutiny selection as an automated, rule-based process informed by analysis of financial data from multiple sources, including third-party information. It does not disclose the actual selection rules, scoring formula, thresholds, feature weights, code, or why an individual case is selected. A JavaScript prototype therefore cannot honestly reproduce that system or calculate a taxpayer’s scrutiny probability.

The Department’s assessment page describes FY 2024-25 compulsory scrutiny-selection guidance. Under that year’s guidance, returns filed in response to certain notices based on NMS/AIS/SFT/CPC-TDS/IC&I information were not compulsory scrutiny solely for that reason and were selected through CASS. That is a year-specific distinction, not a statement of current criteria for another assessment year; check the applicable year’s current circular before relying on it.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

How should a reconciliation engine represent the data?

Start with an internal normalized model rather than assuming that an AIS download has a stable, public JavaScript schema. The Department makes AIS downloads available in PDF, JSON, and CSV formats, but the cited official material does not establish a supported external API or stable field-level schema for third-party applications. Treat format parsing and field assumptions as versioned, and validate them against the current official files and utility documentation.

For each imported record, retain enough provenance to explain where a value came from and how it was treated. Do not overwrite the original reported value with a modified, processed, or accepted value.

  • Identity and period: the record’s own identifier, tax year or reporting period, and any period interpretation made during normalization.
  • Provenance: source name or source description, AIS/TIS/Form 26AS or taxpayer-record origin, and import or parser version where useful.
  • Classification and value: normalized category, amount, and currency or unit if relevant to the source.
  • Status: reported amount, system-processed amount, taxpayer-accepted or source-confirmed amount, plus available feedback or modification status. Keep unavailable fields explicitly absent rather than filling them with a guessed value.
  • Match context: the return field being compared, the category mapping used, and confidence or uncertainty about the mapping.

A normalized record might look like this. It is an application-owned example, not an official AIS field schema:

const record = {
  id: "local-record-17",
  source: "AIS",
  sourceDescription: "Example payer-reported item",
  period: "2025-26",
  category: "interest",
  reportedAmount: 12500,
  processedAmount: 12500,
  acceptedAmount: null,
  feedbackStatus: "not-recorded",
  parserVersion: "ais-import-1"
};

The values are illustrative, not taken from an official file. In particular, a null accepted amount means the application has no accepted value to compare; it does not mean zero.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

How do you compare AIS/TIS values with a tax return?

Make comparison policy explicit before writing rules. A rule should state which return field and source value it compares, the period and category mapping, whether it uses a reported, processed, or accepted amount, and what condition creates a finding. If an input is missing or its meaning is uncertain, return a review finding rather than silently choosing a substitute.

  1. Import and preserve: Parse the downloaded statement into a versioned internal format. Keep source text or identifiers needed to trace a normalized item back to its origin.
  2. Normalize cautiously: Standardize amounts, periods, and categories without discarding source-specific values or feedback status. Record uncertain mappings for review.
  3. Map return fields: Define explicit mappings between your return inputs and normalized categories. Do not assume similarly named categories have identical tax treatment.
  4. Run deterministic checks: Apply named rules to the normalized records. Example demo rules can flag a return amount that differs from a reported record, duplicate-like items for inspection, or an uncertain period/source mapping. These are illustrative checks, not CBDT criteria.
  5. Show evidence: Return each finding with the rule identifier and version, compared values, record identifiers, and a plain-language explanation.
  6. Route for human review: Resolve conflicting records, feedback-dependent values, missing information, and tax-treatment questions against supporting documents and applicable guidance.

Here is a compact implementation for a deliberately narrow example: compare a supplied return amount with the sum of AIS records for the same normalized category and period, using only their reported amounts. The data structure and category mapping are application choices. The code does not parse official downloads or determine which amount should be used for a tax filing.

const rules = [
  {
    id: "DEMO-AIS-RETURN-DIFFERENCE",
    version: "1.0.0",
    evaluate({ returnInputs, records }) {
      const findings = [];

      for (const input of returnInputs) {
        if (!Number.isFinite(input.amount)) continue;

        const matches = records.filter(record =>
          record.source === "AIS" &&
          record.category === input.category &&
          record.period === input.period &&
          Number.isFinite(record.reportedAmount)
        );

        if (matches.length === 0) continue;

        const reportedTotal = matches.reduce(
          (sum, record) => sum + record.reportedAmount,
          0
        );

        if (reportedTotal !== input.amount) {
          findings.push({
            ruleId: this.id,
            ruleVersion: this.version,
            severity: "review",
            message: "Return input differs from matched AIS reported amounts.",
            period: input.period,
            category: input.category,
            returnAmount: input.amount,
            comparedAmount: reportedTotal,
            comparedValue: "reportedAmount",
            recordIds: matches.map(record => record.id)
          });
        }
      }

      return findings;
    }
  }
];

function runRules({ returnInputs, records }) {
  return rules.flatMap(rule =>
    rule.evaluate({ returnInputs, records })
  );
}

For example, a return input can use the same application-defined category and period keys:

const returnInputs = [
  { period: "2025-26", category: "interest", amount: 13000 }
];

const findings = runRules({ returnInputs, records });

This example deliberately reports a difference as a review item. It does not say which amount is correct or whether the difference has a tax consequence. Before using a check like this beyond a demonstration, define how the source’s reporting period aligns with the return, how records are deduplicated, and how revised or feedback-modified information is handled.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

How do you keep findings explainable and useful?

Prefer a list of evidence-backed findings to a single opaque “risk score.” A finding should tell a reviewer what was compared and what to inspect next, without presenting an alert as a conclusion.

  • Name and version each rule: A stable rule ID and version make it possible to explain which logic produced a finding and to distinguish results from different releases.
  • Include the compared values: Identify whether the comparison used a reported, processed, or accepted amount and include the relevant period, category, and source records.
  • Separate uncertainty from mismatch: Flag uncertain source or category mapping as a different review condition from a numeric difference.
  • Preserve feedback history: Show available reported and modified values and feedback status rather than collapsing them into a replacement amount.
  • Keep a human decision point: Let reviewers record supporting evidence and disposition without rewriting the original imported facts.

If a prototype uses a numeric score for display, disclose that its weights are arbitrary demonstration choices. Do not call it a government score, a measure of noncompliance, or a probability of scrutiny.

What should a JavaScript implementation not claim?

  • It should not claim to mirror CBDT or Income Tax Department selection logic; public descriptions do not provide the operational rules.
  • It should not present an AIS/TIS difference as proof of inaccurate reporting, tax liability, or likely scrutiny.
  • It should not treat AIS as a complete list of transactions or treat Form 26AS as equivalent to AIS.
  • It should not merge reported, system-processed, and accepted or confirmed values into one unexplained total.
  • It should not claim compatibility with an official API or stable external schema based on the cited material. The Income Tax Department’s AIS FAQ and utility documentation are the relevant references for current downloads and formats.
  • It should not carry FY 2024-25 scrutiny guidance forward as if it applied to every year.

Used within those limits, a rules engine can make reconciliation more consistent and auditable: it can surface a concrete difference, retain the evidence behind it, and direct a person to the records that need attention. It cannot replace complete return reporting, tax advice, or an official scrutiny decision.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Windows Errors? Fix Them Before They SpreadFree repair scan
Outdated Drivers Are Slowing You DownFree scan - exact matches

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.