---
title: Publishing a Budget
description: How to publish a budget so signed-in users with the link can read
  it, what each kind of viewer sees, the rules that block publishing, where the
  published budget shows up, and how to take it back.
subtitle: Public budgets are read-only example budgets you publish for teaching.
sidebar:
  order: 80
  section: Sharing and community
canonical_html_url: https://eb.app/learn/public-budgets/
---

# Publishing a Budget

A *public budget* is a public, read-only view of one of your budgets. Signed-in users with the link can add it to their Budgets list and read it there. It exists for one purpose: showing other people an example budget. Coaches use it to walk students through a worked example. Teachers use it to seed a class with a structured demo. The numbers in a public budget are illustrative, not your real life.

This page covers how to publish, what each kind of viewer sees, the rules that block publishing, where the published budget shows up, how to unpublish, and how someone who saved your budget can drop it from their list. The one-to-one **Shared** mode (inviting specific people by email) is on a different page: [Sharing a Budget](https://eb.app/learn/sharing.md). The public profile page that lists every public budget you have shared is covered on [Your Public Profile](https://eb.app/learn/profile.md). Publishing requires a Premium subscription, described on the [Subscription](https://eb.app/learn/subscription.md) page. Specialized terms (*item*, *event*, *schedule*, *transaction*, *category*, *account*) are defined in [Concepts](https://eb.app/learn/concepts.md).

> The whole feature is for example budgets, not real-life ones. The simplest workflow: build a fresh budget specifically for teaching, with invented but realistic numbers. Publish that one. Keep your real, bank-linked budget private.

---

## How to publish

Open the [Budgets](https://eb.app/learn/budgets.md) list, select the budget you want to publish, and tap **Edit Budget** (the pencil icon) in the toolbar. The Edit Budget dialog opens. Find the **Access Level** selector and tap it. Three options appear:

- **Private**, the default. Only you can see it.
- **Shared**. Specific people you invite by email get the level you grant (View Only, Can Edit, or Owner). Covered on [Sharing a Budget](https://eb.app/learn/sharing.md).
- **Public**. Anyone with the link can read it. It also appears on your public profile.

Pick **Public**. A confirmation dialog titled **Make Budget Public** appears. The body explains that account names will be shown to viewers as generic types (Checking, Savings) and that bank merchant matching strings on items will be hidden, then asks you to confirm in plain English that you have the right to publish all the content and that none of it contains private information about other people. Tap **Make Public** to proceed. A success toast reads `Budget is now public`.

<!-- SCREENSHOT: Edit Budget dialog with the Access Level selector open. The dropdown shows three options: Private (selected), Shared, Public. -->

<!-- SCREENSHOT: Make Budget Public confirmation alert. Two paragraphs of body text: a privacy summary and an agreement clause. Two buttons at the bottom: Cancel and Make Public. -->

If anything is blocking the change, you see a different dialog or the option is hidden from the selector. The rules are below.

Once the budget is public, the sharing section grows a copy-link control. Tap it to copy the public URL onto your clipboard; a toast confirms `Link copied to clipboard`. Send the link however you would send any link.

> **Why is Public a separate state from Shared?** Sharing one-to-one by email is for collaborating with specific people on a real budget. Public is for letting strangers read an example. The privacy rules are stricter on a public budget (account names masked, bank merchant strings on items removed for everyone including you), and once a budget is public, you cannot also share it with specific people: the only roles are owner (you) and reader (everyone with the link).

---

## What viewers see, what they don't

A published budget is a deliberate, narrow window into the live data on your private budget. The window is the same for every viewer; the things behind it are stripped or masked.

What every viewer sees:

- The budget name, your username with an `@` prefix, the publish date, and a `Created with AI` badge if the budget was generated with Integrated AI.
- Item names, schedules, and planned amounts.
- Categories and the items inside each one.
- Manual transactions you typed: the description, amount, date, and type read exactly the way you saved them.
- Account balances, types, sort order, and icon. So a viewer can run the planner forward and see the same projected balance you do.
- Your applied theme and icon set.
- Live updates while you edit. See [Live updates while you teach](#live-updates-while-you-teach).

What is masked or stripped on a published budget:

- **Account names** are replaced with generic type labels. Where you typed `Coaching Demo Checking`, viewers see `Checking`. Where you typed `Demo Emergency Fund`, viewers see `Savings`. If you have more than one account of the same type, the labels are numbered in your sort order (`Savings 1`, `Savings 2`).
- **Account descriptions** are not sent to viewers. The description field on each account is omitted entirely.
- **The Bank Transaction Merchant Name field** on each item is removed everywhere on the budget while it is public, even from you. That field is the merchant string the AI matcher uses to associate bank transactions with planned items, and the legal terms on bank-imported data require it to be unreachable on a published budget. Unpublish the budget and the field returns.

What is never on a published budget at all:

- Bank-imported transactions, bank linkage, and Plaid identifiers. A budget that has ever held bank data cannot be made public in the first place. See [A budget that ever held bank data cannot be made public](#a-budget-that-ever-held-bank-data-cannot-be-made-public).
- Match history, AI usage, or anything tied to other people on the budget. Public budgets are single-owner only.
- Your email address. The only personal identifier on the public budget is your username.

> **Why this default? Account balances are part of the example.** The balance on each account is what makes a public budget runnable: a viewer who adds the budget can scroll forward in the planner and see the same projected balance you see. Stripping balances would reduce the budget to a shape, not a worked example. Stripping the account name and description hides the personal anchor without breaking the math.

---

## Live updates while you teach

When you edit a public budget while people who added it have it open on their screens, your edits appear shortly after. Drag an event to a new date, and viewers following along see the move. Add a transaction, and the running total updates on open screens. Rename an item, change a planned amount, mark an event paid: those changes are sent live to the people watching.

This is the moment public budgets earn their keep for live teaching. Run a webinar with the share link in the chat, ask everyone to open it on whatever device they have, and walk through the example on screen share. The viewers are not just watching a slide; they are watching the same data in their own app session.

A few details:

- **One-directional.** Viewers cannot edit, so the live channel only carries your changes outward.
- **Access-level changes are different.** If you switch the budget back to Private mid-session, viewers lose access immediately and the budget falls off their list. They will not see a banner explaining what happened.

---

## Where your public budget shows up

Two places: the share link and your public profile.

The share link lives on the Edit Budget dialog's sharing section. Tap the copy control to put it on your clipboard. The link is keyed by the budget itself (it ends in `/budgets/.../public`), so renaming your username later does not invalidate any link you have already sent.

Your public profile, at `/profiles/{your-username}`, lists every public budget you have published in its **Budgets** tab, alongside any themes and icon sets you have published. Visitors reach the profile by tapping your `@username` on a community card or by following a profile link you sent them. The page itself, the four Show toggles that control what is visible there, and what changes when you rename your username live on [Your Public Profile](https://eb.app/learn/profile.md).

> **Why this default? The share link is yours to send; the profile page is a destination others come to.** The share link goes out by hand to people you have a reason to teach. The profile page is for visitors who already found a theme or icon set you published and want to see what else you have shared. Both reach the same public budget, but the audiences and the surfaces are different, so the controls are too.

---

## Adding a public budget to your list

When someone opens your share link in a browser, they land on a preview card. The card shows the budget name, your username with an `@` prefix, the publish date, an optional `Created with AI` badge, and an **Add to My Budgets** button. The planner contents are not visible on the preview; planner data is only available after they add the budget.

If they are signed in but have never seen a public budget before, the card is preceded by the same one-page **Community Content** prompt described on [Discover](https://eb.app/learn/discover.md#the-community-content-prompt). Tapping **I Understand** acknowledges the prompt across every community surface in the app, and they continue to the card.

Tapping **Add to My Budgets** opens a confirmation (`Add Public Budget`, `Add "{budget name}" to your budget list? You'll be able to view this budget (read-only).`) with **Add Budget** and **Cancel** buttons. After they confirm, the budget joins their list and they are sent to the Budgets page.

If they are not signed in, tapping **Add to My Budgets** shows a `Login Required` alert and routes them through sign-in (the fastest path is **Sign in with Google**). After sign-in or sign-up, they return to the preview and can add the budget.

If the visitor is **you** (the owner), the card replaces the **Add to My Budgets** button with a `You own this budget` indicator and a **View My Budgets** button. If the visitor has **already added** the budget, the card shows `Already in your budgets` instead, with the same **View My Budgets** button. Either way, no second copy is created.

<!-- SCREENSHOT: Public budget preview page for a signed-in viewer who hasn't added it yet. Card shows budget name, @username, publish date, optional AI badge, and the Add to My Budgets button as the primary CTA. -->

---

## What people who added the budget can do

Once someone has added your public budget, it appears on their Budgets list like any other budget. Opening it lands them on the planner. The full read-only view includes:

- **Items, schedules, transactions, planned events, balances, and the running totals on the planner.** Most of what you built.
- **Account names shown as generic type labels.** As described above.
- **Transaction descriptions, dates, and amounts as you saved them.** A transaction you typed by hand reads exactly the way you wrote it.

They cannot edit anything. They cannot add items, transactions, or accounts. The app rejects every edit attempt for non-owners. If they want a copy they can change, they have to build their own budget; there is no "fork this budget" button. That is by design: when a student rebuilds the example themselves, they think through each line, which is the point of the lesson.

<!-- SCREENSHOT: Planner view of a public budget as seen by a viewer who added it. Item names, schedules, and amounts visible normally. Account column shows the masked label "Checking" rather than the owner's typed name. -->

### Removing a public budget from your list

If you have added someone else's public budget and want to drop it, open the budget's **Edit Budget** dialog. The sharing section is replaced by a **Leave Budget** button with the note `You can re-add this budget anytime from the public link.`. Tap it and the budget falls off your list immediately.

This is the deliberate path for non-owners. The toolbar on the [Budgets](https://eb.app/learn/budgets.md) list also has a Leave Budget action that does the same thing.

You can also leave by tapping the report flow described below, but reports are for content concerns, not for ordinary list management.

### Reporting a public budget

Every public budget preview card has a small **Report** button at the bottom. Tapping it replaces the card with the **Report Budget** form. Pick a reason from the list and confirm; a success toast reads `Budget reported. The owner has been blocked.`. Reporting blocks the budget's owner from inviting you in the future, and you are sent to your Budgets page.

The full block list and the rest of the privacy controls live on [Sharing a Budget](https://eb.app/learn/sharing.md#privacy-and-blocking).

---

## Outsiders

Without the link or your profile URL, your budget cannot be found from inside the app. There is no public-budgets browse list, no search, and no feed. [Discover](https://eb.app/learn/discover.md) does not include public budgets either; it is for community themes, icon sets, and individual icons only. The two ways someone reaches your budget are: you sent them the link, or they followed your username from one of your published themes or icon sets to your profile and tapped your budget there.

---

## Rules that block publishing

Five conditions block making a budget public. The dialog tells you which one applies.

### Premium subscription required

Publishing requires a Premium subscription. Free accounts can browse public budgets given a link, add them, and read them. Publishing your own requires Premium. The canonical Premium feature is **Community Publishing**, described on [Subscription](https://eb.app/learn/subscription.md#what-is-included-with-premium).

### Username required

Your account must have a username before you can publish. The username appears next to the budget on the preview card and is the path component of your profile URL. If you do not have one yet, the dialog title is `Username Required` and the body reads `To make a budget public, you need to create a username in your profile settings first.`. Tap **Create Username** to open the **Set Up Your Profile** dialog, pick a username, and come back to the Edit Budget dialog. Username editing mechanics live on [Your Account](https://eb.app/learn/account.md#profile-and-username).

### Only the owner can publish

If a budget is shared with you (you are an editor or viewer, not the owner), the access selector is read-only. Only the owner controls a budget's access level.

### Shared budgets must go through Private first

If your budget is currently in **Shared** mode (one-to-one with people you have invited), the **Public** option is hidden from the access selector. You cannot go directly from Shared to Public, because publishing means revoking everyone's edit access, and that step needs deliberate confirmation. Switch to **Private** first. When you do, the app shows a `Make Private?` confirmation that names the number of people whose access will be revoked: `This will immediately revoke access for 3 users currently sharing this budget. If you share again later, you will need to re-invite them.`. Confirm with **Make Private**, then pick **Public** on the now-private budget.

If you reach the Make Budget Public dialog from a not-yet-Shared state but per-person shares have somehow accumulated, the confirm button changes to **Revoke Access & Make Public** and the body explains how many shares will be revoked. Either way, the rule is the same: a public budget cannot also have direct shares.

> **Why consent matters.** A budget that other people have been editing contains their data too. Letting it go public without their explicit consent would publish their entries alongside yours. The hard step (`Make Private?` first, with a count of users) is what makes the consent deliberate.

### A budget that ever held bank data cannot be made public

If your budget has ever, at any point, contained data imported from a connected bank account through Plaid, it cannot be made public. Not now, not after you disconnect the bank, not ever. The flag that records this is set the first time bank data lands; it is never cleared.

When you try to make such a budget public, the access selector is disabled and a small note next to it reads `This budget contains bank data imported from Plaid and cannot be made public.`. If you tap the disabled control, an alert titled `Cannot Make Public` repeats: `This budget contains bank data imported from Plaid and cannot be made public due to legal restrictions.`.

<!-- SCREENSHOT: Edit Budget dialog with the Access Level selector disabled. A short warning note below the selector reads "This budget contains bank data imported from Plaid and cannot be made public." -->

This is a legal restriction, not a soft preference. The terms on bank-imported data prevent republishing it, however heavily it has been edited since. The app draws the line at "ever touched bank data" so the rule is a clear yes/no.

The recommended workflow for any teaching budget: start a fresh budget specifically for the lesson, set it up with manual items and invented starting balances, do not connect a bank, then publish that one. Your real, bank-linked budget keeps doing its real job; the demo budget is the version other people see. Bank linking lives on [Bank Linking](https://eb.app/learn/bank-linking.md).

---

## Going back to private

You can unpublish at any time. From the Budgets list, select the budget, tap **Edit Budget**, and switch the Access Level back to **Private**. A confirmation appears titled `Make Budget Private?`, with the body `This budget will no longer be publicly accessible. The public link will stop working and anyone who saved this budget from the public link will lose access.`. Tap **Make Private** to confirm. The success toast reads `Budget is now private`.

When you confirm, the public link stops working. Anyone who had added the budget loses it from their list immediately; the budget simply disappears for them. Your private budget is yours again, with all its data intact.

If you republish the same budget later, it gets a new clean slate. The list of people who had previously added the budget is not restored; they would need to add it again from the share link.

### When the publisher's account goes

If you delete your account while you are the only owner of a public budget, the whole budget is deleted (the same cascade described on [Your Account](https://eb.app/learn/account.md#deleting-your-account)). Anyone who had added the budget loses it.

If the budget was a shared budget that happened to be public (rare: a co-owned budget that you then published), deleting your account removes only your share. Co-owners keep the budget, and the public link keeps working under whichever owner is left. The publisher attribution on the preview card may be empty after this point, since the original publisher's user record is gone.

---

## Quick reference

What each viewer sees on a published budget:

| Viewer | Account names | Account description | Bank Transaction Merchant Name field | Edit access |
|---|---|---|---|---|
| You (owner) | Real names | Visible | Hidden everywhere on the budget while it's public | Full |
| Person who added the budget | Type labels (Checking, Savings, with numbering for duplicates) | Stripped | Hidden | Read-only |
| Person who opened the link, signed in, has not added yet | Preview only (name, owner username, publish date, optional AI badge) | n/a | Not visible | None until added |
| Person without the link | Cannot reach the budget | n/a | n/a | None |

What blocks publishing:

| Block | What you see | How to resolve |
|---|---|---|
| Free account | Premium upsell | Upgrade to Premium |
| No username | `Username Required` alert with **Create Username** button | Set a username, then publish |
| Not the owner | Access Level selector is read-only | Ask the owner to publish |
| Budget is in Shared mode | **Public** option hidden from the selector | Switch to **Private** first (revokes shares), then **Public** |
| Budget has Plaid lineage | Selector disabled with a Plaid warning note | Build a new budget without connecting a bank, publish that one |

---

## Behind the scenes

A few details the screen does not surface directly:

- **The preview card looks up your username live.** The `@username` on the share-link landing page is fetched at the moment the visitor opens the link, so it always reads as your current username, even if you have renamed it since publishing.
- **Public budgets are not on Discover.** [Discover](https://eb.app/learn/discover.md) ranks community themes, icon sets, and individual icons by likes; budgets are intentionally excluded because they are intended for direct sharing rather than browsing.
- **There is no "saved by N people" counter visible to you.** The only signal that anyone has added your budget is the like count on your profile. If you need attendance for a class, take it the way you would have anyway.
- **AI is not involved in publishing.** Making a budget public, adding a public budget, and viewing one consume zero credits. The `Created with AI` badge on the preview card flags only that the budget itself was originally generated with Integrated AI; it has no effect on publish or view.

---

## Related pages

- [Your Public Profile](https://eb.app/learn/profile.md): the page that lists every public budget you have published, the four Show toggles that control its visibility, and what happens when you rename your username.
- [Your Account](https://eb.app/learn/account.md): editing your username and what happens to your published work if you delete your account.
- [Sharing a Budget](https://eb.app/learn/sharing.md): the one-to-one Shared mode, Privacy & Blocking, and the rules that govern who can invite you.
- [Subscription](https://eb.app/learn/subscription.md): the Community Publishing premium feature and how the AI badge on a public budget relates to the credit pools.
- [Bank Linking](https://eb.app/learn/bank-linking.md): why a budget that ever held bank data cannot be made public.
- [Themes and Icons](https://eb.app/learn/themes.md): published themes and icon sets show up on the same profile page as your public budgets.
- [Discover](https://eb.app/learn/discover.md): public budgets are not browseable on Discover; this page explains why and where to find a public budget if you have only the publisher's username.

---

## About this document

This is a markdown mirror of [https://eb.app/learn/public-budgets/](https://eb.app/learn/public-budgets/).
The HTML version is the canonical form. This file exists so AI/LLM
tools can ingest the content without HTML parsing.
