#humanwritten post

Our team has a long experience in the sector. Many of us at medialog have worked with various management systems. In all agencies and medialog, an automated and robust billing management process is a must. In fact, any business needs it.

The start-up error

When we were born more than seven years ago, we knew that the Achilles heel would be precisely the billing system. In an agency there are hundreds of providers, each offering dozens of solutions with different and, above all, changing characteristics. Standardizing it would be madness.

In the past, when media were offline, although some were already complex like the daily press with its system of modules and selling ads by the millimeter. Still, the variation between media was a finite number. At that time, IT managers opted to create applications that included all casuistries. Whenever a new commercial offer appeared on the market, an attempt was made to include it in the agency’s billing system.

However, as the competition among media grew and, above all, when we began to plan online media, the casuistry of offers and combinations became infinite. Billing systems grew in complexity and difficulty of use. They used to be slow and difficult to understand, even for developers, because there were more and more fields and relationships between tables.

Unacceptable adaptation times

Every invoicing system needs a period of adaptation, but in our industry, learning took weeks, months, or even years. Any staff turnover in the administrative department was a headache because it was not easy to replace the experience gained. Because they were ad-hoc systems, they almost always had to be taught from scratch.

At medialog we were testing systems for three years and while the team was struggling to adapt to one of the ad-hoc systems, we were still looking for more straightforward solutions. We didn’t want to replicate the complexity of the back-office departments we knew from the past. We needed a more efficient way of working, simpler to teach, faster to learn. In addition, our administrative process did not and does not interest customers and suppliers. One wants their invoice, the other wants their purchase order, period.


The eureka came at lunch between coworkers. While explaining the invoicing challenge to an expert accountant, she explained a similar problem in the hospitality and event management sector. Purchases had to be allocated to each event, a bit like our media buys to each client. Suddenly we saw a similarity between sectors. Our traceability needs were also present in other businesses.

Put a store in your life

We found the solution by organizing the information by warehouses. The warehouse concept is foreign to our industry. We don’t buy anything physical, we don’t store anything, we don’t stack boxes, fill aisles or shelves with merchandise. We do not physically receive purchased advertising space. However, by applying the warehouse concept in an imaginary way, we discovered a primary classification to group the thousands of records we already had. A warehouse in our case was the grouping of purchases and sales of a project. A project can be a customer or a set of customers.

Any standard invoicing program allows you to define warehouses. In our system, which is entirely standard and helpful for any company in any sector, we can even define items as services. This way we avoid stock calculations, which would be absurd in a media agency like ours or in services.

Thanks to the warehouses we had organized purchases and sales by imaginary buildings. However, we needed to subclassify it to find a campaign for a certain customer, advertiser, or product. A traditional warehouse has zones, aisles, shelves, etc. Programming this subdivision in a traditional database can become a monstrous structure of tables and relationships. In standard invoicing programs, there may be families and properties for items, but no subdivisions at the customer level. At most, you can find groupings of customers, but not the other way around.

How we solve the granularity of records

To solve this second challenge and to be able to have capillarity in the information entered, we were inspired by the qualification of records in programs such as Bitly or posts in WordPress. These developments use categories and tags, i.e., keywords associated with a record, to find it again or simply group it into a set of similar records. When humans classify papers, we organize them alphabetically, by folders, by file cabinets, etc. The human mind needs a classification that is easy to identify visually, and it would be impossible to find anything if we simply filed information consecutively. In fact, we often do not find what we are looking for even when we are classified, because we do not remember where we filed it.

Tags or folders: think like a machine

Something similar happens in databases or in a file explorer. You may be familiar with folder structures with 5 or 10 levels of subdivision. Often it is impossible to find anything. That’s why users like Google Drive so much because if you can’t find it, you type a keyword in the search engine and Google accurately suggests the location. The same thing happens in SharePoint, which has a powerful document search engine capable of covering an entire site. Even if we have conscientiously classified the information in their respective folders, after a few weeks or months we are unable to remember where we put it. In addition, each person in a company would put it somewhere else and the mess is already set up.

To solve the subdivision of the records and in the absence of related tables, we invented a 10-digit algorithm, structured in four sets reserved to identify customer, advertiser, product, and campaign respectively. Knowing how the reference is structured allows us to sort the records quickly and find them again. The code works like a tag in databases and behaves like a funnel. The greater the number of digits, the greater the precision of the search. When searching, it is enough to point to part or the entire reference to find all related documents from the most general to the most particular.

In honor of Anfix and Owius: the ten digit reference

Instead of classifying records by folders and complex table structures that slow down the entry and retrieval of information, we file them all in one place. Their differentiation comes from two standardized fields: the store and the alphanumeric reference.

After a few months, having checked the efficiency of the system, we commissioned a technology provider to develop a small reference creation system. In this way, we guaranteed correct coding and avoided possible duplicate values. The programming of the code generator was based on MongoDB using a very stable and fast NoSQL technology.

Two fields to solve a huge complexity

And we already had it. With just two fields – store and reference – the thousands of records we generate each year are ideally classified. We have complete capillarity and traceability of information and can retrieve records through a very simplified search.

Our administration department is limited to experts in accounting and taxation because the rest of the process is so simple that anyone, even with little or no work experience, can safely generate purchases and sales. Our agency operates with a standardized management system that is prepared for any variation in the market. The recent evolution in television from cost per GRP to CPM with three decimal places did not require any IT adaptation.

Sharing to simplify work

The message of this post is not to air management successes that nobody is interested in but to show that any process can be rethought. As different as our industry may seem to us, there is a way to adapt to standard tools. We do not have to reinvent the wheel in processes that do not provide tangible value for our customers and suppliers. On the contrary, we must strive to simplify management.