The competitive analysis my model writes is wrong. Here is why I still ship it.
Every PM I know is fighting the blank page. The model gives me a wrong page in ninety seconds. That is a better starting position, and I can defend why.
Not long ago I asked a model to write a competitive analysis for a certification track. Three vendors, four dimensions, one recommendation. Ninety seconds later I had a document that was confidently wrong about two of the vendors, subtly wrong about the third, and right about the shape of the market in a way I would have taken half a day to arrive at on my own. I edited it for twenty minutes and shipped it.
The team lead read it, pushed back on two things, agreed with the framing, and we made a call by Thursday. If I had opened a blank doc that Monday morning, we would have been debating scope on Friday and I would still be alone in a tab called competitors-draft-final-v2.docx.
This is the workflow I actually use. It is not a demo. It is what I do when I need a competitive read fast, and it violates most of what I would have told a Senior PM two years ago.
Why the model is wrong in useful ways
The wrongness is predictable. That is the whole trick. The model is going to be wrong about the same categories of thing every time, in the same directions, and once you know the pattern you can edit around it faster than you could have started from scratch.
Here is what it gets wrong, reliably:
Recency. The model does not know what shipped last quarter. It writes about competitor features as if the last major release was eighteen months ago, because for its training that is true. Fine. I know what shipped last quarter. I fix that in the edit pass, and the model has done the tedious part of laying out the frame.
Pricing and packaging. Nearly always wrong, usually in the direction of “simpler than it is.” Real pricing has weird tier boundaries, seat minimums, and enterprise carve-outs that the model averages into something clean. I fix that too. But the model was right that pricing belongs in the comparison, and it drafted the row for me.
Differentiation claims. The model believes marketing copy. It says two products differentiate on things that are actually parity features both sides have shipped. This one is the highest-value catch, because it is exactly the trap a junior PM would fall into reading the same press releases. When I strike through the model’s differentiation line and write the real one, I have learned something about the market, not just corrected an error.
The recommendation. The model writes a milquetoast recommendation. “Focus on the mid-market segment where our differentiation is strongest.” No opinion, no risk, nothing anyone would push back on. That is a mirror of every meeting where nobody wants to be wrong on record. I replace it with the actual bet, which is usually narrower and more uncomfortable.
Four categories of wrong. All predictable. All faster to edit than to write from zero.
What it gets right, that a blank page never does
The frame. That is the whole gift. Deciding which dimensions to compare on is the hard part of a competitive analysis. Should we compare on price, or on time-to-value, or on integration depth, or on brand strength, or on ecosystem, or on all five, and if all five, which two matter for the decision this is supposed to unblock. That decision is what makes the artifact useful or useless.
The model picks a reasonable frame from the average of every competitive analysis it has ever seen. That is roughly as good as I would pick on a slow morning, and I get it in ninety seconds instead of an hour. When the frame is right, I keep it. When it is not, editing the frame is still faster than picking one from scratch, because I now have a concrete thing to react to.
Reacting to a wrong frame is faster than choosing a right one from nothing. That is the whole engine.
The workflow, end to end
I write three prompts and run them one after the other. Total time before I start editing is about four minutes. The prompts are in the sidebar.
First prompt writes the analysis. I do not touch anything yet. I read it once, top to bottom, without a pen, and I ask myself whether the frame is defensible. If yes, keep. If no, throw the whole thing out and rewrite the first prompt with a tighter frame. This is the only real decision point.
Second prompt asks the model to argue against its own analysis. This is where the differentiation errors surface. The model, prompted to be adversarial, will name the two things it just claimed as differentiation and point out they are parity. This costs me nothing and saves the meeting.
Third prompt asks for the strongest counter-recommendation, in one paragraph, from the perspective of a competitor’s PM reading our analysis. That paragraph is usually where I find the real risk we were about to walk into.
Then I edit. Twenty minutes, maybe thirty. Recency fixes, pricing fixes, differentiation corrections, and the recommendation gets replaced with the one I would have written on hour four if I had started from a blank page. I ship the doc. It has a note at the top that says “drafted with a model, edited by Luiz, errors mine.” That note is not decoration. It is the reason I sleep at night.
Sidebar: the three prompts
Generic versions. Swap in the real product, market, and vendors before you run.
Prompt 1, the draft. “Write a one-page competitive analysis of {product} against {competitors}. Compare on {two or three dimensions I care about most}. End with a one-paragraph recommendation for the {audience, e.g. VP of Product} on where to invest next quarter. Assume the reader has ten minutes.”
Prompt 2, the self-attack. “You just wrote this analysis. Now argue against it. Name the three claims that are weakest, the assumption most likely to be wrong, and the differentiation lines that are actually parity features both sides have shipped. Be specific.”
Prompt 3, the counter-move. “Write one paragraph from the perspective of a Principal PM at {main competitor} who has just read our analysis. What is the counter-move they would take to weaken our recommendation? Be aggressive.”
Why this is not lazy
The critique of this workflow, the one I used to make, is that you are outsourcing the thinking. You are not. You are outsourcing the drafting and keeping the thinking. Deciding whether the frame is defensible, catching the differentiation errors, replacing the milquetoast recommendation with a real bet, and owning the doc in the room, that is the entire job. The model does the typing. You do the calling.
A PM who ships a model draft unedited is lazy. A PM who spends four hours writing the same draft the model would have produced in ninety seconds, and then ships it with the same errors because they never had time to run the self-attack pass, is also lazy. They just look busier while doing it.
The bet I am making, one issue at a time here, is that the second kind of laziness is more common and less visible than the first, and it is the one costing careers right now.
What to try this week
Pick a competitive analysis you owe someone and have not started. Run the three prompts. Do not edit the first output. Read it once, decide if the frame holds. If yes, run the second and third prompts, edit for twenty minutes, and ship it with a note at the top saying it was model-drafted and human-edited. Watch what the reviewer pushes back on. That is your signal for what to fix in the prompt next time.
If the frame did not hold on the first pass, you learned something too. Rewriting Prompt 1 with a tighter frame is the highest-leverage move a PM can practice right now, because it is the same skill as convening a good meeting or writing a good problem definition. It is the skill of picking the right question.
See you next Tuesday.
Luiz
If you run this and it lands, or it flops in a way you did not expect, I want to hear about it. Reply or drop it in the comments. The best answers usually show up there.
Views are my own and do not represent Microsoft.

