vertiq
Accounting and tax compliance

Accounting and tax compliance

Predict late filings, track overdue returns, and identify recurring notices by client.

Data mapping

Entity
client (tax identifier)
Group
jurisdiction
Profile
generic; configure time windows with verticals.register
SOURCE COLUMNSVERTIQ DATA CONTRACTGSTINAbgabedatumReturn TypeTax AmountJurisdictionStatusFiled ByDue DateFiled OnEntity · identifierEvent · timestampEvent · typeEvent · valueEntity · groupEvent · attributes%Y%m%d
Vertiq LM can propose this mapping from the header and sample rows. Column names, value types and the date format are validated against the data before use.

Supported analyses

Reference implementation

from datetime import datetime, timedelta
from vertiq import plugins, rules
from vertiq.mapping import Mapping, apply, repair
from vertiq.tasks import predict_event, predict_value

# rows: the source export as a list of dicts, e.g. list(csv.DictReader(open("export.csv")))
mapping = Mapping.parse({"entity": "GSTIN", "time": "Abgabedatum", "type": "Return Type", "value": "Tax Amount", "group": "Jurisdiction", "attrs": ["Status", "Filed By", "Due Date", "Filed On"], "date_format": "%Y%m%d"})
m, notes = repair(mapping, rows)      # validates column names, value types and date format against the rows
ds, problems = apply(m, rows)         # rows that fail to load are reported, not imputed

@plugins.feature("tax")
def late_filings(entity, before, cut):   # receives only events recorded before the cutoff
    return {"late_before": sum(1 for e in before if e.attrs.get("Status") == "late")}

task = predict_event(ds, target="GSTR-3B", window_days=30, pack="tax")
print(task.status, task.report())     # "trained" only if the model outperformed the baseline on held-out entities
if task.status == "trained":
    print(task.score("29ABCDE1234F1Z5"))  # probability with contributing factors

flags = rules.run(ds, [
    rules.overdue("Due Date", "Filed On", tolerance_days=0),   # returns filed after the due date
])
print(flags["summary"])

This code is executed by the test suite (tests/test_guides.py) against generated records with these column names.

Recommended plugin

late_filings: Clients with previous late filings are more likely to file late again.

Validation rules

  • rules.overdue("Due Date", "Filed On", tolerance_days=0): returns filed after the due date

Implementation notes

  • overdue() requires due and completion dates in ISO format (YYYY-MM-DD).

Validation

  • overdue() rule in the unit tests
  • Tax tables in the Vertiq LM mapping evaluation
  • Every deployment: the evaluation gate measures each model on the organisation's own held-out records before promotion.
← Wholesale and distributionEducation and public services →