Free tool · runs in your browser
Spreadsheet Builder for bills, subscriptions, and budgets
Type or paste your bills, subscriptions, income, and spending into a spreadsheet that uses DueBy's own column names. Download it as CSV or Excel and keep it, share it, or open it in DueBy with no column mapping.
- Nothing leaves your browser
- No account, no sign-up
- CSV and Excel, editable anywhere
- Converts Mint, YNAB, Monarch, Goodbudget, EveryDollar, Copilot, Quicken
The builder
Open it in DueBy
- 1
Download the CSV or Excel file. On iPhone and iPad it lands in Files; on a Mac, in Downloads.
- 2
Tap the file and choose Open in DueBy, or drop it onto the DueBy window or Dock icon on your Mac. Settings ▸ Data ▸ Import works too.
- 3
DueBy recognizes the column names, shows what it found, and adds the rows. Files from other apps get a quick column-matching step instead.
Blank templates
Prefer to start in Excel, Numbers, or Google Sheets? These templates have the right column names and dropdowns already in place. Fill them in, then open the file in DueBy.
Column names
Every column is one of these keys. Required columns are marked *. Dates are YYYY-MM-DD; amounts are plain numbers; true/false cells accept yes and no too.
Bills
Anything with a due date: rent, utilities, loans, insurance, taxes.
| Column | What goes in it | Example |
|---|---|---|
| name* | What the bill is called. | Electric |
| amount* | What is due each time. A plain number; $ and thousands separators are fine. | 124.10 |
| currency* | ISO code such as USD or EUR. Blank uses your default currency. | USD |
| due_date* | The next (or first) due day, as YYYY-MM-DD. | 2026-09-14 |
| repeat* | How often it is due: monthly, weekly, biweekly, yearly, every 3 months, once. Blank means monthly. | monthly |
| category | A category name; created if DueBy doesn't have it yet. | Utilities |
| autopay | true or false — whether it is paid automatically. | true |
| reminders | Days before the due day to remind, like 7d,3d,0d. Blank uses your default reminders. | 7d,3d,0d |
| payee | Who gets paid, when it differs from the name. | City Power |
| notes | Anything you want to remember about it. | Account 4411 |
| cancel_url | The page where you cancel or manage it. | https://www.netflix.com/cancelplan |
| shared | true when it belongs to the whole household. | false |
| set_aside_monthly | How much to set aside each month for an irregular bill. | 100 |
| amount_owed | For a loan or a debt: how much is still owed. DueBy shows when it's paid off and ends the payments there. | 12000 |
| owed_as_of | The day the amount owed was true. Blank means the day you import. | 2026-09-01 |
| interest_rate | The yearly interest rate in percent, like 6.9. Leave it blank for a debt without interest. | 6.9 |
| account_number | The account or reference number on the bill. | 4471-0928 |
| loan_kind | mortgage, auto, student, personal, home_equity, credit_card, pay_later, lease, medical, tax_plan, person, or other. | auto |
| last_payment | The loan's final payment (its maturity date). | 2030-08-01 |
| original_amount | What was borrowed at the start. | 18000 |
| rate_type | fixed or variable. | fixed |
| rate_changes | The day the rate can next change, or a fixed rate ends. | 2031-04-01 |
| balloon_date | The day a balloon payment (or a lease's buyout) is due. | 2031-04-01 |
| balloon_amount | The balloon's amount. Blank lets DueBy work it out. | 9500 |
| escrow | A mortgage payment's escrow for taxes and insurance. | 520 |
| mortgage_insurance | A mortgage payment's PMI or MIP. | 140 |
| credit_limit | A card's or a credit line's limit. | 10000 |
| promo_ends | The day a card's promotional rate ends. | 2027-04-01 |
| promo_rate | The promotional rate in percent, like 0. | 0 |
| account_group | The account group it belongs to, like Personal or Business; created if DueBy doesn't have it yet. Blank uses the group on view. | Personal |
Subscriptions
Anything that renews on its own: streaming, software, memberships.
| Column | What goes in it | Example |
|---|---|---|
| name* | The service, as it appears on your statement. | Netflix |
| price* | The current price per renewal. | 17.99 |
| currency* | ISO code such as USD or EUR. Blank uses your default currency. | USD |
| renews* | The next renewal day, as YYYY-MM-DD. | 2026-10-03 |
| repeat* | How often it renews: monthly, yearly, weekly. Blank means monthly. | monthly |
| category | A category name; created if DueBy doesn't have it yet. | Streaming |
| trial_ends | The last day of a free trial, if there is one. | 2026-09-03 |
| cancel_url | The page where you cancel or manage it. | https://www.netflix.com/cancelplan |
| price_history | Past prices as day:amount pairs separated by semicolons, oldest first. | 2024-01-01:15.49;2025-03-01:17.99 |
| shared | true when it belongs to the whole household. | false |
| autopay | true or false — whether it is paid automatically. | true |
| reminders | Days before the renewal to remind, like 7d,3d,0d. | 7d,3d,0d |
| notes | Anything you want to remember about it. | Account 4411 |
| account_group | The account group it belongs to, like Personal or Business; created if DueBy doesn't have it yet. Blank uses the group on view. | Personal |
Income
Paychecks and other money in, with when it arrives.
| Column | What goes in it | Example |
|---|---|---|
| source* | paycheck, gift, tips, winnings, refund, sale, bonus, or other. | paycheck |
| amount* | How much arrives each time. | 2100 |
| currency* | ISO code such as USD or EUR. Blank uses your default currency. | USD |
| date* | The next (or first) pay day, as YYYY-MM-DD. | 2026-09-05 |
| repeat | How often it arrives: weekly, biweekly, semimonthly, monthly, once. Blank means once. | biweekly |
| received | true when a one-off has already arrived. | false |
| note | Anything you want to remember about it. | Account 4411 |
| income_name | The employer or a label for this income. | Acme Corp |
| account_group | The account group it belongs to, like Personal or Business; created if DueBy doesn't have it yet. Blank uses the group on view. | Personal |
Categories
Your own groupings, with an optional monthly limit each.
| Column | What goes in it | Example |
|---|---|---|
| name* | The category's name; an existing category with the same name is updated. | Utilities |
| color | One of DueBy's category colors, such as yellow, green, blue, or gray. | yellow |
| symbol | An SF Symbol name for the category's icon. | bolt.fill |
| monthly_limit | The monthly budget for this category. | 400 |
| kind | fixed for bills that don't change, variable for everything else. | fixed |
| hidden | true to keep the category out of the sidebar and pickers. | false |
Transactions
Individual purchases, deposits, and transfers. They appear in Transactions.
| Column | What goes in it | Example |
|---|---|---|
| date* | The day of the transaction, as YYYY-MM-DD. | 2026-09-06 |
| amount* | How much was spent (or received). Negatives from other apps are read as expenses. | 63.27 |
| currency* | ISO code such as USD or EUR. Blank uses your default currency. | USD |
| category | A category name; created if DueBy doesn't have it yet. | Groceries |
| note | The merchant or a memo. | Trader Joe's |
| income | true when the row is money in, not an expense. | false |
| entry_kind | expense, income, transfer_out, transfer_in, goal_contribution, or balance. Blank lets income decide; DueBy's own export always fills it in. | expense |
| account_group | The account group it belongs to, like Personal or Business; created if DueBy doesn't have it yet. Blank uses the group on view. | Personal |
Goals
Savings goals, including the emergency fund.
| Column | What goes in it | Example |
|---|---|---|
| name* | The goal's name; an existing goal with the same name is updated. | Emergency Fund |
| target* | How much you are saving toward. | 7920 |
| currency* | ISO code such as USD or EUR. Blank uses your default currency. | USD |
| balance | How much is saved so far. | 1980 |
| monthly_contribution | How much you add each month. | 200 |
| emergency_fund | true for the emergency fund. | true |
| account_group | The account group it belongs to, like Personal or Business; created if DueBy doesn't have it yet. Blank uses the group on view. | Personal |
Payments
Past payments of a bill or subscription, one row per payment.
| Column | What goes in it | Example |
|---|---|---|
| bill* | The bill or subscription the payment belongs to, by name. It must already be in DueBy or in the same file. | Netflix |
| date* | The day it was paid, as YYYY-MM-DD. One row per payment; the same bill and day never import twice. | 2026-08-03 |
| amount* | How much was paid that day. | 17.99 |
| currency | ISO code such as USD or EUR. Blank uses the bill's currency. | USD |
| note | Anything about that payment. | Paid by card |
The same layout is what DueBy writes when you export all your data, so a file can go builder → app → export → spreadsheet and back.
Questions
- Is my data uploaded anywhere?
- No. The builder runs entirely in your browser. Drafts are kept in this browser's local storage so you can come back later, and Clear my data removes them. There is no account and no server on the other end.
- Do I need DueBy to use this?
- No. The CSV and Excel files are ordinary spreadsheets you can keep, print, or share. DueBy is the fastest way to turn them into reminders and a plan, but the files are yours either way.
- Can I bring my Mint, YNAB, Monarch, or Goodbudget data?
- Yes. Use Bring a file from another app, choose or paste the export, and confirm the column matches. Transaction exports land in Transactions; recurring charges in it are offered as bills and subscriptions when DueBy imports the file.
- Can I keep transfers out of spending?
- Yes. Add the entry_kind column to Transactions and use transfer_out or transfer_in for card payments and moves between your own accounts. DueBy lists them but counts them as neither spending nor income.
- Which date and number formats work?
- Dates are safest as YYYY-MM-DD, and that is what the builder writes. Pasted dates like 9/14/2026 or 14 Sep 2026 are converted; ambiguous ones like 3/4/2026 follow the order you pick above the table. Amounts can include currency symbols and thousands separators; they are cleaned up on export.
- What is the dueby_schema column?
- A marker column with the value 1. DueBy sees it and skips the column-matching step. You can delete it; the file still imports, DueBy just double-checks the columns with you.