Stacklink
Verified Knowledge

Structured tools

Deterministic compliance calculations, each backed by evidence links.

Some questions should never be "inferred" — a GST due date, a late fee, interest, an HSN/SAC rate. A structured module sits on top of a knowledge pack and returns a computed answer, with the exact source rows that produced it linked as evidence.

Why structured, not prose

Asking a model to read a notification and do the arithmetic invites errors. A structured tool runs the rule deterministically and shows its work:

Deterministic, not inferred
const due = await session.calculateGstDueDate({
  formKey: 'gstr1',
  periodEnd: '2024-11-30',
});
// due.result        -> { dueDate: '2024-12-11', ... }
// due.ruleRowsUsed  -> the rule rows applied
// due.evidenceLinks -> the exact notifications that set this rule

The GST module

Auto-exposed when the in.business_compliance.authority pack is enabled on the session:

ToolReturns
GST_GET_COMPLIANCE_RULEStructured rules by family / type / form / class.
GST_CALCULATE_DUE_DATEReturn due date for a form + period.
GST_CALCULATE_LATE_FEELate fee from due date and filing date.
GST_CALCULATE_INTERESTInterest on a delayed payment.
GST_LOOKUP_HSN_SAC_RATECurrent GST rate for an HSN/SAC code.
GST_CHECK_RCMReverse-charge applicability for a supply.
GST_GET_NOTICE_RULE / GST_GET_APPEAL_STAGE_RULENotice and appeal-stage rules.

Effective-dated

Every rule has an effective window. Pass asOfDate to compute against the rules in force on that date — the same way statutory rules are themselves versioned.

await session.getGstDueDateRule({ formKey: 'gstr1', asOfDate: '2024-06-30' });

Each result carries evidenceLinks with a legalConfidence of verified, partial, or evidence_pending — so you always know how firmly a calculation is grounded. Prefer a structured tool over prose whenever the task is a calculation.

On this page