page.writing
Notes from running a business.
Practical writing on the work: search and AI answers for the trades, and inventory, pricing, and margin for online stores. Written from running the operation.
AI Search
AI visibility tools: what the trackers do, and the free way
A new category of software promises to tell you whether ChatGPT, Gemini, and Google's AI answers mention your business. Some of it is good. Most small businesses do not need it yet. Here is what the trackers actually measure, who they are for, and the spreadsheet method that gets a single-location business the same answer for free.
Read the post
AI Search
AI visibility: the number your rankings report does not show
Your rankings report tells you where you sit in a list. It says nothing about whether you exist in the answer an AI writes when someone asks it for a roofer. That second thing is AI visibility, it is measured differently, and in Portland the businesses that have it are often not the ones on the map. Here is what it is, what it is made of, and how to check yours for free this afternoon.
Read the post
AI Search
GEO for contractors: the short version for every trade
Generative engine optimization is the work of being the business an AI names when someone asks it for a contractor. In Portland the businesses it names are often not the ones on Google's map. This is the short version for any trade, with links to the evidence for six trades and the parts that change from one trade to the next.
Read the post
AI Search
GEO for electricians: the AI ranked five companies by the price they publish
I told ChatGPT my lights went out in Lake Oswego and asked for a few electricians, and whether any of them say what a site visit costs. It came back with a table of five companies, a column for the visit fee, and a short list that put the two with the clearest and lowest published fee first. The company with no fee on its site came last. That is how the AI ranked electricians in this run, and here is the evidence.
Read the post
AI Search
GEO for gutter cleaners: the AI named three companies and read all three websites
I asked ChatGPT for a few gutter cleaners to get quotes from this weekend in Portland. It named three, and for each one it quoted the company's own website for the services, and for one of them the starting price. All three have a current site with a page for gutter cleaning. That is the whole lesson, and here is the evidence.
Read the post
AI Search
GEO for holiday light installers: Google named three companies and the AI named five others
Google's map for "holiday light installation portland" shows three installers. I asked ChatGPT who to call for the same job and it named five, with phone numbers and two published prices, and none of the five are on Google's map. For a trade with no license board, the AI built its whole answer from the installers' own websites. Here is the evidence and the steps.
Read the post
AI Search
GEO for HVAC companies: the midnight furnace call goes to whoever the AI can verify
Furnace repair near me ran 189,000 searches last October and 193,000 in January. Google's map for Portland shows three heating companies, all open 24 hours. The AI answers a different question: which company it can verify, at what fee, tonight. Here is what Google shows, what the AI reads before it names a heating company, and the steps for the season.
Read the post
AI Search
GEO for plumbers: how a Portland plumber gets named by the AI
Asked for the best plumber in Portland, ChatGPT named a company that is not in Google's three-pack, explained why, and then steered emergencies to someone else because of weekend hours. Generative engine optimization for a plumber is the work of being the company it names instead. Short version, with the Portland evidence and the plumbing-specific steps.
Read the post
AI Search
GEO for roofers: why the AI named a roofer that is not on the map
Google's map for "roofers portland" shows three companies. Ask ChatGPT for the best roofer in Portland and it names a fourth, with reasons, and cites the BBB, a review aggregator, and the state license board to back it up. Generative engine optimization for a roofer is the work of being that fourth name. Here is the evidence and the roofing-specific steps.
Read the post
AI Search
GEO vs SEO vs AEO: which one gets your business named
Search used to end in a list of links. More and more it ends in a written answer that names two or three businesses and stops. SEO gets you into the list. AEO gets you into the box above it. GEO gets you into the answer. Here is what each one means, what they share, and why the sites with the most to say are winning all three.
Read the post
AI Search
How to appear in Google AI Overviews as a contractor
Search "how much does a roof replacement cost in Portland" and Google answers before the links: a price range, a breakdown by roof size, and four sources it read to build it. Three of those sources are roofers. This is how the Overview chose them, what it means for a contractor's site, and the pages to write so the next one quotes you.
Read the post
AI Search
How to get ChatGPT to recommend your business
On September 6, 2026, I asked ChatGPT for the best roofer in Portland and the best plumber. Both times it named a business that is not in Google's three-pack, and both times it said why. The answers are instructions. Here is what it looked for, the week of work that gives it what it wants, and how to check that it worked.
Read the post
Online Store Growth
Custom inventory management software: when it's worth building
Most businesses that ask about custom inventory software should not build it. That's an odd thing to open with when I build them, but it's the honest starting point. Off-the-shelf inventory management is genuinely good now. If your workflow is standard, a product exists that handles it and it costs less than building. This is about the cases where that stops being true.
Read the post
Online Store Growth
Amazon IPI score: what it measures and how to raise it
If you're reading this, there's a decent chance Amazon has already restricted your FBA storage and you're trying to work out why. The short version: your Inventory Performance Index measures how efficiently you use FBA space, and Amazon uses it to decide how much space to give you. It is, functionally, Amazon grading your inventory health and charging you for a bad grade.
Read the post
Online Store Growth
GMROI: the retail metric that beats inventory turnover
Inventory turnover has a blind spot that costs money: it treats a 60% margin item and a 20% margin item as identical if they sell at the same rate. They are not identical. One is worth stocking and one is barely worth the shelf space, and turnover will never tell you which is which. GMROI does.
Read the post
Online Store Growth
Days inventory outstanding: formula, benchmarks, and what it misses
Days inventory outstanding is one of the few inventory metrics finance and operations both use, which means both groups are usually calculating it differently and neither knows. Finance wants the company-wide number for the cash conversion cycle. Operations needs to know whether to reorder a variant this week. Only one of those questions can be answered with it.
Read the post
Online Store Growth
SKU rationalization: how to cut the tail without cutting revenue
SKU rationalization usually goes like this: export a year of sales, sort by revenue, draw a line at the bottom 20%, cut everything below it. Six months later revenue is down more than the cut items were generating and nobody can explain why. A revenue-sorted list is the worst possible basis for the decision.
Read the post
Online Store Growth
Inventory aging report: what it should show and how to build one
Ask ten multi-channel sellers to pull an inventory aging report and you'll get ten spreadsheets that look the same: item number, quantity, days on hand, sorted descending. That's not a report, it's a list. It says what's old and nothing about what to do. An aging report earns its place when every row implies an action.
Read the post
Online Store Growth
How to spot dead stock before it's dead
Dead stock never announces itself. By the time a variant is obviously dead, the discount needed to move it has roughly doubled. Here's the method I use to catch it while a markdown still works, and you can run the first version of it in a spreadsheet this afternoon.
Read the post
Online Store Growth
Inventory turnover ratio: how to calculate it and what yours should be
Most sellers calculate inventory turnover once a year, at tax time, using the wrong formula, and then do nothing with the answer. That's a shame, because turnover is the single number that tells you whether your cash is working or sitting, and the company-wide figure is almost always useless on its own.
Read the post
Don't want to wait for the writing?
The tools on this site put these ideas to work. If your business needs one of its own, that's what I build.