Antti Rauhala
Co-founder
January 20, 2025 • 4 min read
The accounts payable automation landscape just got a major upgrade. Aito's latest releases introduce game-changing capabilities that solve one of the most persistent challenges in invoice processing: making accurate predictions when you have limited historical data.
Whether you're dealing with a new vendor, an unfamiliar expense category, or a recently hired employee, traditional ML approaches often struggle. Today, we're excited to show you how Aito's enhanced prediction capabilities automatically leverage entity properties and enterprise-scale performance optimization change the game entirely.
Let's start with a real scenario every accounting team faces:
It's Monday morning, and your automated invoice processing system encounters an invoice from a new cloud services vendor. The system has never seen this vendor before, but it needs to assign a GL code, predict the appropriate approver, and route it to the right department. Traditional rule-based systems would fail here, and most ML models would make random guesses.
This is where Aito's automatic property-based predictions become invaluable.
Instead of requiring explicit prior configuration, Aito automatically uses the properties of entities to make intelligent predictions. Think of it like an experienced accountant who uses what they know about a vendor's industry, size, and service type to make smart categorization decisions.
Here's how it works in practice:
Your system encounters a new vendor "NewCloudTech Solutions" with no historical data:
{
"from": "invoices",
"where": {
"VendorName": "NewCloudTech Solutions",
"Amount": 2400,
"Description": "Monthly cloud infrastructure"
},
"predict": "GLCode"
}
Traditional ML: Would make a random guess because this vendor has never been seen before.
Instead of requiring manual configuration, Aito automatically leverages vendor properties to make intelligent predictions. If your vendor table includes properties like this:
// Vendor table entry for the new vendor
{
"VendorName": "NewCloudTech Solutions",
"Industry": "Technology",
"ServiceType": "Cloud Infrastructure",
"CompanySize": "Medium"
}
Aito automatically uses these properties to find similar vendors and their GL code patterns. The prediction query remains simple:
{
"from": "invoices",
"where": {
"VendorName": "NewCloudTech Solutions",
"Amount": 2400,
"Description": "Monthly cloud infrastructure",
"VendorIndustry": "Technology",
"VendorServiceType": "Cloud Infrastructure"
},
"predict": "GLCode"
}
Result: Aito automatically uses all fields from the where clause (VendorName, Amount, Description, VendorIndustry, VendorServiceType) to find similar patterns in historical data, achieving 95%+ accuracy even for completely new vendors.
Let's examine how these improvements transform high-volume invoice processing, using insights from our customer Posti's automation success:
Challenge: Bob, a new IT manager, joins the company. He has zero historical invoice approvals.
Traditional approach: All invoices default to a senior manager, creating bottlenecks.
Aito's automatic approach: Uses Bob's employee properties to make intelligent assignments. If your employee table has:
// Employee record for Bob
{
"Email": "bob@company.com",
"Role": "Manager",
"Department": "IT",
"ApprovalLimit": 10000,
"Seniority": "Mid-level"
}
The prediction query automatically leverages these properties:
{
"from": "invoices",
"where": {
"Department": "IT",
"Amount": 3500,
"InvoiceType": "Software License"
},
"predict": "Approver"
}
Result: Aito automatically uses all fields from the where clause (Department, Amount, InvoiceType) to find similar patterns in historical data. The system learns from how other IT managers with similar roles and approval limits have been assigned invoices, ensuring Bob gets appropriate assignments despite having no historical data.
Challenge: Holiday season brings unique expenses (catering, gifts, events) that appear infrequently.
Aito's approach: Automatically uses descriptive keywords and timing to find similar expense patterns:
{
"from": "invoices",
"where": {
"Description": "Holiday catering services",
"Month": "December",
"Amount": 1200,
"VendorCategory": "Food Service"
},
"predict": "GLCode"
}
Outcome: Aito automatically uses all the fields from the where clause (Description, Month, Amount, VendorCategory) to find similar patterns in historical data, matching this to similar event-related expenses from previous years and other catering services, achieving 99.2% accuracy on seasonal expenses compared to 60% with rule-based systems.
The June 2025 performance optimization specifically targets large-scale financial operations:
Before optimization: Processing 3,000 invoices took 15-20 minutes After optimization: Same workload completes in under 5 minutes
// Batch processing multiple predictions simultaneously
{
"queries": [
{
"from": "invoices",
"predict": "GLCode",
"where": {"InvoiceID": "INV-001"}
},
{
"from": "invoices",
"predict": "Approver",
"where": {"InvoiceID": "INV-001"}
},
{
"from": "invoices",
"predict": "PaymentTerms",
"where": {"InvoiceID": "INV-001"}
}
]
}
The new $aggregate
endpoint enables sophisticated financial analytics directly within your prediction workflows:
{
"from": "invoices",
"select": {
"Department": "Department",
"AvgAmount": {"$mean": "Amount"},
"TotalSpend": {"$sum": "Amount"},
"InvoiceCount": {"$count": "*"}
},
"where": {
"Date": {"$gte": "2025-01-01"}
},
"groupBy": ["Department"]
}
{
"from": "invoices",
"select": {
"PredictedGLCode": "GLCode",
"Confidence": {"$probability": "GLCode"}
},
"where": {
"VendorName": "TechCorp Solutions"
}
}
Here's how to implement contextual GL code prediction for your invoice processing:
{
"invoices": [
{
"InvoiceID": "INV-2025-001",
"VendorName": "Office Supplies Inc",
"Amount": 450.00,
"Description": "Printer paper and toner",
"Department": "Operations",
"GLCode": "6400-Office-Supplies",
"ApprovalRequired": true
}
]
}
{
"from": "invoices",
"where": {
"VendorName": "New Office Vendor",
"Description": "Desk supplies and equipment",
"VendorCategory": "Office Supplies",
"Amount": 450
},
"predict": "GLCode"
}
# Python SDK example
result = aito.predict(
from_table="invoices",
where={"VendorName": "Unknown Vendor", "Description": "Miscellaneous expense", "Amount": 150},
predict="GLCode"
)
if result.confidence > 0.85:
# Auto-assign GL code
process_automatically(result.prediction)
else:
# Route for manual review
queue_for_review(result.prediction, result.confidence)
The real power emerges when predicting multiple fields simultaneously. Aito automatically uses vendor and invoice properties to predict all relevant fields:
{
"from": "invoices",
"where": {
"VendorName": "CloudTech Solutions",
"Amount": 5000,
"Description": "Monthly SaaS subscription",
"VendorType": "Software",
"Department": "Engineering"
},
"predict": ["GLCode", "Approver", "PaymentTerms", "TaxCategory"]
}
Result: Aito automatically uses all the where clause fields (VendorName, Amount, Description, VendorType, Department) to find patterns across the historical data, achieving 98%+ accuracy across all predicted fields without manual configuration.
Based on implementations across our accounting-focused customers:
These prediction enhancements represent just the beginning. Here's what we're seeing in the accounting automation space:
Ready to transform your invoice processing with contextual predictions? Here's how to begin:
The future of accounting automation isn't just about speed—it's about intelligence that adapts, learns, and makes smart decisions even when facing the unknown.
Have questions about implementing contextual predictions for your accounting workflows? Reach out to our team - we're here to help you build the intelligent accounting platform your team deserves.
Back to blog listEpisto Oy
Putouskuja 6 a 2
01600 Vantaa
Finland
VAT ID FI34337429