Bank statement extraction

Extract statement transactions and balances while preserving sign and dates.

Step 01

Define and Align

Upload sample data, define your output schema, and provide feedback on the hardest cases.

Output schema
AmountNumber · optional

Signed transaction amount: debits are negative, credits are positive.

Posting dateDate · optional

The date the transaction posted, distinct from its purchase date. Use YYYY-MM-DD; not provided if unknown.

Transaction typeChoose one · optional

Direction of money movement.

  • debit
  • credit
  • null
Opening balanceNumber · optional

Balance at the beginning of the statement period.

Closing balanceNumber · optional

Balance at the end of the statement period.

app.sutro.sh/functions/bank-statement-extraction
Collecting feedback · 1/3
Extract statement transactions and balances while preserving sign and dates.
Example 1 of 3

Debit sign

Model input
Document excerpt
Bank statement

Statement row: 2026-10-02, Rent, Debit $1,200.

Model output
Amount
Posting date
Transaction type
Opening balance
Closing balance

Step 02

Model Sweep

Compare quality and cost on your examples, then choose a model or use Sutro’s default.

Compare models on expert agreement and cost. The interactive chart uses illustrative measurements.

Illustrative sweep · select Value or Best to use that model in your function.

Step 03

Deployment

Call Sutro Functions like any other software. Swap the model as soon as something more performant is released.

Selected modelWaiting for sweep results.

Real-time

import sutro as so

input_data = {
    "text": "Statement row: 2026-10-02, Rent, Debit $1,200."
}

result = so.run_function(
    "bank-statement-extraction",
    input_data,
)

Batch

import sutro as so

job_id = so.batch_run_function(
    name="bank-statement-extraction",
    data="bank_statement_extraction.csv",
)
results = so.await_job_completion(job_id)

Ready to get started?

Book time with the team

Join the self-serve waitlist

What are your bottlenecks? (Select any that apply)