My Business Brain / Job 1 of 9

Offers

Write one offer with a starting-at price, a price range, or a real job and what it cost. The offer decides what the ads, the page, and the follow-up say.

For contractors and agency owners10 principles8 playbook steps

An offer is what a homeowner gets, what it costs, and what they do next. Every ad, landing page, and follow-up call in this playbook points back to it. Write it down first, and change it only on purpose.

Every job also follows the 12 ground rules.

How to use this page: read the principles, or copy the starter prompt into ChatGPT or Claude. Other ways

Principles

  1. Give the offer a real price, as a starting-at price or a price range.

    Why
    A homeowner wants an idea of the cost before they give out a phone number. A home-service job costs a different amount on every home, because the cost depends on the size of the home, how steep the roof is, how hard the job is, and the materials. A starting-at price or a likely range is honest, and it screens out people who cannot afford the work.
    How to apply
    Use one of three models. One: a starting-at price for a defined job on a typical home, such as full roof replacements starting at $X, where $X is the business's real starting price, with the final price confirmed in person after the roof is measured. Two: a price report, where the homeowner answers a few questions or enters their address and gets a likely price range for their own home by text or email, for example from satellite roof measurements, and the price is confirmed in person. Three: a price report framed honestly, such as no salesperson in your home for this step, just a price, and then we confirm it in person before your final price. Never offer a fake discount, and never make a free estimate the whole offer.

    GoodFull roof replacements starting at $X on a typical home. Your final price depends on the size of your roof, and we confirm it with you in person.

    BadEvery new roof costs the same, whatever the size, plus a free estimate. The price falls apart the moment someone measures a larger or steeper roof, and every competitor already offers a free estimate.

  2. Show a real finished job and what that job cost.

    Why
    A real job is proof the business does the work, and its price is an anchor for a similar home. It sets expectations without promising a flat rate. Homeowners compare the house in the ad with their own house and judge whether theirs is bigger, smaller, or harder.
    How to apply
    Pick a recent real job. Name the house type and size, the town or area, the exact work and materials, and what that job cost. Say plainly that their price depends on their home and is confirmed in person. Get the homeowner's written permission to use the photos and the town. Use only real jobs with real photos and real prices. Never invent a job, a photo, or a price, never round a price down to look better, and never borrow another company's photos. Swap in newer jobs as they finish.

    GoodThis 2,400-square-foot ranch in [town] got a full tear-off and new architectural shingles for $X. Your price depends on your home, and we confirm it in person.

    BadA roof photo copied from another company's website, with a price rounded down to look cheaper. The job never happened, and a homeowner who finds the real photo stops trusting every ad.

  3. Write the offer in one sentence before anyone makes an ad.

    Why
    Writers and designers who guess the offer make ads that promise something the page does not. When the ad and the page disagree, the homeowner leaves.
    How to apply
    Write who it is for, what they get, the starting price or how the price range is made, how the final price is confirmed, and the next step in one sentence. Save it with the date where every writer, designer, and AI tool can read it.

    GoodHomeowners in our zip codes answer a few questions, get a likely price range for new windows in their own home by text, and then we confirm the price in person.

    BadRoofing special with the best prices in town. Nobody can tell what is for sale or what to do next.

  4. Build the offer from the live landing page, not from an old winning ad.

    Why
    Landing pages change. An old headline can describe a price or a promise the business no longer offers.
    How to apply
    Open the page the ads will send people to. Write down what it promises and what happens after the form. If the page and the offer disagree, fix one of them before you make ads.

    GoodThe writer opens the page, sees that it now sends a price range by text, and drops the old starting price from the drafts.

    BadThe writer copies last spring's winning headline, which names a starting price the page no longer shows.

  5. Run one offer per campaign.

    Why
    Two offers in one campaign split the budget and make the results impossible to read. Ads for one offer also send people to the wrong page.
    How to apply
    Give each offer its own campaign, its own ads, and its own landing page. A seasonal promotion gets a new campaign and leaves the everyday campaign alone.

    GoodA window company runs its price report in one campaign and its fall promotion in a second campaign with its own page.

    BadThe fall promotion ads go into the everyday campaign and send people to the everyday page.

  6. List the words the ads may use and the words they may not.

    Why
    A short word list keeps every writer and every AI tool on the same promise. It stops one ad from promising a starting price while another promises a price by text.
    How to apply
    Write three to six phrases that describe this offer. Then write the phrases that belong to a different offer, and ban them. Say no salesperson in your home only when the price really reaches the homeowner before any visit.

    GoodFor a starting-at siding offer. Allowed: starting at, new siding, typical home. Banned: price by text, no salesperson in your home, because the price is confirmed at a visit.

    BadThere is no list, so one ad says nobody will come to your home, and the page books a visit to give the price.

  7. Use only claims the business owner confirmed.

    Why
    A made-up claim gets the ad rejected, gets the business in trouble, or loses the lead the moment the homeowner calls. Trust is the whole sale.
    How to apply
    Ask the owner to confirm each warranty, certification, discount, and guarantee in writing. Put the confirmed claims on the offer sheet. Leave every other claim out.

    GoodThe ad mentions the manufacturer warranty, because the owner confirmed in writing that the shingles come with it.

    BadThe ad says lifetime guarantee because it sounds strong. Nobody asked the owner.

  8. Keep financing out of the Meta ads.

    Why
    Meta treats ads about loans and payment plans as a special ad category, which limits who can see them. It rejects ads that mention financing without that category.
    How to apply
    Leave out no payments, monthly payments, interest rates, and loans. If the business offers financing, explain it on the landing page or on the phone.

    GoodThe ad names the starting price of a bath remodel. A line on the landing page says financing is available.

    BadThe ad says no money down and low monthly payments, and Meta rejects it.

  9. Set the target cost per lead together with the offer.

    Why
    Every ad is judged against the target cost per lead later. A campaign that launches without one gets judged on feelings.
    How to apply
    Start from the average sale and how many leads the business turns into sales. Pick the most the business can pay for a lead and still make a good profit. A price report usually gets cheaper leads than a starting-at offer, and fewer of them book, so set a target for each offer. Write the target and the math next to the offer.

    GoodA bath remodeler closes about one lead in ten, so the target is set where ten leads cost well under the profit from one remodel.

    BadThe campaign launches with no target, and the owner decides each week whether the ads feel expensive.

  10. Change the offer only on purpose, and update everything that depends on it.

    Why
    When the offer changes and the ads do not, the ads promise something the page no longer delivers.
    How to apply
    When the price or the page changes, update the offer sheet first. Then pause or rewrite every ad that names the old offer.

    GoodThe starting price goes up in spring. The offer sheet changes the same day, and every ad that named the old starting price is paused.

    BadThe page shows a new starting price for a month while the ads still promise the old one.

Agent playbook

Steps an AI agent can run in order. Each step names what it needs and what it hands to the next step.

  1. Collect the facts about the business.
    Inputs
    The service, the service area as a list of zip codes, how the business prices the job, what makes the price go up, the claims the owner confirmed in writing, and any recent real jobs with their size, scope, materials, cost, photos, and the homeowner's permission.
    Output
    A fact list. Anything missing is marked unknown, with a question for the owner.
  2. Read the landing page.
    Inputs
    The landing page the ads will use.
    Output
    What the page promises, what the form asks, and what happens after the form.
  3. Pick the offer model.
    Inputs
    The fact list and the landing page notes.
    Output
    One model. A starting-at price for a defined job on a typical home, a price report that sends a likely range for the homeowner's own home by text or email, or a price report with no salesperson in the home for that step. In every model the final price is confirmed in person. A real finished job and what it cost can go with any model, if the homeowner gave permission.
  4. Write the offer in one sentence.
    Inputs
    The model, the fact list, and the landing page notes.
    Output
    One sentence that names who it is for, what they get, the starting price or how the range is made, how the final price is confirmed, and the next step.
  5. Write the allowed and banned phrases.
    Inputs
    The offer sentence.
    Output
    Three to six allowed phrases and a list of banned phrases.
  6. List the confirmed claims.
    Inputs
    The owner's written confirmations.
    Output
    The claims the ads may make. Every other claim is banned.
  7. Set the target cost per lead.
    Inputs
    The average sale, the share of leads that become sales, and the profit on one sale.
    Output
    One target cost per lead, with the math written out.
  8. Check the offer sheet against the ground rules.
    Inputs
    The draft offer sheet and the ground rules.
    Output
    A finished offer sheet with today's date, ready for writers and designers. It never promises the same price on every home for a job that varies. It has no fake discount, and a free estimate is never the whole offer.

Final output

  • The offer in one sentence
  • The offer model
  • The starting price, or how the price range is made
  • The service area as zip codes
  • Allowed phrases and banned phrases
  • Confirmed claims
  • Real jobs the ads may show, each with the house, the size, the town, the work, the materials, the cost, the photos, and the permission
  • The target cost per lead and its math
  • The landing page and the date
Starter prompt

Read https://byminyona.com/brain/playbook.md first and follow its Offers and Ad Copy rules and its ground rules. Create a roofing offer and 5 Meta ads for <city>. Use one of the three offer models in the Offers job: a starting-at price, a price report, or a price report with no salesperson in the home for that step. Pick the model that matches how the business really prices. A recent real job it can show is <house type and size, town, exact work and materials, what that job cost, the photos, and whether the homeowner gave permission, or none>. Its real starting price for a full roof replacement on a typical home is <starting price>, it <can or cannot> text a price range from satellite roof measurements, and it serves these zip codes: <zip codes>.

If your AI cannot open links, paste this page's principles into the chat with the prompt. You can also paste the whole playbook or download AGENTS.md.

Next job: Ad Copy