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
Supported analyses
- Will this client file a GSTR-3B return within 30 days?
predict_event(target="GSTR-3B", window_days=30)
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.