acquisitionuniverse for Dart
Dart helpers for acquisition teams: a thesis brief builder, a composite score that puts independent owners first, ranking, and signal coverage. Works in Flutter apps, command line tools and servers. Pure Dart, no packages beyond the SDK.
dependencies:
acquisitionuniverse: ^1.0.0
The idea
An add-on acquisition radar is only useful if somebody opens it every week. A small internal app that shows the ranked list, the gaps and the brief keeps the radar alive. These functions are the logic for that app.
Build a brief
import 'package:acquisitionuniverse/acquisitionuniverse.dart';
final brief = ThesisBrief(
name: 'Managed IT, Texas',
vertical: 'Managed IT services',
regions: ['Texas'],
employeesMin: 10,
employeesMax: 50,
exclusions: ['group-owned', 'resellers only'],
);
print(brief.validate()); // []
print(brief.toText());
The text output ends with a link for requesting a pilot, so the brief is ready to send as written.
Rank companies
final ranked = rank(const [
Company('A', mandateFit: 90, outreachSuitability: 80, transitionContext: 50),
Company('B', mandateFit: 96, outreachSuitability: 90, transitionContext: 70, groupOwned: true),
]);
for (final entry in ranked) {
print('${entry.key.id}: ${entry.value}');
}
Company B is group-owned, so its outreach component becomes zero and A leads.
Use a different balance with Weights:
rank(companies, const Weights(mandateFit: 0.6, outreachSuitability: 0.3, transitionContext: 0.1));
Signal coverage
final result = signalCoverage({
signals[0]: 'founder led',
signals[2]: 'since 1988',
signals[10]: null,
});
print('${result.visible} of ${result.checked}');
The return value is a record, so result.visible and result.checked are typed ints.
Flutter widget idea
ListView(
children: [
for (final e in rank(companies))
ListTile(title: Text(e.key.id), trailing: Text(e.value.toStringAsFixed(1))),
],
)
Members
| Name | Type |
|---|---|
ThesisBrief |
class with validate, toJson, toText |
Company |
const class for scores |
Weights |
const class, defaults 0.7, 0.2, 0.1 |
composite, rank, signalCoverage |
functions |
signals |
list of 15 names |
pilotUrl |
string |
Same publisher, different problems
If you work with web audiences, look at cookieless targeting data. If you handle CVs, a resume to JSON service is available from the same company.
FAQ
Does it contact a server? No.
Dart version? 3.0 or later, because of records.
License? MIT. info@alpha-quantum.com