Ownership gaps that stop a software deal
A buyer pays for what the company controls and can hand over. Here is which gaps stop or delay a deal, how a reviewer checks control, and what has to move between signing and closing.
A buyer of a software company is not buying a product demo. It is buying the right to run, change and sell that product on the day after closing. That right rests on a list of things the company must control and be able to hand over: repositories, cloud accounts, domains, app store listings, licenses, and the paper that says the people who wrote the code gave their work to the company.
Most sellers believe they have all of it. Often they do, in practice. The trouble is that a deal does not run on practice. It runs on evidence. A repository the founder opened on a personal account years ago works fine every day. In a purchase agreement it is an asset the company does not hold.
This article is for sellers getting ready, and for buyers and their counsel reading a target. It covers which ownership gaps stop or delay a deal, which become conditions before closing, how a reviewer checks control, and what has to move between signing and closing.
What the buyer is actually paying for
Ownership in a software deal has two parts. Control means the company, not a person or a vendor, holds the account, the right or the contract today. Transferability means that control can pass to the buyer, either by buying the company itself or by assigning each asset to a new entity. A gap in either part is a gap in what the price assumes.
The deal structure changes the work, not the question. In a stock purchase the legal entity stays the same, so anything already held by the company carries over, and anything held by a founder, an employee or an agency does not. In an asset purchase every asset and contract has to be assigned one by one, and contracts that forbid assignment without consent need that consent. Counsel decides what the documents require. The technical review supplies the facts counsel works from.
The everyday version of this problem is familiar to anyone who runs a website or an app. Our engineering partner PERETZ covers it from the operator's side in Most Companies Don't Own Their Website. They Own a Collection of Dependencies.: how a business ends up depending on accounts, licenses and people it never formally controlled. In a deal the same dependencies stop being an operational risk and become items in a disclosure schedule.
In our method this is the first of the six layers, Ownership & IP, and it comes first for a reason. Most problems in the other layers change the price. A problem here can change whether there is a deal.
Where control usually leaks
Ownership gaps are rarely the result of bad faith. They come from speed. A product starts as a side project, a contractor sets up the hosting, a developer registers the app store account with the card on hand. Years later the company is worth buying, and the scaffolding is still in the names of the people who put it up.
- Code repositories under a founder's or early developer's personal account, or in an agency's organization where the company is only a guest.
- Cloud root accounts opened by a contractor, paid with a personal card, or recoverable only through the email of someone who left.
- Domains and DNS registered to a former agency, an employee or the founder personally, sometimes with renewal running on a card nobody watches.
- App store developer accounts enrolled as an individual rather than as the company, so the listing, reviews and update path belong to a person.
- Third-party services such as payment processors, email delivery, analytics, maps or AI APIs signed up in personal names, with keys in production.
- Licenses for commercial components, fonts, themes or SDKs that are personal, seat-based or not transferable, or that end on a change of control.
- IP assignments missing for early contributors, contractors paid by invoice only, or agencies whose contract says nothing about who owns the work.
- Open-source obligations from copyleft components, such as GPL in software that is distributed or AGPL in a hosted service, that nobody has mapped.
- Shared assets with another business of the same owner: one cloud account, one repository, one codebase serving two companies.
Which gaps stop a deal, and which do not
Not every gap is a crisis. The question a buyer asks is simple: can this be fixed before closing, at a known cost, with the cooperation of people who are willing to cooperate? The answer sets the severity and, usually, the treatment in the deal.
| Gap | Typical severity | Usual deal treatment |
|---|---|---|
| No signed assignment from a founder or early engineer who wrote core code, and that person is unreachable or unwilling | Critical | Can stop the deal or force a new structure; counsel leads |
| Agency contract silent on IP for the core product | Critical or High | Confirmatory assignment as a closing condition |
| Production cloud root account held by a former contractor | Critical until moved | Account moved to the company before closing |
| Main repository in a personal account | High | Moved to a company organization before closing; usually quick |
| Domain registered to an individual or old agency | High | Registrant changed before closing; start early |
| App store account enrolled as an individual | High | Transfer plan agreed at signing; may run past closing with protections |
| AGPL component inside the hosted product | Medium to Critical | Depends on use; counsel reviews, component may be replaced |
| Key vendor contract ends on change of control | Medium to High | Vendor consent before closing, or a price or plan adjustment |
| Minor services in personal names with low switching cost | Low to Medium | Moved during the transition, often after closing |
Gaps that stop or reshape a deal
The hardest gap is title to the code itself. If someone who wrote a central part of the product never assigned their work and will not do so now, the company may not own what it is selling. Buyers rarely accept that risk at any price. Sometimes it can be settled with a late assignment, sometimes with a payment to the person, sometimes only by rewriting the affected part. Each path takes time that a deal timeline may not have.
Gaps that become closing conditions
Most account-level gaps fall here. A cloud account, repository or domain in the wrong name is a fact with a clear fix, provided the current holder cooperates. Buyers typically write the move into the conditions to closing and ask to see it done, not promised.
Gaps that move the price or the terms
Where a gap cannot be closed in time but its cost can be estimated, it tends to show up as a specific indemnity, an escrow or holdback, or a lower price. Representations and warranties insurance often excludes risks the buyer already knows about, so a known ownership gap usually has to be dealt with directly in the agreement. Those choices belong to the parties and their counsel; the review gives them the facts and a cost to fix.
Evidence, not statements
A seller's answer to an ownership question is almost always "yes, we own it." That answer is honest and nearly useless. A reviewer's job is to see the control directly, under the access protocol: read-only, named accounts created by the company, for the period of the review.
| Asset | A statement | Evidence a reviewer accepts |
|---|---|---|
| Repositories | "The code is on our GitHub." | The organization's owner list and billing entity, seen in the settings; a list of every repository the product needs, including forks and private packages |
| Cloud | "We use AWS." | The root or top-level account's registered entity, contact email, payment method and recovery options, plus who holds root credentials and MFA |
| Domains and DNS | "The domain is ours." | The registrar account holder and registrant record, expiry dates, and who can change DNS at the DNS host |
| App stores | "The app is ours." | The developer account's enrolled entity and the role of the person holding it |
| IP assignment | "Everyone signed." | Signed agreements matched, name by name, against the list of people who committed code |
| Licenses | "We pay for everything." | The license terms, the named licensee, seat and transfer rules, and change-of-control clauses |
| Open source | "We only use permissive licenses." | A dependency and license scan of the shipped code, with how each copyleft component is used |
Two checks find more than any others. The first is comparing the commit history with the signed agreements. Every author in the repository history, including old email aliases and agency staff, should map to an employee or contractor with a signed assignment, or to an agency whose contract assigns the work. The gaps in that list are the questions for counsel.
The second is following the money and the recovery path. Whose card pays for the cloud, the domain and the app store? Whose email receives the password reset? An account the company uses but cannot recover without a former contractor is not under the company's control, whatever the login screen says.
Tool output counts as evidence, not as a finding. A license scanner lists components; a person reads how each one is used. A copyleft library linked into a distributed desktop app raises different questions than the same library running in a build script. We write the fact and the context, and counsel decides what it means.
Contractors, agencies and the early code
The most common paper gap sits in the first year of a product. Founders write code before the company exists. Friends help on weekends. A freelancer builds the first version against an invoice. An offshore agency brings in subcontractors the client never met.
Each of these needs a written answer. Code written before incorporation needs a founder assignment to the company. Contractor work needs an assignment, since paying for work does not by itself transfer copyright in most cases. Agency work needs a contract that assigns the deliverables and covers the agency's own subcontractors, and that does not keep reusable parts for the agency without a license to the client.
Two edge cases come up often enough to name. A founder or engineer who built part of the product while employed elsewhere may face a claim from that employer, depending on their old contract. And an agency may own a framework it reuses across clients, licensing it into the product instead of assigning it. Neither is fatal when known early. Both are much harder when found during exclusivity.
Signing to closing: the transfer checklist
Once the purchase agreement is signed, the work turns from proving control to moving it. Some steps take days, some take weeks, and some depend on third parties with their own procedures. A practical sequence:
- Agree the asset list at signing: every repository, cloud account, domain, app listing, license and service the product needs, each with its current holder.
- Obtain missing IP assignments and confirmatory assignments from founders, contractors and agencies. Counsel drafts them; the commit-to-agreement list shows who is needed.
- Move repositories into a company organization and confirm the buyer's named owners can see them.
- Move cloud root or top-level accounts to company emails and a company payment method; reset root credentials and MFA, and store recovery codes with the company.
- Change domain registrants to the company and check renewal settings. Some registrars restrict transfers for a period after owner details change, so begin early.
- Start app store transfers or entity conversions early. Each store has its own rules, and some app features can block a transfer.
- Collect vendor consents for contracts that require them on assignment or change of control.
- Move third-party services out of personal names, or open company accounts and switch keys, with a tested cutover.
- Remove open-source license problems that the parties agreed to fix before closing, and record what remains.
- At closing, rotate shared secrets and API keys, remove access for people leaving with the seller, and confirm the buyer holds admin rights everywhere.
- Keep a signed record of what moved, when, and to whom. It closes the condition and starts the transition plan.
Payment processors deserve their own line in the plan. They usually require the new owner to pass their own verification, and payouts can pause during the change. A failed cutover there is felt by customers, not just by lawyers.
For sellers: close the gaps before anyone asks
Almost every gap above is cheaper to fix before a buyer arrives. Without a deadline, moving a repository is an afternoon and getting a former contractor to sign an assignment is a polite email. Inside exclusivity, the same tasks carry the buyer's attention, the clock and a former contractor who knows the deal now depends on one signature.
A seller who starts early can run the same checks a buyer would: the asset list, the commit-to-agreement match, the recovery path for every account, the license scan. What cannot be fixed in time can be disclosed plainly with a plan, which reads very differently from a gap the buyer finds on its own. That is the purpose of exit readiness six to eighteen months before a sale, and of vendor due diligence once a process is starting.
What to do next
If you are selling, build the asset list now and test it against evidence, not memory. If you are buying, ask for the evidence above early in exclusivity, and make the account moves conditions with a named owner and a date. In both cases, give counsel facts they can work from, not assurances.
Our technical due diligence reads ownership and the five other layers in full for a buyer. A red-flag memo answers the narrower question quickly: is there anything here that stops the deal? Every finding comes in the report with its evidence, severity and a cost to fix.
Questions
Is a missing IP assignment always a deal breaker?
No. Most missing assignments are fixed with a late or confirmatory assignment signed before closing. It becomes serious when the person wrote core code and is unreachable, unwilling, or has a competing claim, for example from a former employer. Whether a given gap is fatal is a legal question for counsel. The technical review shows who wrote what, which parts of the product it touches, and what a rewrite would cost.
Does a stock purchase solve the ownership problem?
Only for what the company already holds. In a stock purchase the entity stays the same, so its own accounts and contracts carry over, subject to any change-of-control clauses. Accounts in a founder's, employee's or agency's name are not company assets, so the structure does not move them. They still need to be transferred to the company before closing, the same as in an asset deal.
How long do account transfers usually take?
Repositories and cloud accounts can often move in days when the current holder cooperates. Domains can take longer because some registrars restrict transfers after owner details change. App store transfers follow each store's own procedure and conditions, and payment processors usually require new verification. Start the slow ones at signing, not in the last week, and keep a named owner and date for each.
What does a reviewer need to see to confirm control?
The account settings themselves, under read-only access: the owner and billing entity of the repository organization, the registered entity, payment method and recovery email of the cloud account, the registrar record for each domain, the enrolled entity of each app store account. For IP, the signed agreements matched against every commit author. A written statement from the seller is a starting point, not evidence.
Can a seller fix ownership gaps during exclusivity?
Some, yes. Moving a repository or a domain is quick. Getting signatures from former contractors, vendor consents, or app store transfers can take weeks, and doing it under a buyer's deadline weakens the seller's position. Gaps found and fixed before a process starts, or disclosed with a plan, read much better than gaps the buyer finds. Exit readiness and vendor due diligence exist for this.
