Skip to main content

acquisitionuniverse (Python)

Utilities for search funds, independent sponsors and corporate development teams who work from screened company lists. Score records, rank them, measure evidence gaps and generate a clean thesis brief.

Pure Python, standard library only, offline.

pip install acquisitionuniverse

Where it fits

A full-web screen hands you a long ranked file. Before you call anyone you want to answer three questions: what exactly did we ask for, which companies come first, and how much is the file really telling us?

This package answers those with small functions that work on dictionaries and DataFrame rows alike. The method behind the screens is described on the search fund target lists page.

1. Write the brief

from acquisitionuniverse import ThesisBrief

brief = ThesisBrief(
    name="Calibration labs, Midwest",
    vertical="Calibration and metrology",
    regions=["Ohio", "Michigan", "Indiana"],
    employees_min=8,
    employees_max=60,
    must_have=["ISO/IEC 17025 accreditation"],
    exclusions=["group-owned", "single-person shops"],
)

assert brief.validate() == []
print(brief.to_text())

to_json() gives the same content as a string for a ticket or a shared drive.

2. Rank the file

from acquisitionuniverse import rank

companies = [
    {"id": "C-01", "mandate_fit": 92, "outreach_suitability": 75, "transition_context": 60},
    {"id": "C-02", "mandate_fit": 97, "outreach_suitability": 90, "transition_context": 80, "group_owned": True},
    {"id": "C-03", "mandate_fit": 84, "outreach_suitability": 88, "transition_context": 40},
]

for c in rank(companies):
    print(c["id"], c["composite"])

C-02 has the best fit but belongs to a group, so its outreach component is zero and it falls behind C-01. That ordering is the point: you should call the independent first.

Custom weights:

rank(companies, weights={"mandate_fit": 0.6, "outreach_suitability": 0.3, "transition_context": 0.1})

3. Count the evidence

from acquisitionuniverse import SIGNALS, signal_coverage

record = {SIGNALS[0]: "founder led", SIGNALS[3]: "service company", SIGNALS[10]: None}
print(signal_coverage(record))   # {'visible': 2, 'checked': 3, 'ratio': 0.666...}

A value of None or the string "not visible" counts as silent. You see at a glance whether a high score rests on much evidence or little.

With pandas

import pandas as pd
from acquisitionuniverse import composite

df = pd.read_csv("screen.csv")
df["composite"] = df.apply(
    lambda r: composite({
        "mandate_fit": r.mandate_fit,
        "outreach_suitability": r.outreach_suitability,
        "transition_context": r.transition_context,
        "group_owned": r.group_owned == "yes",
    }),
    axis=1,
)
df.sort_values("composite", ascending=False).head(25).to_csv("call_list.csv", index=False)

Reference

Name Kind Notes
ThesisBrief dataclass validate, to_dict, to_json, to_text
composite(company, weights=None) function 0 to 100, one decimal
rank(companies, weights=None) function returns copies with composite
signal_coverage(map) function visible, checked, ratio
SIGNALS tuple 15 names
DEFAULT_WEIGHTS dict 0.7, 0.2, 0.1
PILOT_URL str pilot request page

Alpha Quantum also publishes an audience segmentation API for advertisers and a CV parser for hiring teams. Neither is needed here.

Questions

Is a database included? No. Bring your own screened records.

Why dictionaries? They match JSON, CSV rows and pandas without a conversion step.

Python versions? 3.7 and up. MIT license. info@alpha-quantum.com

Metadata

Release files for acquisitionuniverse 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for acquisitionuniverse 1.0.0
File Size Uploaded Provenance Actions
acquisitionuniverse-1.0.0.tar.gz 6.4 kB Without provenance Details for acquisitionuniverse-1.0.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for acquisitionuniverse 1.0.0
File Interpreter ABI Platform Actions
acquisitionuniverse-1.0.0-py3-none-any.whl Python 3 none any Details for acquisitionuniverse-1.0.0-py3-none-any.whl

Total release size: 12.9 kB

Release files / acquisitionuniverse-1.0.0.tar.gz

Download URL acquisitionuniverse-1.0.0.tar.gz
Size 6.4 kB
Tags Source
SHA-256 checksum
How to use checksums
ceb4a83cbe758c2b8f8937262887140a5c28e82b7c02c4e0eba94aec0320f431
BLAKE2b-256 checksum
How to use checksums
72eefc15b29860eca993821832654cd5506471c38a7575b9e11c7fc3663c4437
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.8.10

Release files / acquisitionuniverse-1.0.0-py3-none-any.whl

Download URL acquisitionuniverse-1.0.0-py3-none-any.whl
Size 6.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7036bb3e7a211c51dfa0a6d5ffe2342a32982e43631b926a48c243f12499e059
BLAKE2b-256 checksum
How to use checksums
332ebc5aa90e25c0cfa9dbd40a8dded06b413bd6b78a80498d20bad170acd34d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.8.10

Security for acquisitionuniverse 1.0.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page