Private · Ahmad Basheer · Not for ANC distribution

The graphics engine Charlie is asking for — and whether we build it new.

Two calls with Charlie Dinh, decoded against every system already running in the estate. What he is actually proposing, what we already own, and the one decision that determines whether this becomes recurring licence revenue or just more unpaid work.

20 Aug 2026 · Source: two recorded calls · Verified against live anc_services DB and repo code

The verdict

Both — and the split is the entire strategy.

Build on top for the pipeline: intake, ticket state, proof, approval, FTP delivery. All of it is built, live and verified. Rebuilding it would be arson, and Charlie personally specified the proof flow — replacing it fights him, extending it flatters him.

Build new — separately owned — for the render engine. One metered service you host in your own namespace, that ANC's dashboard calls over an API. That is the difference between a licence and a favour.

And the first thing to build is not AI at all. It is the missing intake column.

01What Charlie is actually proposing

This is not a feature request. It is a vendor replacement with a budget already attached, and he is telling you how to price it so it recurs.

"If you get that, you charge them by the credit… I got to help you figure out a way to charge them, and I'm gonna get you money. It's guaranteed year after year." Charlie Dinh — call 1
What he saidWhat it means commercially
"charge them by the credit"Usage-metered licence. Not hours, not a project fee. A render is a credit.
"guaranteed year after year"Recurring. The outsourced vendor's line item becomes yours.
"I got to help you figure out a way to charge them"He carries it internally. You don't sell it — he does.
"contract is six months… mid-to-end October, November latest"Hard deadline, with two months of parallel testing before busy season.
"most of jobs they don't make money from"The money is not new spend. It is redirected spend.

Why it is guaranteed and not wishful

ANC loses money on graphics structurally. Graphics are thrown in free to close board sales and never costed into installation. Some clients are broken out at roughly $10/hour. Pacers, Red Sox and Xfinity Mobile hold unlimited-hours contracts Charlie says "just destroy us" — Pacers alone logged 2,152 hours in a year. The outsourced vendor absorbed ANC's laid-off design team and now bills the same jobs at double the hours.

So there is an existing, painful, recurring cost line and Charlie wants it pointed at you. The budget exists today.

The part he did not say out loud

This sits outside your $90K agreement, which explicitly excludes "standalone new products or new systems" and "hosting, licenses, vendor costs, paid services." That exclusion is not an obstacle here — it is the permission. It is the clause that makes this yours to own and licence rather than more work you already agreed to do for free.

Note also that he offered to keep paying $500/month to year-end while both systems run in tandem, and you turned it down in favour of "I will charge you what I need to be charged — focus on the design stuff." That was the right instinct. Do not let the small retainer become the price anchor for the licence.

02The product is not what it sounds like

"AI designer" is the wrong name for it. The second call contains the real product definition, and Charlie handed it over without realising.

He pulled up what he called a good ticket — the one with enough detail to work from:

"EVS rollout Bears and Titans. Assets are located here. All animation is final and locked and provided After Effects template. Your role is versioning only — swapping logos and updating text into the designated area, then rendering export list below. Do not adjust animation timing." A real design ticket, read aloud on call 2

That is not creative work. That is versioning: a locked template, an asset swap, a board-size matrix, N rendered exports. It is deterministic, it is the highest-volume job type, it is the best-specified, and it needs no generative model at all — it needs a render farm and a job runner.

The generative slice — "create courtside," "similar to the recent one," clients who don't know what they want — is the smallest, worst-specified, most revision-heavy part of the work. It is exactly the part that should ship last, not first.

Product definition

Three layers, in this order: intake fidelityversioning & renderproof, approve, deliver. Generative design is a fourth layer bolted on later, and the engine for it is already written.

03The "missing creative direction" is a missing column

Charlie spent most of call 2 convinced someone is deleting the briefs. He was ready to take that to the client-services team as an accusation. He is wrong, and it matters that he does not.

Two separate things are happening, and both are already measured:

One. The thinnest 2026 tickets are literally the string Wrike: https://www.wrike.com/open.htm?id=… — a backlink and nothing else. The Wrike sync carried the pointer, not the body. Every example he opened is one of those. Nothing was deleted; the detail is still in Wrike, and that cohort self-heals the moment Alexis's team stops working there.

Two — and this is the new finding. He said it himself: "the descriptions I've seen on emails are not on this brief." The account manager reads the client email and types a summary into the ticket. The detail stays in the email. And the schema proves there is nowhere for it to go:

Live schema — design_requests, 30 columns

There is a notes field, a boards_requested field and a sizes_requested field. There is no source-email field, no asset/attachment field, and no reference-link field. The full brief and the supplied assets have no column to land in. That is not people being sloppy — it is a data model that never had a place for the thing.

Your own answer on the call was the right one: if the request arrived by email, the full email already exists in the CRM against that account. The bridge is short, and both ends already exist.

Do not let the deletion theory reach Alexis's team. It is false, it is an accusation, and Charlie is already in friction with her.

04What we already own

This is the part that decides the answer. The hard half is already built — and it is built in the wrong place.

1,034lines of deterministic signage planner, already written
20,509live design requests in the dashboard
9,343billable design hours, Apr '25 – Mar '26
0 of 38Aug '26 tickets originated in the dashboard
CapabilityStateWhere
Signage planner — classifies request type, builds board-by-board plans, safe zones, creative brief, final image prompt. Fully deterministic, explicitly designed to prevent generic AI output. The crown jewel.Builtanc-services · ANC's repo
AI proof generation endpointBuiltanc-services
Per-call AI cost ledger — provider, model, tokens, image bytes, estimated costSchema onlymarketing_studio_ai_usage
Design / CG / print ticket systemBuiltanc-services
Proof share + client swipe approve / rejectLiveCharlie specified this himself
FTP proof browser — read-only SFTP into the 55TB datacenter, ranged streaming for 300MB files, ticket-linked sharesLiveproduction-verified
Brief gating at intakeLiveshipped 19 Aug
Status + assignment email notifications, with watchdogLiveshipped 19 Aug
Source email + assets captured on a ticketNoneno column exists
Any motion / video render path — After Effects, ffmpeg, Cinema 4D, anythingNonezero references estate-wide
Credits, balances, entitlements, licence keys, tenant boundaryNone

05The four gaps that decide it

Adoption is the disease, not capability

In August 2026, 0 of 38 design tickets were created in the dashboard — all 38 were Wrike mirrors. Proof shares: 55 all year, 18 answered. The AI proof route has been live for months and its columns are not even in the production table. A better generator behind a surface nobody opens produces zero credits and zero revenue.

Motion is the actual product and nothing we have touches it

The proofs are 15–30 second MP4s on a 10,368px fascia — ~19MB proof, ~273MB final, occasionally hundreds of GB. Built in Cinema 4D and After Effects. Every AI asset in the estate generates stills, and this box has no hardware GPU. Heavy render cannot live here.

Storage is already at the wall

55TB, under 10% free, busy season starting, no backup at all because the CEO won't pay for one — and the CEO wants the whole datacenter gone at ~$250k/year. Charlie floated using the FTP as the working store for the engine, then immediately worried the datacenter's own uplink couldn't serve it. The AWS lane is not a side quest; it is a dependency.

Ownership

Today the signage planner — the single most licensable asset in the estate — sits in a repo ANC owns, on a project Charlie admins. If the engine ships there, there is nothing to licence. It is just more work delivered under the $90K.

06Build order

Against his October deadline. Each step earns the next.

  1. Capture the real brief at intake

    Source email body, supplied assets, reference links — as first-class fields on the ticket, fed from the CRM's existing email record. Cheapest item on the list, kills the revision rounds that make graphics unprofitable, and it is the thing Charlie is actually upset about. Build on top, in anc-services.

  2. Fix adoption

    Notifications shipped; the remaining cutover items are Alexis's. Until work originates in the dashboard, nothing downstream can be metered. Build on top.

  3. Stand up the metered engine as its own service

    Your namespace, never project abc. Port your own signage planner into it — do not hand the improvements back. Extend the existing usage-ledger schema into a real balance and entitlement meter on your side. ANC's dashboard gets a button; your service gets the credit. Build new.

  4. Versioning first, not generation

    Locked template + asset swap + board-size matrix → rendered exports. Highest volume, best specified, most defensible. This is the product.

  5. Motion after the infrastructure lands

    Needs GPU and storage that do not exist yet. Sequence it behind the AWS move, and price the AWS move separately — it is excluded from the $90K too.

  6. Generative design last

    The smallest, least specified, most revision-heavy slice — and the planner for it is already written. It is the demo, not the business.

07Landmines

08The one thing to settle before writing code

Charlie offered to help price it. Take him up on it, and get three things named while he is still enthusiastic:

That conversation is worth more than any week of building, and it is the piece that makes it recur.