Evidence Report · Software Valuation
AI-powered marketing and ad-automation engine — the "Marketologist" brain. Generates ad proposals with per-persona copy, enforces 8 hard ad-standards via a pre-launch lint gate that blocks non-compliant launches, manages promos / verified targeting / creative uploads, and integrates directly with the Meta Ads API. Deployed live on akconnect at /var/www/marketology.
The Defensible Quartet
Traditional Build Cost
Low: $88,875 · Mid: $126,000 · High: $164,250
What a normal ad-tech shop charges to design, integrate, and harden a rules-engine of this scope against a live ad platform.
Engineering Effort
Mid estimate, two independent models (productivity + COCOMO II post-architecture). Represents the human capital compressed into a two-week build.
Team & Schedule Replaced
1–2 engineers working for 7 months — the conventional staffing to design, build, test, and integrate an ad-standards enforcement engine against a live Meta API.
Build Speed
Shipped in ~2 calendar weeks vs the 7-month conventional schedule. 1 regression test suite, 15 test runs, 13 defects tracked and iterated against.
The Hard Evidence — counts straight from the codebase
| Code (LOC, non-blank, non-comment) | 4,285 |
|---|---|
| ↳ Python | 2,420 |
| ↳ JavaScript | 1,569 |
| ↳ CSS | 1,152 |
| ↳ HTML | 648 |
| ↳ Docs / specs | 150 |
| ↳ Shell | 8 |
| Source LOC (all text files) | 5,797 |
| Files | 13 |
| Git commits | n/a — not a git repo (file-mtime calendar basis) |
| Real calendar span | ~2 weeks (file mtimes; see footer) |
| Defects tracked / resolved | 13 tracked / 5 resolved (38%) |
| Regression tests | 1 test suite (smoke_local.py) |
| Test runs (total) | 15 |
What's Actually in It — feature enumeration from the source
/api/mkt/proposal/<id>/lint — blocks launch on any blocker (mkt_proposal_lint){ok, blockers:[], warnings:[]} so the UI can surface the exact violationsource:"default" so the UI can warnactive:0 and a benefit-led copy pathmeta_id ↔ name parity; a mismatched ID is a lint blocker with the claimed vs real name surfacedHARVEST_QUERIES dict in targeting_catalog.py{ok, mismatch, unknown} (mkt_targeting_validate)cost_usdr= URL params back to the originating ad and proposal (mkt_attribution)How We Costed It — methodology
Model. The same model with the same constants is applied to every project in this portfolio — there are no per-project complexity multipliers and no schedule compression applied. The generator is console/backend/tools/evidence_merge.py.
Low bound. Productivity model — 4,285 lines of production code ÷ 25 finished LOC per developer-day ÷ 21.7 work-days per month = 7.9 person-months (0.7 person-years). The 25 LOC/day figure is the conservative industry baseline for finished, tested, reviewed code (McConnell, Code Complete); it excludes generated scaffolding and build artifacts.
High bound. COCOMO II post-architecture — PM = 2.94 × (4.29 KLOC)1.0997 = 14.6 person-months (1.2 person-years). Applied nominally, with no effort-adjustment multipliers, so the ceiling is not inflated.
Mid (reported). The arithmetic mean of the two models: 11.2 person-months = 0.9 person-years. This is the figure quoted throughout this report.
Rate assumption. $135,000/year fully-loaded blended developer (salary, benefits, overhead) = $11,250 per person-month. Applied uniformly to all three effort bounds: low $89K, mid $126K, high $164K.
Calendar. This repository carries a single commit, so its git span is zero and the model applies its 0.5-month floor instead of a measured calendar. COCOMO's schedule equation gives the calendar a conventional team would need: TDEV = 3.67 × 11.20.28 = 7.2 months at a sustainable 1.6 engineers. Speed advantage = 7.2 ÷ 0.5 = 14.4×. Because the calendar is floored rather than measured, this speed multiple is a conservative figure — the raw span would produce a larger one.