Getting Started
BuildLedger Pro is a construction expense management app. It helps you track every rupee spent on your building project — from cement bags to contractor wages — in one organised place. Here's how to get in.
Logging In
The screen you land on first is phone sign-in — there's no separate "sign up" step for it. Enter your number, tap Send Code, then type the SMS code you receive and tap Verify & Sign In. If that phone number has never signed in before, BuildLedger creates your account automatically the moment the code is verified — otherwise it just logs you into your existing one. Prefer not to use your phone? Google, Facebook, and Email are all available as alternatives further down the same screen.
| Field | Description | Status |
|---|---|---|
| Country Code | Picked from a dropdown, defaults to your region | Required |
| Phone Number | The number that receives your SMS verification code | Required |
| Verification Code | The 6-digit code sent by SMS after tapping Send Code | Required |
Google & Facebook
Tap Continue with Google or Continue with Facebook below the phone field to sign in with one tap using the account already on your device. Just like phone sign-in, if it's your first time using that Google or Facebook account with BuildLedger, your account is created automatically — no separate registration form.
Signing in with Email
Tap Continue with Email for the familiar email-and-password flow. Enter your email address and password, tick Remember Me if you want the app to fill them in automatically next time, and tap Sign In. If you've forgotten your password, tap Forgot password? and you'll receive a reset link by email. Don't have an account yet? Tap Create one at the bottom of this screen — see below.
| Field | Description | Status |
|---|---|---|
| Email Address | The email you registered with | Required |
| Password | Your account password (case-sensitive) | Required |
| Remember Me | Saves your credentials so you don't have to type them each time | Optional |
Creating an Account
This step is only needed if you're signing in with email and don't have an account yet — phone, Google, and Facebook sign-in create your account for you the first time you use them, with nothing extra to fill in. From the email sign-in screen, tap Create one. You'll need to provide your full name, a unique email address, your phone number, a password, and confirm it once more. Once registered you'll be taken through workspace setup.
Biometric Lock (Fingerprint / Face ID)
For extra security, BuildLedger can lock itself whenever you leave the app. When you come back, it asks you to authenticate with your fingerprint or face before showing any data. You can turn this on or off anytime from Settings → Security.
- Tap Unlock on the lock screen to authenticate.
- If authentication fails (e.g. wet fingers), tap again to retry.
- Tap Turn off biometric lock to disable it completely — you'll just need to remember your app is accessible without a lock.
Workspaces
A Workspace is like your company's account — it holds all your projects, suppliers, contractors, and settings. When you log in for the first time, you'll be placed inside your workspace automatically. If your account has access to more than one workspace (e.g. your own company and a client's organisation), a Choose Workspace screen appears where you tap the one you want to enter.
You can rename your workspace or switch to another from Settings → Workspace. See the Settings section for details.
Dashboard
The Dashboard is the first screen you see after logging in. It gives you a bird's-eye view of your entire workspace — all projects combined — so you can instantly see your overall financial position without opening any individual project.
Summary Cards
| Card | What it shows |
|---|---|
| Total Projects | Count of every project in your workspace |
| Active Projects | Projects with a Planned or Active status |
| Total Expenses | Sum of all expenses across every project |
| Total Paid | How much has been paid out so far, across all projects |
| Pending | Outstanding amount still owed across all projects (shown in red — needs attention) |
| Suppliers | Quick shortcut to the Suppliers section |
Recent Projects
Shows your 5 most recent projects with their status. Tap any card to jump straight into that project. Pull down anywhere on the Dashboard to refresh all figures.
Pending Payments
This is one of the most useful Dashboard features. It shows up to 6 items from across all your projects that have outstanding money owed — these can be material purchases, labour work entries, or manual expenses. Tap any item to open a payment form, pre-filled with the exact amount still pending. After you record a payment, the card disappears from the list automatically.
Toolbar Buttons
Ask AI Assistant
Ask AI is a chat built into every project. Type — or speak — what you want done in plain language, and BuildLedger turns it into a ready-to-review form: a payment, a work entry, a new supplier. It never saves anything on its own — you always see the filled-in form first and submit it yourself.
What Ask AI Can Do
How It Works
- Type or say what you want — "pay Al-Hamid 30,000 for cement", "Ahmed worked 3 days this week on the roof", "how much does Rafiq owe me".
- BuildLedger works out which of the above this is, and — if it needs to match a name to an existing supplier or contractor — resolves it for you, even with slightly different spelling.
- The matching form appears inline in the chat, pre-filled. Every field is still editable before anything is saved.
- Review and submit. The confirmation appears in the same conversation, and if you asked for two things at once ("log the work and also pay for it from cash"), the second one opens right after.
Follow-ups Without Repeating Yourself
Ask AI remembers what you just discussed in the same conversation. After asking "how much does Rafiq owe", replying with just "pay 5000" is understood as a payment to Rafiq — you don't need to say his name again.
Voice Input
Tap the microphone instead of typing. With AI configured, your recording is transcribed and resolved into the same kind of pre-filled form as typed text, in one step. If your plan doesn't include AI, the mic still works — it just dictates into the text box using your phone's own speech recognition, and you send it manually like any typed message.
AI Usage & Limits
Every AI message, invoice scan, and voice recording counts against your plan's monthly AI allowance. See exactly where it's going under Settings → Plan → Usage:
| Usage line | What it counts |
|---|---|
| AI tokens this month | Combined usage from Ask AI messages and invoice scans, measured against your plan's monthly limit |
| Invoice scans this month | How many invoice photos/PDFs have been scanned this month |
| Voice transcriptions this month | How many voice messages have been sent to Ask AI this month |
Tools — Material Calculators
Six quick material-quantity calculators for common job-site estimates — Concrete, Drywall & Paint, Lumber & Framing, Roofing, Bricks & Masonry, and Steel/Rebar. Reachable from a tile on the Dashboard, and usable without opening or even having a project — handy for a quick estimate before you've created one.
Using a Calculator
Fill in the dimensions for the job and the calculator works out the quantities and materials needed, using standard job-site rules of thumb. Every length or height field accepts feet-inches directly in the same box — type 12'6", 10'9", or a plain decimal, whichever is easier.
From Calculation to Tracked Cost
Once a calculator has a result, tap Add to Material Purchase, pick a project, and the computed quantities carry straight into a material purchase — no re-typing the numbers by hand. This is what makes it more useful than a plain calculator app: the estimate becomes an actual tracked project cost in one more tap.
Bricks & Masonry — Room by Room
The most detailed of the six. Add each room in the job, and each room's four walls independently — set thickness, doors/windows, and mark when a wall is shared with a specific wall of another room so it's only counted once, not twice. A floor-plan sketch below the room list updates live as you build it out.
Projects
A Project is the heart of BuildLedger. Think of it as a folder for one construction job — a house, apartment block, plaza, or renovation. Every expense, payment, labour record, material purchase, and file is stored inside the project it belongs to. You can run multiple projects at the same time and switch between them freely.
Creating a New Project
Tap the + button (bottom-right corner of the Projects screen). Only workspace owners with an active plan can create projects. Fill in the details below:
| Field | What to enter | Status |
|---|---|---|
| Project Name | A clear name you'll recognise — e.g. "Riverside Apartments Block-A" or "Khan Villa Renovation" | Required |
| Description | Brief notes about the project scope, client name, or special instructions | Optional |
| Location | Site address — helps you find the project at a glance in the list | Optional |
| Start Date | When construction begins | Optional |
| Expected End Date | Planned completion date | Optional |
| Account Holder Role | Owner — you own the project and have hired a contractor (thekedar). Contractor — you are the contractor on this job. This choice controls which extra fields appear below. | Required |
| Contractor Name | Name of the main contractor / thekedar (only shown when role is Owner) | Optional* |
| Contractor Phone | Must be a valid phone number format. Only shown when role is Owner. | Optional* |
| Contractor Amount | The total amount agreed with the contractor. Must be greater than zero. | Optional* |
| Contractor Terms | Contract terms, payment schedule, or notes | Optional |
| Status | Current project state (see status options below) | Optional |
| Actual End Date | When the project actually finished — only available when editing an existing project | Optional |
| Backup Enabled | Switch on to enable automatic Google Drive backups for this project (plan-dependent) | Optional |
| Backup Frequency | How often to back up: Daily, Weekly, or Monthly. Required when Backup is switched on. | Optional* |
| Restore from Backup | When creating a brand-new project, choose an existing backup snapshot to populate it with previous data (plan-dependent) | Optional |
Project Status Options
Update the status as your project progresses. The status badge is shown on every project card so you can see at a glance which jobs are active.
Project Detail — Tabs
Tap a project to open it. Inside you'll see tabs along the top. Which tabs are visible depends on your plan and your access permissions for this project.
| Tab | What you'll find |
|---|---|
| Summary | A financial overview with 7 summary cards (Total Expenses, Total Paid, Pending, Material Total, Supplier Paid, Labour Generated, Labour Paid), a stage-by-stage cost breakdown, and project file attachments. |
| Stages | All construction stages and the works (tasks) within each stage. Add, edit, or view progress. |
| Expenses | Every expense logged on this project, with payment status filters and the ability to add/edit expenses. |
| Labour | Labour contracts, work entries, and payment history. |
| Materials | All material purchases linked to this project. |
| Files | Photos, scanned invoices, and PDF documents attached to the project. |
Project Actions (⋮ Menu)
Tap the ⋮ (three-dot) menu in the top-right corner of a project to access these actions:
- Edit Project — update the project name, dates, status, contractor details, or backup settings.
- Apply Default Stages — automatically creates a standard set of construction stages (Foundation, Brickwork, etc.) so you don't have to create them manually. This action can only be done once per project.
- Manage Users — add or remove team members and assign their role for this project. Only visible if you have
users.managepermission. - Backups — view backup history and manage Google Drive snapshots (plan-dependent).
- Set as Default / Remove Default — the ⭐ default project opens automatically every time you launch the app.
- Protect from Deletion — locks the project so it cannot be deleted accidentally. Only the workspace owner can toggle this.
- Delete Project — permanently deletes the project and all its data. Only available when the project is not protected. Owner only.
Project Toolbar Icons
These icons appear in the top bar of the project detail screen:
Stages & Works
Breaking a project into Stages helps you track costs phase by phase. For example: Foundation → Brickwork → Plastering → Roof → Finishing. Inside each stage you can create Works — the individual tasks that make up that stage. Linking expenses and labour to a specific stage or work gives you a precise picture of where your money is going.
Creating / Editing a Stage
| Field | What to enter | Status |
|---|---|---|
| Stage Name | A descriptive name — e.g. "Foundation Work", "Electrical Wiring", "Roof Slab" | Required |
| Description | Details about what this phase covers | Optional |
| Order No. | Controls the display order within the project. The app auto-fills the next available number — you can change it to re-order stages. | Required |
| Start Date | When this phase is planned to start | Optional |
| End Date | When this phase should be finished | Optional |
| Tags | Labels for filtering — e.g. "structural", "MEP". Type and press Enter to add each tag. | Optional |
Stage Detail Screen
Tap a stage to open it. You'll see:
- Summary cards — Works count, Total, Total Paid, Expenses Total, Labour Total, Labour Paid, Materials Total, Materials Paid.
- Works list — sorted by order number. Pinned works appear at the top. Each card shows estimated quantity, completed quantity, and the unit (e.g. sqft).
- Tags & Files — editable inline without opening the edit form.
Pin a Stage: Tap the pin icon to keep important stages at the top of the list. Your plan controls how many stages can be pinned per project.
Add Work (FAB button): You can add a new work item even after the stage is marked completed — doing so automatically re-opens the stage.
Creating / Editing a Work
A Work is a specific task within a stage — e.g. "Dig foundation trenches", "Pour concrete slab", "Install steel rebar". Expenses, labour, and materials can be linked to a work for granular cost tracking.
| Field | What to enter | Status |
|---|---|---|
| Work Name | A clear description of the task — e.g. "Dig foundation trenches", "Lay floor tiles" | Required |
| Description | Extra details about this task | Optional |
| Unit | How this work is measured — e.g. sqft, rft, pcs. Defaults to "sqft". | Required |
| Order No. | Display order within the stage. Auto-fills to the next number. | Required |
| Start Date | Planned start for this task | Optional |
| End Date | Planned completion for this task | Optional |
| Tags | Labels for filtering e.g. "critical", "subcontracted" | Optional |
Work Detail Screen
Tap a work to see everything linked to it:
- Summary grid — Total cost, Paid, Pending, and number of labour contracts.
- Labour Contracts — all contracts scoped to this work, with paid/pending totals.
- Other Expenses — manual expenses linked to this work.
- Material Purchases — all purchases linked to this work.
Add Payment button: When there is any outstanding amount, a blue "Add Payment" button appears. Tap it to see a list of everything owing — labour, expenses, or purchases — and go directly to the payment form for whichever item you want to pay.
Pin a Work: Pin up to 3 works per stage to keep the most important ones at the top.
Expenses
Expenses are manual cost entries — things like site overhead, transport, hired equipment, or any cost that doesn't come through the Materials or Labour modules. Every expense has a payment status that is calculated automatically as you record payments against it.
Expense Form Fields
Tap + inside a project's Expenses tab to add a new expense.
| Field | What to enter | Status |
|---|---|---|
| Stage | Which construction stage this expense belongs to. Completed stages are hidden. Changing stage will clear the Work selection. | Required |
| Work | The specific work item within the stage (appears after you select a stage). Completed works are hidden. | Required |
| Title | Short name for this expense — e.g. "Scaffolding Rental", "Generator Hire", "Site Office Rent" | Required |
| Total Amount | The full cost. Auto-calculated if you enter Quantity × Unit Price. You can also type the total directly. | Required |
| Expense Date | When the expense was incurred. Defaults to today. | Required |
| Quantity | Number of units — defaults to 1. E.g. "3" if you're renting 3 items. | Optional |
| Unit | Unit of measure — defaults to "piece". E.g. "days", "hours", "bags". | Optional |
| Unit Price | Price per unit. When you enter both Quantity and Unit Price, Total Amount is recalculated automatically. | Optional |
| Cost Type | Category for reporting — e.g. Materials, Labour, Equipment, Overheads. | Optional |
| Supplier | Link to a supplier in your list. Tap "+ Add" to create a new supplier inline without leaving this form. | Optional |
| Description | Longer explanation of what this expense covers | Optional |
| Notes | Any short remarks | Optional |
| Tags | Labels for filtering — e.g. "urgent", "verified", "disputed" | Optional |
Payment Status
You never manually set the payment status — it is always calculated from payments you record:
Recording a Payment
Open any expense and tap Add Payment. You can record partial payments — the status updates automatically after each one.
| Field | What to enter | Status |
|---|---|---|
| Amount | The amount being paid now. Cannot exceed the pending balance. | Required |
| Payment Date | When the payment was made. Defaults to today. | Required |
| Payment Method | Cash, Cheque, Bank Transfer, or Wallet (a wallet you have set up in the Wallets section) | Optional |
| Wallet Provider | Only appears when method is "Wallet" — e.g. JazzCash, Easypaisa, HBL | Optional |
| Reference Number | Cheque number, bank transaction ID, or any reference for your records | Optional |
| Notes | Any payment remarks | Optional |
Labour
The Labour module handles all worker and contractor payments. It works in layers: Contracts → Rates → Work Entries → Payments. You create a contract for a worker or team, set their rate, log the work they do each day, and then record payments against what's owed.
Labour Contracts
A Labour Contract is an agreement with one contractor or worker team for a specific scope of work on your project.
| Field | What to enter | Status |
|---|---|---|
| Contract Scope | Stage/Work — the contract covers a specific stage and/or work item. Project — the contract covers the entire project (forces rate type to Fixed Contract). | Required |
| Stage | Which stage this contract is for. Only shown when scope is Stage/Work. Completed stages are hidden. | Required* |
| Work | The specific work item within the stage. Only shown after a stage is selected. | Required* |
| Contractor | Search your contractor list and select one. Tap "+ Add" to create a new contractor on the spot. When you select a contractor, their default rate, rate type, unit, and tags are auto-filled. | Required |
| Contract Title | A clear name — e.g. "Brickwork — Ground Floor" or "Plastering — Ahmad & Sons" | Required |
| Rate Type | How labour cost is calculated — see Rate Types below | Required |
| Unit | Only shown for "Per Unit" rate type — what one unit of work is (e.g. "tile", "door", "brick") | Required* |
| Rate | The wage/rate amount. Only shown when creating a new contract (not editing). The rate pre-fills the first Rate entry for this contract. | Required* |
| Total Contract Amount | Only shown for Fixed Contract — the agreed lump-sum for the entire job | Required* |
| Description | Notes about the scope of work | Optional |
| Terms | Contract terms, payment schedule, or special conditions | Optional |
| Start Date / End Date | Planned duration of the contract | Optional |
| Tags | Labels for filtering. Auto-filled from the contractor's default tags. | Optional |
Rate Types Explained
Choose the rate type that matches how you've agreed to pay this contractor:
| Rate Type | How it works | Example |
|---|---|---|
| Daily Wage | Workers are paid per person per day. Work entries record the number of people and days worked. Cost = People × Days × Daily Rate. | 10 workers × 3 days × ₨ 1,200/day = ₨ 36,000 |
| Per Sqft | Workers are paid for each square foot of completed work. Cost = Sqft × Rate. | 2,000 sqft × ₨ 85/sqft = ₨ 1,70,000 |
| Per Unit | Workers are paid per unit of a custom measurement — per brick laid, per tile installed, per door fitted. You define the unit name. | 500 tiles × ₨ 25/tile = ₨ 12,500 |
| Fixed Contract | A single agreed lump-sum for the full scope. Work entries record progress but the cost is the fixed amount. | Plastering entire building = ₨ 4,50,000 total |
| Free | No monetary value — used for tracking work done without a formal payment agreement. | Family help, unpaid site manager visits |
Labour Contract Detail — Tabs
Tap a contract to open it. You'll see four tabs (hidden for Free contracts):
- Overview — contract summary, financial cards (Work Amount, Paid, Pending), tags, and file attachments.
- Rates — the rate history for this contract. Rates have effective dates so you can handle wage increases over time.
- Work Entries — a log of work done each day. Not shown for Fixed Contract rate type (just enter the payment directly).
- Payments — all payments made against this contract.
Labour Rates (Rate History)
Rates can change over time — for example when wages increase after a few months. Each rate has an "Effective From" date, so old work entries keep the rate that was active when they were recorded.
| Field | What to enter | Status |
|---|---|---|
| Rate | The new rate amount (per day / per sqft / per unit / contract total) | Required |
| Effective From | The date this new rate starts applying | Required |
| People Count | Default number of workers — pre-fills the people count on new work entries | Optional |
| Effective To | When this rate ends. Leave blank for open-ended (current) rate. | Optional |
| Notes | Reason for the rate change | Optional |
Work Entries — Logging Daily Work
A work entry records what was actually done on a specific day. The form changes based on the contract's rate type:
Daily Wage contracts
| Field | Description | Status |
|---|---|---|
| Work Date | Date the work was done. Defaults to today. The app finds the correct rate based on this date. | Required |
| People Count | How many workers were on site that day. Pre-filled from the rate's default people count. | Required |
| Days | How many days of work this entry covers (can be a decimal — e.g. 0.5 for half a day) | Required |
| Period From / To | Optional date range if the entry covers multiple days | Optional |
| Stage / Work | Links this entry to a specific stage/work for cost tracking | Optional |
| Notes | What was done that day | Optional |
Per Sqft / Per Unit contracts
You can enter work in two ways — switch between them with the toggle at the top of the form:
- Quantity mode — enter how many sqft / units were completed. Cost = Quantity × Rate.
- Amount mode — enter the agreed payment amount directly. The app shows the estimated quantity below (Amount ÷ Rate).
Fixed Contract entries
For Fixed Contracts, the form pre-fills the total contract amount. Work entries here track progress (how much of the fixed amount has been allocated) rather than calculating a new cost.
Recording a Labour Payment
On the Payments tab of a contract, tap Add Payment. The amount is pre-filled with the full pending balance — edit it if you're making a partial payment.
| Field | Description | Status |
|---|---|---|
| Amount | How much you're paying now. Pre-filled with the full pending amount. | Required |
| Payment Date | Defaults to today | Required |
| Payment Method | Cash, Bank Transfer, Cheque, or a linked Wallet | Optional |
| Wallet Provider | Shown when method is Wallet — e.g. JazzCash | Optional |
| Reference No | Bank transaction ID or cheque number | Optional |
| Notes | Any remarks | Optional |
Contractors Directory
The Contractors section (accessible from the main menu) is a workspace-wide list of all your workers and contractors. Unlike labour contracts (which are per-project), this gives you a single view of each person across every project they've worked on.
Tap a contractor to see their full history — every labour contract they hold, across all your projects. You can print or share a PDF contractor report from here.
| Field | What to enter | Status |
|---|---|---|
| Name | The contractor or worker's full name | Required |
| Phone | Contact number (format validated) | Optional |
| Default Rate Type | Pre-selects a rate type when you create new contracts for this contractor | Optional |
| Default Rate | Standard rate to auto-fill on new contracts | Optional |
| Notes | Any remarks — speciality, reliability, past history | Optional |
| Active | Inactive contractors are hidden from contract pickers — useful when a worker is no longer with you | Optional |
Materials
The Materials module handles everything related to building materials — from creating a catalogue of what you use, to getting quotes from suppliers, to recording actual purchases. The flow is: Materials Master → Quotations → Purchases.
Materials Master — Your Material Catalogue
Before you can purchase or quote a material, it must exist in the Materials Master — a shared catalogue for your entire workspace. Think of it as your standard list of all materials you use on any project.
| Field | What to enter | Status |
|---|---|---|
| Name | The material name — e.g. "OPC Cement 50kg", "TMT Steel Bars 12mm", "Ceramic Floor Tile 60×60" | Required |
| Unit | How this material is measured — e.g. bags, kg, cubic metre, sqft, pcs, rft. This unit appears everywhere the material is used. | Required |
| Category | Group materials for easier browsing — e.g. Concrete, Steel, Finishing, Plumbing, Electrical. You can create new categories on the spot. | Optional |
Material Quotations — Comparing Prices
Before buying, use Quotations to collect price quotes from different suppliers and compare them. You first create a Quotation Request (what you need), then suppliers respond with their quoted prices.
Quotation Request fields
| Field | Description | Status |
|---|---|---|
| Quotation Date | Date you're sending this request. Defaults to today. | Required |
| Stage / Work | Optionally scope this quotation to a specific stage or work | Optional |
| Quotation No | Your internal reference number | Optional |
| Needed Date | When you need delivery by | Optional |
| Items (repeating) | One row per material needed: select from Materials Master (or enter a name), quantity, and unit. Add as many items as needed. | Required |
| Notes | Special instructions or requirements | Optional |
Supplier Quote Response fields
Once a supplier responds, record their prices. The quotation's items are pre-loaded — you just enter the prices:
| Field | Description | Status |
|---|---|---|
| Supplier | Which supplier is providing this quote | Required |
| Quote Date | Date of the supplier's response | Required |
| Unit Price (per item) | The price each supplier is offering per unit for each item in the quotation | Required |
| Discount | Any discount offered — defaults to 0 | Optional |
| Transport | Transport/delivery charge — added to total | Optional |
| Other Charges | Any other charges — added to total | Optional |
| Valid Until | When this quote expires | Optional |
| Delivery Terms | Terms and conditions of delivery | Optional |
| Notes | Any remarks | Optional |
The system calculates a Total Preview: Subtotal − Discount + Transport + Other Charges. You can compare side-by-side across multiple suppliers to choose the best deal.
Material Purchases — Recording What You Bought
When you actually buy materials, record them here. Each purchase works like an invoice — you can list multiple materials in one purchase. A linked expense is automatically created for every purchase, so your project financial summary always stays up to date.
Purchase Header (applies to the whole purchase)
| Field | What to enter | Status |
|---|---|---|
| Stage | Which stage this purchase is for. Completed stages are hidden. | Required |
| Work | The specific work item within the stage | Required |
| Supplier | Who you bought from. Selecting a supplier automatically fills in unit prices for materials that have a rate set for this supplier (see Supplier Material Rates). Tap "+ Add" to create a new supplier on the spot. | Required |
| Purchase Date | Date of purchase. Defaults to today. | Required |
| Invoice No | The supplier's invoice/receipt number for your records | Optional |
Purchase Line Items (one row per material)
Add as many materials as are on the invoice. Each row is one item:
| Field | What to enter | Status |
|---|---|---|
| Material | Search and select from the Materials Master. When selected, the item name and unit are filled automatically. You can also skip this and just enter a name manually. | Optional |
| Item Name | Only needed if you don't select a catalogue material — type the material name manually | Required* |
| Quantity | How many units you bought | Required |
| Unit | Auto-filled from the material catalogue. Can be edited. | Required |
| Unit Price | Price per unit. Auto-filled from the supplier's material rate if one exists for today's date. The app does NOT overwrite a price you've already typed. | Required |
| Line Total | Calculated automatically: Quantity × Unit Price. Read-only. | Auto |
| Notes | Per-item remarks — e.g. "Grade A only" | Optional |
Purchase Footer (adjustments)
| Field | Description | Status |
|---|---|---|
| Discount | Any discount applied to the whole invoice. Subtracted from total. Defaults to 0. | Required |
| Transport | Delivery / transport charge. Added to total. Defaults to 0. | Required |
| Other Charges | Any other charges (e.g. handling, tax). Added to total. Defaults to 0. | Required |
| Notes | Purchase-level notes | Optional |
| Tags | Labels for filtering | Optional |
Suppliers
The Suppliers section is your address book for material vendors and shops. For each supplier you can track how much you've bought, how much you've paid, and exactly what you still owe them — all broken down by project.
Supplier Directory
Create a supplier record for every shop or vendor you buy from. Once created, you can link them to material purchases, expenses, and payments.
| Field | What to enter | Status |
|---|---|---|
| Supplier Name | The name of the shop or company — e.g. "Al-Hamid Building Materials" | Required |
| Phone | Contact number (format validated) | Optional |
| Contact Person | The name of your point of contact at this supplier | Optional |
| Address | Supplier's address | Optional |
| Opening Balance | If you already owe this supplier money when you start using BuildLedger, enter that amount here. This becomes the starting point for the ledger. | Required |
| Notes | Any remarks about this supplier | Optional |
| Active | On edit only — uncheck to mark inactive, hiding the supplier from purchase pickers | Optional |
Supplier Material Rates
You can store the price each supplier charges for specific materials. When you select a supplier while recording a purchase, BuildLedger automatically fills in the unit price from their rate — saving you time and preventing data entry errors.
Rates have effective dates, so price changes over time are all kept as history. When auto-filling, the app uses the rate that was active on the purchase date.
| Field | Description | Status |
|---|---|---|
| Material | Which material this rate applies to | Required |
| Rate per Unit | The price the supplier charges per unit | Required |
| Unit | Auto-filled from the material's default unit | Optional |
| Effective From | When this price became active. Defaults to today. | Required |
| Effective To | When this price expires. Leave blank for the current active rate. | Optional |
| Notes | Any remarks about this rate — e.g. "bulk discount" | Optional |
Supplier Payments
Record payments you make to a supplier. You can optionally allocate each payment to specific unpaid purchase invoices — this keeps your ledger accurate and shows exactly which bills have been cleared.
| Field | What to enter | Status |
|---|---|---|
| Project | Which project this payment is for. Auto-selected if you only have one project. | Required |
| Amount | The total amount you're paying today. Pre-filled if opened from a specific purchase. | Required |
| Payment Date | When the payment was made. Defaults to today. | Required |
| Payment Method | Cash, Cheque, Bank Transfer, or a linked Wallet | Optional |
| Wallet Provider | Shown when method is Wallet — e.g. JazzCash, HBL | Optional |
| Reference No | Bank transaction ID or cheque number | Optional |
| Notes | Any payment remarks | Optional |
| Purchase Allocations | Optionally assign parts of this payment to specific unpaid purchases. Tap Max next to any purchase to fill its full pending amount. The total allocated cannot exceed the payment amount. | Optional |
Supplier Ledger
The Supplier Ledger shows a complete transaction history with a specific supplier for a specific project — every purchase, every payment, and a running balance of what you still owe. Open it from the supplier's detail screen by tapping Ledger.
From the supplier's detail screen you can also navigate to: Purchases (all material purchases from this supplier), Expenses (all expenses linked to this supplier), and Material Rates.
Wallets
Wallets represent the money accounts you use to pay bills — a cash envelope on site, your HBL bank account, a JazzCash mobile account, or a contractor advance account. Every payment you record can be tied to a wallet so you always know exactly which account the money came from and what your current balance is.
Wallet Scope — Project, Global, or Private
Every wallet has a scope, set when you create it:
- Project — the original behaviour, tied to one or more specific projects. Only shows up as a payment option on the project(s) it's linked to.
- Global — workspace-wide. Available as a payment option on every project, without linking it anywhere.
- Private — workspace-wide, but visible only to you. Useful for a personal cash account you don't want the rest of the team to see or use.
A project's payment-method picker always shows that project's own wallets, plus every global wallet, plus your own private ones — so a shared or personal wallet is available everywhere it should be with no extra setup per project.
Go to Settings → Wallets to see all three at once — Global, Private, and a consolidated Project tab covering every project-scoped wallet you can reach, without opening each project individually.
Creating a Wallet
| Field | What to enter | Status |
|---|---|---|
| Name | A clear label — e.g. "Site Cash Box", "HBL Construction A/C", "JazzCash – Ahmad" | Required |
| Wallet Type | Cash — physical cash on hand. Bank — a bank account. Contractor — an advance paid to a contractor. Other — any other account type. | Required |
| Scope | Project, Global, or Private — see above. Set once at creation and can't be changed afterwards. | Required |
| Linked Projects | Only shown for Project scope — pick one or more projects this wallet belongs to | Required* |
| Opening Balance | How much money is in the wallet when you create it. Defaults to 0. | Optional |
| Notes | Account number, branch name, or any useful details | Optional |
| Exclude from Payments | Switch on to hide this wallet from the payment method dropdown — useful for internal tracking wallets you don't want to appear when recording expenses | Optional |
Transferring Between Wallets
Move money from one wallet to another — e.g. moving cash from the site box into a bank account. Transfers are allowed between any two wallets in your workspace, regardless of scope or which project they're linked to.
Adding or Removing Money (Wallet Transactions)
To deposit money into a wallet (e.g. you put ₨ 1,00,000 site cash in the envelope) or remove it (e.g. you withdrew cash), use the + (Add Transaction) button on the wallet's detail screen.
| Field | Description | Status |
|---|---|---|
| Direction | Add Money — deposits funds into the wallet (increases balance). Remove Money — takes funds out (decreases balance). | Required |
| Amount | How much to deposit or withdraw | Required |
| Date | When the transaction happened. Defaults to today. | Required |
| Reference No | Bank transfer reference, cheque number, etc. | Optional |
| Notes | What this deposit/withdrawal was for | Optional |
Wallet Detail Screen
Tap a wallet to see its full transaction history. Each row shows:
- A green ↑ for money coming in, or a red ↓ for money going out
- The label and date
- What entity the payment was linked to (e.g. a labour contract or supplier payment) — tap to navigate directly to that record
- The running balance after each transaction
Tap any manual transaction (one you added yourself, not one generated by a payment) to view or edit its details.
Reports
BuildLedger gives you two types of reports: Project Reports with detailed financial charts, and a Tag Report for cross-project analysis using labels you've applied to records.
Project Reports — 5-Tab Analytics
Access from the Reports icon on any project's toolbar, or from the Reports section in the main menu. Select a project to open its full analytics dashboard.
| Tab | What you see |
|---|---|
| Overview | Summary cards: Total Expenses, Paid, Pending, Material, Labour, Labour Paid. Pie chart showing Paid vs Pending proportion at a glance. |
| By Stage | Bar chart of expenses broken down per construction stage — immediately shows which stages are costing the most. Stages with zero expense are hidden. Includes a list below the chart. |
| By Cost Type | Pie chart breaking down spending by category (Materials, Labour, Equipment, etc.) with percentage labels. Includes a colour-coded legend list. |
| Suppliers & Labour | Two sections: your top suppliers (name, total purchases, amount paid) and all labour contracts (contractor name, total work amount, amount paid). |
| Pending | A list of everything that still has money outstanding — expense name, whether it's from Labour, Material, or Manual, the date, and the total amount. Empty when everything is paid. |
PDF Export
Every section of a project can be exported as a PDF. Use the Print 🖨 icon to open it on your device, or Share 📤 to send via WhatsApp, email, or any other app. You can configure how many pages print per sheet (1, 2, or 4) in Settings.
PDF reports are available for: Projects, Stages, Works, Expenses, Labour Contracts, Suppliers, Wallets, Contractors, and Tag Reports.
Tag Report — Cross-Project Search
The Tag Report lets you search across all your projects (or within one project) by the tags you've applied to records. This is powerful for situations like: "show me everything tagged 'disputed'" or "find all costs tagged 'Phase-1'".
- Tap the 🏷 Tag icon on the Dashboard toolbar, or on any project's toolbar.
- Type a tag name in the search box — matching tags appear as buttons below.
- Tap one or more tags to select them. The report appears immediately.
- The report shows: an overall financial summary (Total, Paid, Pending, Material, Labour, Works quantities), plus sections for Expenses, Materials, Labour, and Works that carry those tags.
- Tap any item in the report to navigate directly to that record.
When 2 or more tags are selected, a per-tag breakdown row also appears at the top so you can compare each tag's totals side by side. The Print/Share PDF button appears once at least one tag is selected.
File Attachments
Attach photos, scanned invoices, drawings, and PDFs to keep all your project documents in one place alongside the financial data they relate to. Files are stored in the cloud and accessible from any device.
Where you can attach files
- Project level — visible on the project Summary tab and the Files tab. Good for site photos, contract documents, drawings.
- Stages and Works — attach progress photos or drawings to specific stages/works.
- Expenses — attach receipts or proof of payment.
- Material Purchases — attach the supplier invoice or delivery note.
- Labour Contracts — attach the signed contract document or progress photos.
Supported File Types
- Images — JPG, PNG. Open in a full-screen zoomable viewer inside the app.
- PDFs — open in an inline PDF viewer with page navigation.
- Other files (video, audio, Word, Excel, ZIP, etc.) — show a preview-unavailable message with an "Open Externally" button to open in a compatible app on your device.
File deletion requires the files.manage permission and is permanent — there is no recycle bin.
Tags
Tags are labels you apply to any record — stages, works, expenses, labour contracts, material purchases — to make them easy to find and group later. Think of them like sticky-note labels on a paper file.
Examples of useful tags: urgent, verified, disputed, Phase-1, client-approved, pending-approval.
Adding Tags
Tags can be added when creating or editing any record. On a record's detail screen, you can also edit tags inline without entering the edit form — just tap the tags area, type a new tag and press Enter, or tap the × on an existing tag to remove it. This works even on completed (locked) records.
Using Tags to Filter
- Each list screen (Expenses, Labour, Materials) lets you filter by tag to quickly find all records with a specific label.
- Use the Tag Report (the 🏷 icon on the Dashboard or project toolbar) for a full financial breakdown by tag — see the Reports section for details.
Access Control
BuildLedger supports multiple users on the same project. The owner can invite team members and control exactly what each person is allowed to see and do. This is useful for giving site supervisors access to log expenses without letting them see financial totals, or giving a client read-only visibility.
Adding a Team Member
- Open the project → go to the Access tab (lock icon).
- Tap Add Member and enter their email address (they must have a BuildLedger account).
- Select the permissions you want them to have (see the grid below).
- Tap Save. They will see the project in their workspace.
Permissions Grid
Each permission can be switched on or off individually per user. The Owner always has all permissions and cannot be restricted.
Changing or Removing a Member
Tap a team member's name in the Access tab to edit their permissions or remove them from the project. Removing a member does not delete any records they created — all their expenses, entries, and payments remain intact.
Backup & Restore
BuildLedger can automatically back up your entire workspace to your Google Drive. Your data includes all projects, expenses, labour records, materials, suppliers, wallets, files, and settings. If you switch phones, reinstall the app, or your phone is lost or stolen, you can restore everything in seconds.
Setting Up Automatic Backup
- Go to Settings → Backup & Restore.
- Tap Connect Google Drive and sign in with your Google account. BuildLedger only requests permission to access its own backup folder — not your entire Drive.
- Choose a backup frequency: Daily, Weekly, or Monthly.
- Toggle Auto-Backup to On. A backup will run automatically in the background at your chosen interval.
Restoring from a Backup
- On a new device (or after reinstalling), open BuildLedger and log in to your account.
- When creating a new workspace (or from Settings → Backup & Restore), tap Restore from Google Drive.
- Sign in to the same Google account you used for backup.
- BuildLedger lists your available backups with timestamps. Select the most recent one.
- Tap Restore. All your data will be downloaded and imported — this may take a minute depending on the size of your workspace.
Settings
Access Settings from the bottom navigation bar (gear icon). All preferences are saved automatically.
Workspace
The top card shows your current workspace name and your account email. From here you can:
- Rename Workspace — change the name shown in the workspace switcher and on PDF headers.
- Switch Workspace — if you manage multiple construction companies or projects under different workspaces, switch here without logging out.
- Create New Workspace — start a completely separate workspace (separate projects, data, and billing).
Branding
Personalise your PDF reports with your company identity:
| Field | Description |
|---|---|
| Company Name | Appears as the header on all exported PDF reports |
| Company Logo | Upload your logo (PNG or JPG) — shown at the top-left of PDFs |
| Primary Color | Accent colour used on PDF charts and table headers |
| Footer Text | Custom text shown at the bottom of every PDF page (e.g. company address, phone number) |
Language & Display
- Language — select your preferred app language from the dropdown. Changes take effect immediately without a restart.
- PDF Print Layout — choose how many pages print on a single sheet when exporting PDFs: 1 (full page, best readability), 2 (two pages side by side), or 4 (four mini pages per sheet, most paper-efficient).
Security — Biometric Lock
Enable the Biometric Lock toggle to require fingerprint or Face ID whenever BuildLedger is opened or brought back from the background. The app re-locks after 30 seconds in background. This protects sensitive financial data if your phone is left unlocked.
AI Settings
BuildLedger can use AI to automatically scan a photo of a supplier invoice and fill in all the line items, quantities, and prices for you — saving several minutes of manual data entry per invoice.
| Field | Description | Status |
|---|---|---|
| AI Provider | Choose OpenAI (GPT-4o) or Anthropic (Claude). Both are equally capable for invoice scanning. | Required |
| API Key | Your personal API key from OpenAI or Anthropic. Keys are stored only on your device and never sent to BuildLedger servers. | Required |
Once configured, the 📷 Scan Invoice button appears on the Material Purchase form. Point your camera at the invoice and BuildLedger reads all line items automatically.
Plan & Billing
Tap Plan to view your current subscription tier, usage limits, and upgrade options. BuildLedger offers a free tier and paid plans with higher project limits, more team members, and advanced features.
Support
The Support option opens a direct chat or email to the BuildLedger support team. Include your workspace name and a description of the issue for the fastest resolution.
Logout
Tap Logout at the bottom of Settings to sign out of your account. Your data is always safely stored in the cloud — log back in on any device to access it.
Offline Mode
BuildLedger works without an internet connection. You can log expenses, add work entries, record payments, and navigate all your project data even in areas with no signal — a common situation on remote construction sites.
What works offline
- Viewing all projects, stages, expenses, labour, materials, suppliers, and wallets
- Creating and editing expenses, work entries, labour payments, and material purchases
- Adding notes, tags, and updating record status
- Viewing previously loaded reports and financial summaries
What requires internet
- Uploading file attachments (photos/PDFs are queued and uploaded when you reconnect)
- Inviting new team members or changing access permissions
- Backup and restore to Google Drive
- AI invoice scanning
- Syncing changes made on another device
How sync works
When your connection is restored, BuildLedger automatically syncs all pending changes in the background. You'll see a subtle sync indicator while this is happening. If a conflict is detected (the same record was changed on two devices while offline), BuildLedger keeps the most recent change and flags it for your review.
Quick Reference
Required vs Optional at a Glance
| Screen | Required Fields | Key Optionals |
|---|---|---|
| Project | Name | Client, Location, Budget, Tags |
| Stage | Name, Order No | Budget, Tags |
| Work | Name, Unit, Order No | Quantity, Budget, Tags |
| Expense | Name, Stage, Work, Amount, Date, Cost Type | Supplier, Wallet, Notes, Tags |
| Labour Contract | Contractor, Scope (Stage+Work or Project), Rate Type | Rate, Tags, Files |
| Labour Work Entry | Date, + rate-type fields (People+Days / Qty / Amount) | Period From/To, Notes, Tags |
| Material Purchase | Supplier, Stage, Work, at least 1 item (Material + Qty + Price), Date | Invoice No, Discount, Transport, Other Charges |
| Supplier | Name, Opening Balance | Contact Person, Phone, Address, Notes |
| Supplier Material Rate | Material, Rate per Unit, Effective From | Effective To, Notes |
| Wallet | Name, Type | Opening Balance, Notes, Exclude from Payments |
| Wallet Transaction | Direction, Amount, Date | Reference No, Notes |
Status Meanings
Cost Types
Cost types categorise your expenses for reporting. Available types: Material, Labour, Equipment, Professional Fees, Utilities, Permits, Site Overhead, Transportation, Other.
Labour Rate Types Explained
| Rate Type | How payment is calculated | Best used for |
|---|---|---|
| Daily Wage | People × Days × Daily Rate | General labourers, daily hires |
| Per Sqft | Quantity (sqft) × Rate per sqft, or direct Amount entry | Plastering, tiling, flooring, painting |
| Per Unit | Quantity × Rate per unit, or direct Amount entry | Bricklaying, door/window installation |
| Fixed Contract | Pre-agreed total contract amount (pre-filled from contract) | Turnkey contractors for a full stage |
| Free | Manual amount entry per work entry | Miscellaneous or non-standard payments |
