description: Bank statement with account info, period, balances, transactions priority: 42 match: any: - text_patterns: - "(?i)statement\\s+of\\s+account" - "(?i)bank\\s+statement" - "(?i)account\\s+statement" - "(?i)transaction\\s+history" - text_patterns: - "(?i)opening\\s+balance" - "(?i)closing\\s+balance" - "(?i)statement\\s+period" - "(?i)account\\s*#?\\s*:?\\s*\\*{4,}" - structural: - has_monetary_columnar_layout: true - has_date_column: true page_count_hint: 1-10 profile_fields: account_number: type: string extraction: patterns: - "(?i)account\\s*(?:number|#|no)?\\s*:?,?\\s*(\\*?\\d[\\d\\*]{3,})" - "(?i)acct\\s*(?:#|:)?\\s*(\\*?\\d[\\d\\*]{3,})" fallback: null statement_period: type: string extraction: patterns: - "(?i)statement\\s+period\\s*:?.*?([A-Za-z]+\\s+[0-9]{1,2}.*?through.*?[A-Za-z]+\\s+[0-9]{1,2},?\\s+[0-9]{4})" - "(?i)period\\s*:?.*?([0-9]{1,2}[/-][0-9]{1,2}[/-][0-9]{2,4})\\s+(?:to|through|-)\\s+([0-9]{1,2}[/-][0-9]{1,2}[/-][0-9]{2,4})" fallback: null opening_balance: type: decimal extraction: patterns: - "(?i)opening\\s+balance\\s*:?.*?[\\$€£¥]?\\s*([0-9,]+\\.?[0-9]*)" - "(?i)beginning\\s+balance\\s*:?.*?[\\$€£¥]?\\s*([0-9,]+\\.?[0-9]*)" fallback: null closing_balance: type: decimal extraction: patterns: - "(?i)closing\\s+balance\\s*:?.*?[\\$€£¥]?\\s*([0-9,]+\\.?[0-9]*)" - "(?i)ending\\s+balance\\s*:?.*?[\\$€£¥]?\\s*([0-9,]+\\.?[0-9]*)" - "(?i)current\\s+balance\\s*:?.*?[\\$€£¥]?\\s*([0-9,]+\\.?[0-9]*)" fallback: null transactions: type: array extraction: table_region: "largest_table_or_central_body" schema: - name: date type: date required: true - name: description type: string required: true - name: amount type: decimal required: false - name: balance type: decimal required: false fallback: [] reading_order: line_dominant zone_filtering: exclude_headers_footers