{"page":"/blog/programmatic-agency-audit","modified":"2026-11-10","license":"https://creativecommons.org/licenses/by/4.0/","columns":["Finding","First action","If it persists"],"rows":[["Unexplained billing gaps","Recover the amount; add line-item invoicing to the contract","Re-tender the agency"],["Undisclosed principal buys","Require written opt-in per buy and disclosure of margin","Move to agent-only buying"],["No access to log-level data","Move the DSP seat into the advertiser's name","Take the seat in-house with agency support"],["Fees far above benchmark","Renegotiate DSP and data fees; drop unused data","Change DSP or buying model"],["Poor media quality","Tighten inclusion lists and supply paths; set quality targets in the contract","Build an in-house trading team for core channels"],["Rebates not returned","Recover them; define value pots in the contract","Escalate to legal"]],"sourceUrls":[[],[],[],[],[],[]]}