Invoice Extraction
Subcontractor invoices arrive as PDFs. Manually re-typing vendor names, line items, and dollar amounts into your budget tracker is slow and error-prone. Baulit's Invoice Extraction reads PDF invoices, pulls out the key data, and lets you add the extracted line items directly as cost entries on your project — saving hours of data entry every month.
Requirements
- Pro or Enterprise subscription. AI features are not available on the Free tier.
- Anthropic API key. A valid key must be saved in Settings → AI Configuration. See BYOK Setup.
- PDF attachment. The invoice must already be uploaded to your project as a file attachment. See Files & Attachments for how to upload files.
Extracting an Invoice
What Gets Extracted
The AI extracts the following fields from the invoice:
| Field | Description |
|---|---|
| Vendor | The company name from the invoice header. |
| Invoice Number | The invoice or reference number for your records. |
| Invoice Date | The date the invoice was issued. |
| Due Date | Payment due date, if stated on the invoice. |
| Payment Terms | Net-30, Net-15, Due on Receipt, or whatever terms the invoice specifies. |
| Line Items | Individual charges with descriptions, quantities, unit prices, and totals. Each line item is mapped to a Baulit cost category. |
| Subtotal | Sum of line items before tax. |
| Tax | Sales tax or other tax amounts. |
| Total | Final invoice total including tax. |
The Split-Panel Review
The Invoice Extract modal is designed for side-by-side verification. The left panel shows your original PDF so you can cross-reference every extracted value against the source document.
On the right panel, each extracted line item appears with:
- A checkbox for selecting which items to import. All items are checked by default. Use the Select All toggle to check or uncheck everything at once.
- Description pulled from the invoice line item.
- Amount extracted from the invoice.
- Category mapping. The AI maps each line item to a Baulit cost category (Materials, Labor, Equipment, Subcontractor, Permits, etc.) based on the description. You can change the category if the AI mapped it incorrectly.
Task Assignment
Before adding the cost lines to your project, you need to assign them to a task. The modal includes a task picker that lets you select which task the cost entries belong to.
- Task-level attachments. If the invoice was uploaded to a specific task, that task is pre-selected in the picker.
- Project-level attachments. If the invoice was uploaded to the project's general files (not attached to a specific task), you need to select the appropriate task from the picker. Use the search field to find the right task quickly.
Assigning costs to the correct task keeps your budget tracking accurate and ensures that cost reports break down spending by task.
Adding Cost Lines
After adding the cost lines, they appear in the task's cost breakdown and are reflected in your project's budget reports.
Server-Side Validation
To protect your project data, Baulit applies several validations on the server before cost entries are created:
- Category allowlist. Only recognized Baulit cost categories are accepted. If the AI maps a line item to an invalid category, the server rejects it and prompts you to choose a valid one.
- Amount clamping. Amounts are capped at a maximum value to prevent data-entry errors or AI extraction glitches from creating wildly incorrect cost entries.
- Non-invoice detection. If the AI determines that the uploaded PDF is not an invoice (for example, a contract, a drawing, or a spec sheet), it tells you rather than producing garbage extraction results.
Best Practices
- Upload invoices as PDFs. The extraction works with text-based PDFs. Scanned paper invoices that have been converted to PDF with OCR generally work, but native digital PDFs produce the best results.
- One invoice per file. Upload each invoice as its own PDF file. Multi-invoice PDFs (where several invoices are combined into one document) may produce incomplete or mixed extraction results.
- Verify totals. After extraction, add up the selected line items manually and compare against the invoice total shown in the PDF. If they do not match, look for missing or duplicated line items.
- Assign to the right task. Take the extra second to confirm you are assigning costs to the correct task. Costs assigned to the wrong task will skew your per-task budget reports.
- Use for subcontractor invoices. This feature is most valuable for the invoices you receive regularly from subs and suppliers. A framing sub's progress billing, an electrical supply house invoice, a concrete delivery ticket — these are the documents that eat the most data-entry time on a residential project.
Usage and Costs
Each invoice extraction counts as one AI call against your monthly usage limits. The Anthropic API cost per call depends on the length of the extracted PDF text, but for a typical one-page subcontractor invoice, it is a fraction of a cent.