Ryan Ginsberg

Writing

Writing

Notes from inside other people's systems. Most of what I publish starts as something I had to work out for a client and would have wanted to read first — how a thing actually behaves, what it costs to build, and what it usually means about the business underneath it.

September 11, 2026 · 5 min read

The person who owns it now

An anonymized account of an operations build — what we walked into, what we built with their team, how the cutover went, and the three calls I'd make again.

September 9, 2026 · 10 min read

Ten questions I could never ask a portal

Why the useful questions about somebody else's portal are almost always the negative ones, ten of them written out as SQL, and an honest account of what I could and could not verify about the beta.

September 8, 2026 · 6 min read

A term that isn't a whole number of months

What the co-term beta actually does, why a mid-contract add always used to push the renewal date out, the distinction between expansion and cross-sell that decides whether you ever hit this, and why last week's manual model is still the answer for most portals.

September 5, 2026 · 8 min read

Fifteen line items from one sale

HubSpot built more of the line item in 2026 than in any prior year, kept the mechanisms off the record page, and one $9,995-a-month sale became fifteen records because of it. Where the 2.5x comes from, and two things to check in your own portal.

September 5, 2026 · 7 min read

The line item is a photograph of the product

Why a product change never reaches the line items already sold from it, what the 'link' actually is, and the one filter that finds the dead references in your own portal.

September 5, 2026 · 5 min read

The quote gets its own copy, on purpose

Why deal and quote line items are two records and not one, the deletion cascade that makes the duplication a safety mechanism, and how to reconcile the pair with hs_origin_key where it exists.

September 5, 2026 · 6 min read

The deal's headline number is one someone typed

Why amount on a deal isn't a rollup, the one moment HubSpot offers to write it for you, which sum it lands on when it does, and the four properties beside it that never drift.

September 5, 2026 · 5 min read

The one hop that shares a record instead of copying it

Eight line items in 632 hold both a deal and an order association on the same record, why a uniform de-duplication rule under-counts exactly here, and why an order's total is a number someone typed.

September 5, 2026 · 5 min read

HubSpot built a guard, and it covers half the records

Where twelve of the fifteen records come from, the zeroed hs_mrr on invoice copies, the populated hs_mrr on payment copies, and the 9x that falls out of summing across all of them.

September 5, 2026 · 5 min read

A subscription can hold two prices at once

The two association labels only the subscription has, one subscription caught mid-upgrade, what HubSpot says happens at the anniversary, and a rollup that disagrees with its own line items.

September 5, 2026 · 7 min read

Read the container, not the line item

Which headline number on each container is a real rollup and which is a field someone typed, the two preference switches that silently decide what a deal and a quote report, why annual doesn't mean annualised, and the one filter that makes a line item report trustworthy.

September 5, 2026 · 11 min read

Three product libraries, built out

Sales-led software, equipment makers with a service arm, and fire and security contractors. What their catalogs look like when the six decisions get made on purpose, and the one sentence that tells you whether yours is on the list.

September 3, 2026 · 8 min read

Quote the project, then quote every change

How a project quote becomes a contract, how every change to the engagement becomes a signed change quote and an order carrying only the difference, what I watched that do on a live portal, and the rules that have to exist before the platform can hold your engagement honestly.

September 2, 2026 · 9 min read

A co-termed upsell is two line items, and only one of them is recurring

How to model a co-termed upsell on Deals and Line Items alone so ARR and contract value come out right, where every date in it actually gets stored, and what does and does not enforce the two a person still types by hand.

September 1, 2026 · 5 min read

What 369 HubSpot briefs actually asked for

A count of every brief a HubSpot services marketplace has shown me over about eighteen months, including the ones I passed on. What buyers are asking for, how that has changed, and where the numbers stop being trustworthy.

August 29, 2026 · 8 min read

Five hundred products, and the five that mattered

A product library looks like configuration and behaves like a schema. Six decisions that shape it, and where each one surfaces from quote through invoicing and renewal.

August 29, 2026 · 7 min read

You can't edit a contract, and that's the point

Contracts behave unlike anything else in a CRM: they lock at creation, they can't be deleted, and change is an object rather than an edit. What that means for how you build and who gets to approve what.

August 28, 2026 · 7 min read

Seven deal tags, and what it means that you need them

Nine deal tags worth standing up, what each one costs to build, and why every tag on the list is a rule your system states but doesn't enforce.

Skills you can take

Some of this is more useful run than read. These are skill files — plain markdown you can drop into whatever AI setup you use, so it works against your actual portal rather than your memory of it. Each came out of a real engagement and ends in a judgment rather than a build. Free to use, copy and change; no sign-up, nothing captured.

Revenue Hub readiness

Whether Revenue Hub is actually your problem, and which half of it — including the answer that you don't need any of this.

Who it’s for
Anyone considering Revenue Hub, contracts, or moving billing into HubSpot — or already mid-migration and going badly.
What it won’t do
It is not a configuration guide and it will not migrate anything. It ends in a judgment.
Where it came from
Production Revenue Hub migrations, and the nine questions I ask on a first call.

Revenue Hub object model

What each container is authoritative for, how line items copy rather than link, and which numbers are derived rather than typed — the terrain, before anyone acts on it.

Who it’s for
An agent or a person who has to work in a portal rather than describe one. Load it before quoting, contracts, billing, revenue reporting or a migration.
What it won’t do
It is not a feature tour and it will not tell you what to build. It gets you accurate fast enough to be useful and slow enough to be safe.
Where it came from
Production work in these objects, read off live portals — where the portal and the documentation disagree, the portal wins.

Revenue Hub contract migration

How to move real agreements into the Contract object without breaking the way customers get billed.

Who it’s for
Whoever is planning or building the migration, and whoever has to answer for it afterwards.
What it won’t do
It will not tell you HubSpot is easy. Two of its sections exist because the migration reports success while doing something wrong.
Where it came from
Production contract migrations, built first against the beta API and then through the import — because only one of those can carry a stored payment method.

Let's talk

You bet on HubSpot. It still isn't running your business.

That's the conversation I want — 30 minutes, no contract, no black box. Tell me what's actually broken and I'll tell you straight what I see. It's transcribed and shared back to you, so you keep a real read on where you stand and what I'd do first, whether or not we work together.

Not ready for a call? Email me your situation and I'll tell you straight whether you need me. No form, no sequence, nothing captured — if the honest answer is that you don't need me, that's the answer you'll get.