2005-2009 TSI: AdDept Client: Macy’s South

The last AdDept client. Continue reading

By the time contract had been signed. and we had started the installation, Macy’s Inc. had officially renamed its division based in Atlanta from Macy’s South (MSO) to Macy’s Central. This was done to reflect the fact that that division was scheduled to absorb most of the stores from Hecht’s and Foley’s after the big acquisition of stores from the May Co. However, I never heard anyone at TSI or at Macy’s refer to the people in Atlanta as Macy’s Central. Only New Yorkers could think of Atlanta as being central.

I cannot prove it, but I am pretty sure that TSI won the MSO account because of the efforts of Beverly Ingraham and the other other employees in Foley’s advertising department (introduced here). I know for a fact that people from the advertising department at MSO had made a trip to Houston to investigate the AdDept system there. They came away very impressed with what the system had allowed them to accomplished. The strong relationship between the department’s employees and TSI over a period for more than a dozen years was a point of emphasis.

The advertising people at MSO had been struggling to use an outdated version of FedAd named Assets.1 It was no longer supported by the development team, and no one thought that it could handle the increased load of two new divisions. The FedAd developers also had warned the seven (!) advertising planners that they would not be able to produce software that would allow them to plan in the way that they did. Several areas of MSO’s advertising department had developed PC systems to handle their tasks. The one used for direct mail was quite sophisticated, but it was also unsupported and undocumented.

Aurore Murphy.

I learned about MSO’s interest in a phone call from Aurore Murphy2, the Advertising Director, in November of 2005. She told me that the decision to use AdDept had already been made and that the hardware was being arranged. She asked me to come to Atlanta to talk with them about what changes would be needed to make AdDept work for them.

I could hardly believe my ears. No sale was ever this easy, and this was a division of Federated/Macy’s! I asked Eileen Sheehan-Willett (introduced here), TSI’s administrative person, to book me on a Delta flight to Atlanta for November 29. Aurore advised me to take a MARTA train from the airport to the Buckhead area. She insisted that I stay at the Marriott Courtyard that was near their office. For three days I met with people in every area of the department. It was probably the most productive trip of my entire career. Everyone was prepared to talk with me.


Note: This blog entry contains much more detailed information about the installation than the entries for most other clients. I discovered a large number of very detailed and complete notes as well as many other documents. I thought that it would be a good idea to give a feel for the scope and difficulty of the work that TSI did for its clients during the installation of the AdDept system to assure that it performed to the client’s satisfaction.


The first trip: Here are excerpts from my notes:

Some things are done in a system named Aims. ROP (and maybe something else) is done in Assets. Many things are done on spreadsheets. They use one six-digit system of “ad numbers” for ROP. They use a different system of job numbers for other media. The latter start with a three digit event code. They said that they would not mind changing numbering systems.

The reassignment of stores will take place on a staggered basis over the next nine months. This will be very confusing.

The Home Division does not place any ads. However, they do handle the co-op and production of the pages for home merchandise. They then transfer these transactions to the retail divisions. The people at Macy’s South seemed to think that this is a mistake.

Federated determines their merchandise department numbers. All divisions use the same numbers.

My first meeting was with Cliff Webber3 and Beth Lane4, the pair who ran the Advertising Business Office. It lasted almost four hours. I reported that “They gave me every report that they use for closing. Nothing seemed insuperably difficult.” The list of issues that I brought back to Connecticut was too long to include here.

Steve Weinbaum.

My second stop was in planning:

Miriam Pechar.

I met with Steve Weinbaum5 for a couple of hours. He now works in another area, but he was the planning manager for years, and he is the one who knows how their system works. The person who does this job now is named Miriam Pechar6.

It is hard to believe, but they primarily use seven different spreadsheets, one for each GMM. Each ad is on each spreadsheet!

They want output files for all of their reports.

I think that they will work with status P ads. When the plan is approved, the ads will be changed to A and handed over to the appropriate media manager.

They supply data for database marketing. Lots of new fields.

I then spent a half hour with Laurie Stenwall7, the Database Marketing Manager. She said that she would like to be able to get the information that they need to schedule a piece from AdDept. Most of that information is from the ad planners.

Karla Schottle.

I likewise spent thirty minutes with Karla Schottle8, Advertising Effectiveness Manager. She and her group analyze the costs by event, merchant, and market. She would probably love it if she had access to DAPANDL, DACOMMD, DAACTST, and DACOMMST, the files created by the cost accounting programs. One troublesome issue popped up:

I think that we may finally have to address the polybag problem, namely how do we handle it when the project involves a polybag that contains a book with stitch-ins and blow-ins and several other pieces.

Jeanna Corley.

I met with Jeanna Corley9, the Production Manager, for about an hour. Nothing that she showed me seemed that difficult.

My meeting with Andrea Harrison10, the Traffic Manager, was a short one. She was not on the original schedule. She showed me how she kept track of the progress of production jobs. Nothing was out of the ordinary. Only two issues emerged:

They would like a project list for each team. Do we still have a way of specifying the creative/production team for each ad?

They sometimes have swing pages for merchandise, but it does not seem to be necessary to keep track of this in AdDept.

Karen Martin.

The two-hour meeting about newspaper advertising involved Karen Martin11, Vice President of Advertising, Annemarie Poterba12, the ROP Manager, and Bill McFadden13, a Media Planner. It lasted for a couple of hours. Here is what I wrote:

They are very backward in this area. They do not even send insertion orders; they just print a schedule and send it to all of the papers! They were overwhelmed by what we could do for them, especially with AXN. The only slightly challenging thing will be in the area of competitive lineage, which they enter in as a summary number for each competitor-newspaper combination.

Karen, Annemarie, and Bill.

Here were some of the issues in the newspaper area:

They need to show what markets the ads run in. Their schedules use a mishmash of methods – lists of market groups like Stage’s, checkmarks, and names of individual papers. I think that they might like something like Foley’s schedule.

They would like a method of getting a list of the papers that have actually received the inserts from their printers. Maybe we could give them a checkbox field in AXN so that they could confirm each one when it arrives. Then the unchecked ones could be reminded with the nightly update program.

We may need to do some work to provide them with a change report that is as easy to read as the one that they currently use.

They have a This Year-Last Year report by day that might be a little challenging. We will have to provide them with a substitute for the shading that they use to flag the sections for last year.

They use one ad per page for sections. Is this our recommended method?

They said that they might be interested in entering completed dates for ROP. They said that Foley’s told them that their creative people enter completion dates in ROP.

They have a separate ad number for each version, but they were amenable to using version codes instead.

“Stage’s” refers to Stage Stores, a large chain of stores that was also based in Houston. The AdDept installation there has been described here.

Gretchen Watkins.

My last major meeting, with Gretchen Watkins14, the Direct Mail Manager, was different from the others:

This was the only disconcerting part of the trip. She uses a very sophisticated FileMaker Pro system that was developed by her predecessor. It has an unbelievable number of functions in it. The guy who developed it used it for every single aspect of his job, including calculating postage and approving invoices. However, I don’t think that replacing this system needs to be part of phase 1 of this project.

Of course the developer mentioned above no longer supported the program that he used, and there was no documentation.

I flew back to Connecticut with a spiral notebook full of notes, a briefcase full of sample reports, and a list of telephone numbers of everyone in the department. It was late on Friday evening when I arrived, but I was back in the office on Saturday morning to work on the Design Document.

I found a copy of the original Design Document and a supplement that covered new planning projects. Unfortunately, they are in PageMaker format, and I no longer have any software that can open them.


December 12-14, 2005: Within two weeks I was back in Atlanta. This time—and on all subsequent trips—I stayed at a Hampton Inn in Buckhead. It was about a mile south of the MSO headquarters, but I was still in good shape in those days, and I did not mind the walk. The weather was much more pleasant than it would have been in New England.

What I did mind was the inconvenience when nature called while I was in the advertising department. The bathrooms in the building were in the elevator area. To get from the elevator area to the offices you needed a badge. I didn’t have one.

By this time the department was connected to an AS/400 owned by Federated that was located at an IBM installation in Raleigh, NC. It was managed by IBM employees in Raleigh. The first thing on my agenda was to give a data entry class to about ten people in a small theater set up for training classes. I gave each of them the book that explained how the screens worked, and the conventions used in AdDept.

I spent most of the rest of the day setting up the AdDept system for them. For the most part I used the settings from Macy’s West’s version, which was on the same box. Using data files that MSO provided I was able to populate a few of the tables in the MSO AdDept system: regions, pubs, rates, vendors, and G/L accounts.

The PC that I used was very slow, and every so often it would go into an interminable stall while a program on the company’s intranet scanned it for malware.

On Tuesday James Jordan, the network guy in MSO’s advertising department, and I sat in on a conference call with Dan Stackhouse from Macy’s West (introduced here) and several people from IBM. Fran Ponder managed Federated’s account. Harry Burnett was in charge of things from a sales angle. Anthony Berry was in charge of security. Steve Tesch and Richard Antle are the technical support people. I never met any of them, but at least the mystery of where the AS/400 resided was cleared up.

Amy Diehl. For the first time I had a tiny point-and-shoot digital camera made by Cascio. I had only a vague idea how to use it.

Amy Diehl, whose title is FedAd Manager and who was the liaison with TSI, told me that she planned to enter ads the following week. She would be on vacation the week between Christmas and New Year’s.

Amy could not believe how fast ads can be entered in AdDept. She told me that entry of one ad in Assets required 172 mouse clicks.

When I left to return to Connecticut the AdDept system was usable, but there were still major glitches that I could not address. For example, neither user profiles nor output queues had been created. So, one employee could use the training user ID to sign on, but there was no way even to print.

I am pretty sure that this is Aurore.

It was still unclear as to when they would be allowed them to create these. As always, there was a freeze on programming at this time of year. They were reluctant to do anything. Aurore said that she would address this.

I noticed that Macy’s West’s DAPANDL file had an enormous number of deleted records. I wrote to Denise that itshould be changed to reuse deleted records. The deleted records should be removed to recover disk space. Since there is a freeze on changes, we need to get the project of removing the deleted records approved by the change committee. I sent myself a reminder message to work with Dan on this when I got home.

A few small problems were discovered, but so far so good.


January 10-12, 2006 trip: I wanted to get the ROP portion of the system working. It was always important to show positive results quickly, and I could usually accomplish that in ROP. My notes reported that I addressed many little things, including some problems with the way that IBM had set up the system:

I had to start the batch subsystem.

We created a pub group with the first four pubs. We then ran the ROP schedule for the one day that Amy had entered.

We created day-of-the-week rates for the Atlanta Journal-Constitution for Thursday, Friday, and Saturday.

I conducted a short query class with Amy and Jeanna.

I created three libraries for them: S_QRY, S_OUTFILE, and S_UPLOAD.

Bernice Bailey16, who works with Cliff, sent me the layouts for the upload to expense payables and to the general ledger.

There are two output queues, MCAP0314 and MCAP0315. They seem to work. However, Amy’s user profile was associated with an output queue in California. James got Fran Ponder from IBM to fix the existing profiles.

They have negotiated with several papers that a limited number of full color full page ads get a special rate. I showed Amy how to set up special rate codes for these, D/xx, S/xx, etc. I also showed the ROP people, but the planning people, whom I have yet to talk with, are the ones who actually do this.

Bernice Bailey sent me a file with the entire hierarchy. I wrote a program to create the five hierarchy file and the department file. They are using descriptions, not people’s names. I also created a 999 entry in all five files for Storewide, which is the default department.

I turned off the feature of change management for positions.

I set up their stores using codes that were identical to their market codes.

I ran contract reports using Macy’s West data, and I showed it to Annemarie and Bill. They thought that the reports would really be useful.

I showed the insertion order process to Annemarie and Bill. I also showed them how to create boilerplate for the special instructions.

I showed the AXN letter to Annemarie and Bill. I told them what we needed from them to get the process going. They were very interested, but it is nearly impossible to get them to commit to anything.

When I returned to Connecticut there were still a number of things that IBM had not addressed:

Only two user profiles have been created.

Someone needs to change the startup program to restart the S_BATCH and S_INTER subsystems.

They do not have their own job description, but I don’t know whether they actually need one.

Of course, there were also eleven action items for TSI, and the most stressful period was yet to come. January was the last month of the fiscal year, and I had been challenged to match their closing numbers for January in order to feel comfortable closing February, the first fiscal month.


February 13-16, 2006, Trip: Things were still rather shaky in Buckhead:

Cliff did not know his password for the AS/400. I reset it for him. I had to do this for one other user as well.

It took a long time, but we finally figured out the ROP accrual for January. They underaccrued by a staggering amount. I put all the ROP discrepancies in ad #052-1. They will probably need to split the items on this ad. I doubt that they will want to take all of this expense in one month.

I had a Vietnam flashback on Tuesday. The PC that I was using suddenly turned into a Mac. Seriously. Evidently the monitor and keyboard were connected to some kind of switching device which was connected to a Mac as well as the PC. If you pressed the right Ctrl key twice, you toggled over to the Mac.

Thursday afternoon was rushed, but I did manage to show Cliff and Amy how to record purchase orders both ways and how to record both media and production invoices. I thought that it would be easy to record the first media invoice from the Cincinnati Enquirer, but the ads for the first week in February had not been checked. So we had to bail out of it.

Jackie Foulds.

I need to explain the “underaccrued” paragraph above. I worked with Jackie Foulds17 to find the problem.

The “ROP accrual” was for ads that had run but for which no invoice had yet been received. Since nearly all newspapers billed by the month, the list included nearly all ads for January. Accrual accounting demanded that the expenses be incurred in January. On this occasion the list included all of the correct numbers for each newspaper, but it was in Excel, and the total as defined on the spreadsheet somehow did not include the Atlanta Journal-Inquirer, MSO’s largest paper. So, their accrual entry had been off by over $600,000, and no one had noticed! It took Jackie and me nearly an entire day to find this error because I expected the devil to be in the details.

I was gobsmacked when I found this. The fiscal year had been closed, at least in theory. The department had reported far less expenses than it had actually incurred. That meant that the expense would hit in the wrong fiscal year, which could be disastrous for the department’s budgeting. Since no one seemed to be too upset about this, there must have been a way to correct the accrual.

Only eight items were on the to-do list that I brought back to Connecticut.


March 13-16, 2006, trip: This trip focused on insertion orders, claims (charging co-op vendors), and reconciling the February closing. Here are notes:

Don Detelj.

I had to give Cliff a new password. He forgot the one that I gave him the last time that I was there. I had to do this for several other people, too.

Amy and I met with Bill and Marie. They have a sour attitude about the whole project. I am not sure why they are so in love with the system that they have. It is not very good.

I created a program DM220RMSX for them based on Foley’s insertion order program. I expanded the headline to 30 characters and made a few other small changes. I ran a sample to show Bill and Marie from the newspaper area. I can’t say that they were very impressed. They do not seem to be able to imagine how this will work.

I gave a class on entering claims. The ladies entered all of the claims for February. I ran one of the programs on SSIMONTH so that they could have a list of what they keyed in. If there is a better program for this, we should put it on the MSABO menu.

We reconciled the accruals for almost all of the papers. There were a lot of mistakes, but the discrepancy was not as large as last month. When Jackie ran the reports, she accidentally ran them from January 30 through February 26. February 26 is in March. Someone also keyed in 255 instead of 225, so they over-accrued in Pittsburgh by $30K. The business office is very eager to use AdDept for accruals.

I need to call Don Detelj18 to find out what he needs to replace the “data dump” from Aims.

Can AdDept generate the next claim number? They want to use the numbers generated by Aims for now, but they would like AdDept to assume this role in the near future.

The IBM people assigned an output queue from Macy’s West to all of the new users from Macy’s South. I talked with James Jordan about this, and he said that he would bring it up with Fran Ponder.

Annemarie is insistent that they get faxing capability for their insertion orders. Aurore says that they are trying to get them to do this. They will have to get a modem and a phone line. This could be a hassle.

It was unclear who “them” was in the last paragraph. Aurore presumably knew. It might be some combination of IBM, FSG, and someone in accounting to approve it.

The list of action items for TSI was much longer this month. That was, in some ways, a good sign. It meant that the department had enough confidence in the system that they were using it in different areas.


April 10-13, 2006 trip: Another large new wrinkle had been added to the installation: getting historical data from Foley’s and Hecht’s (introduced here).

Kristal Brown.

New players: Wendy Ellis works in the newspaper area. She will probably be maintaining the newspaper ads once they have been activated. Andrea Harrison also works in the newspaper area. Kristal Brown19 is the planner for the home division. Linda Ashe20 is the planner for storewide, cosmetics, and ready-to-wear.

They want to include Foley’s ads in AdDept for 052 and 061. Since people at Foley’s are available for data entry, I recommended that people from Foley’s key them in. They will set up a series of ad numbers for Foley’s to use. Someone is going to have to translate the ad types, pub codes, and cost codes. There may be other things involved, too.

I was able to sign on to Foley’s with no trouble.

The machine in Raleigh will soon have faxing capability.

The business office did their March accruals in AdDept by themselves without any evident difficulty.

Amy held a class to show people how to sign on to Foley’s and Hecht’s. I don’t agree with the way that she did it, but it would have been overreaching for me to criticize her. I suspect that she does not realize how dangerous that iSeries Navigator is. I would never tell any user about it if I were she.

I set up a menu named MACYREPTS on the Macy’s South, Foley’s, and Hecht’s systems so that they can sign on to the Foley’s system to run reports. It is currently identical to the SRADV menu. I later had to change the one on Macy’s South so that the Foley’s options did not show up.

I told Jackie and Cliff about the reports which I added to the MSABO menu. I had previously e-mailed them about this, but evidently they needed to hear it personally.

I created an output file for Cliff.

I had to reset quite a few passwords.

Cliff’s user ID was set up with the wrong library for the output queue. I fixed it.

I uploaded about 1,000 vendor addresses. There were actually more than this, but they did not have usable vendor ID’s on their records, so I had to program in some guesswork into the program that wrote out the records.

Jackie does not want to use multi-part forms for claims. They want to dump the impact printer. She prefers that we print three copies. The first should have the word “Original” on it somewhere. The second should say “Vendor Copy.” The third should say “Merchant Copy.”

They like the latest version of the newspaper calendar!

I don’t think that Cliff ever used AdDept except when I was there forcing him to do it. He was a weird guy.

Amy must have learned about iSeries Navigator in classes at IBM. It was (and is under its new name of Navigator for i) an incredibly powerful tool. I was definitely right to feel nervous about her talking about it with users. I probably should have at least warned her about it after the class that she taught.

The list of open items that I brought back to TSI contained one for the Roadmap produced by the planners. That one item contained at least a dozen sub-items.


Randy Reeves.

June 6-8, 2006, trip: Amy had several meetings lined up for me: The first meeting was scheduled for 8:30 on Monday. Randy Reeves21, the new Divisional VP, was in a meeting and could not attend. Here are my notes.

We started with the ROP people. They now have three coordinators – Bill, Andrea, and April Dunn. Each is in charge of groups of markets. We signed on to the web site. I walked them through setting up their own contact information using the Default Contacts page and claiming their own pubs using the Individual Contacts page. We went through the entire process of ordering ads several times to make sure that everyone had it.

Bill was worried about the Lima, OH, newspaper. I called Eileen at TSI and asked her to call them to make sure that they were with the program.

They told me that they did not want to show costs. I had Eileen suppress costs for advertiser M055. I created a printer file named IO and associated it with M220 and M230 (insertion orders for ROP and inserts, respectively). I had to make some changes in DM220RSX. The pagination did not work right, and it did not show the header comments. I had to make some changes in DM220RSX. The pagination did not work right, and it did not show the header comments. I copied DM230RBTX to DM230RMSX. I made some changes to suppress the costs and to show blank lines of header comments. I also removed the “Authorized by” line.

We ran the insertion orders on Wednesday. They all went to AXN without error. We discovered that there was a problem with the special instructions. I had to add a statement to line 72000 to initialize the SI$ variable each time. This problem was inherited from Foley’s. Faxing is not yet in place.

The second meeting was with the people who record expense invoices. My notes stated:

We went through the entire process of creating an invoice upload file. It all seemed to work smoothly. They know that they have to key in the addresses if they want them to appear on the aprons. If they have a kickback, they will fix it on the .csv file and then fix it on AdDept. They do not plan to upload invoices a second time.

I also met with the people from the Business Office.

Cliff and Jackie attended a training class on co-op commitments. The only problem that they saw with the way that we did it was in regards to leased departments.

We talked about how they will enter leased.22 I was given a copy of the roadmap for Leased. It is not that different from the others. They will enter the actual media costs and, for books, the non-home cost from Gretchen. They will enter the marked-up amount as co-op with contra type LD.

The meeting with the people in direct mail did not go as well:

I showed them how to paginate books. They were extremely discouraged. I tried to convince them that the work that they had done in option 4 (number of pages by merchant) was not wasted, but I am not sure that I succeeded.

I set the default for the GRFLAG to G. I could swear that I did this the last time that I was here. They never enter departments except for co-op.

A fair number of new problems were encountered, but most of the system was operating smoothly by the time that I left Atlanta.


One of the MSO meeting rooms. I carried my oversized laptop and business materials in the large bag. The little one was for my camera.

July 9-13, 2006 trip: This was an important visit. July is the last month of the spring season. I wrote a lot of notes.

New players: Brigitte Billingslea23 processes expense invoices in the business office; Deonne (Dee) Wolters also works in the business office; Kristyn Page24 from Foley’s works on multi-cultural ads in the planning area.

We had a meeting to set up a strategy for the soft closing. Cliff, Jackie, Beth, Aurore, Amy, and Randy attended. Most newspaper invoices for June were keyed in. However, no other invoices and no purchase orders were entered. Active ads were created for ads from Foley’s and Hecht’s. We needed to come up with a way of excluding them from all financials.

The notes listed eight steps that were taken to isolate the ads from Foley’s and Hecht’s. Note was then made of an unexpected and unwanted situation:

Aaaaarrrgh! The transition from Foley’s occurs in the middle of July between week 2 and week 3. This will make closing July extremely difficult. So the above process applied only to ads running in weeks 1-24. The last two weeks of the season must use a different process.

I included at this point an outline of a comprehensive plan to close June and then July. It took up most of a page single-spaced. Most of it concerned how to get all the data entered for June, but the short items for July and August were interesting.

Mary Wiseman.

Mary Wiseman25 will accrue Foley’s expenses and send them to Cliff, who will enter them as a manual journal entry. Aims will be used for Macy’s South expenses. We will go through this whole process again next month. For August they will use AdDept somehow. There is no choice.

Then I listed what had been done on this trip to implement the plan:

I found three ads that had illegal values for the “Ad Type for Pages.” I fixed these and made sure that there were no others.

I twice scheduled the cost accounting to run in the evening, and I ran the actual version of the roadmap. It seemed OK to me, but there was nothing to compare it with.

For the purpose of catching up on entering expense invoices I recommended that they enter them in batches that were sorted by the month that the items were paid. Their natural inclination is to enter them by the month in which they were expensed. The business office people keyed in production invoices all week.

Cliff wanted a way to be able to see an audit trail of all of his manual journal entries. So, I planned to show him DA201, but I never got around to it.

The TSI user ID’s for both Dee and Brigitte had been set up so that they could not upload invoices. I changed both of them.

Amy told me that they do not exclude discounts when calculating percentage leased charges. I therefore changed that value in the specs. I also took out the default markup. She adds the markup to the percentage. I did not change the setting for co-op calculations. Amy was not in the office on Thursday. She had an emergency with her daughter.

I showed Cliff and Dee (who handles them) how to key in broadcast invoices. [Specific instructions for six tricky steps were listed.] I had to fix all of their existing broadcast invoices: All the DAMEDVD and DATRNSD records were off by 11.11%. I divided the amounts by .9. They pay gross at the market level! I created indirect sub-accounts AGCF5 (television) and AGCF6 (radio) to hold the credit for 10% of the gross. I added the credits to the invoices using DA282. When I fixed the broadcast invoices, it left the transactions out of balance. I needed to fix the OFFST entries.

Amy said that she thought that the process that I wrote up (suggested by Miriam) is too complicated. However, she did not have an alternative.

I brought back a list of problems. It was not overwhelming, but several items were gnarly.


This was the training room. It is also where they often let me work.

July 24-25, 2006 trip: There was a lot of tension. We were running out of time, and the game plan was to no one’s liking.

Amy, Beth, Cliff, and I spent Monday reconciling expenses for June. The newspaper accrual that they submitted included expenses for the last four days of May. This was a mistake. I wrote a query named MAY3DAYS in S_QRY to isolate these expenses for them. They eventually were able to tie it out. The broadcast accrual that I manipulated two weeks ago tied out. The P.O. accruals eventually tied out, too.

Beth got me a file of the invoices paid in June (except for prepaids). I made a database file name MSGL/AP0606 out of it. I then wrote a query named ALLAP in S_QRY to try to match it with invoices in AdDept. I created a second query named APTRNSMO to list the invoices with transaction month of June to try to get these to match up. By comparing the two we were able to find invoices with a posting month of June that were actually paid in earlier months. Amy moved them to the proper months using DA282. There were still unmatched invoices on the list of invoices for June, but they were for jobs in future months.

While we were doing all of this, the people in the business office were working on July.

On Tuesday Amy came in late because she had a flat tire. Beth worked on the ROF for July in the morning and had to leave about noon. We only got a few minutes of her time. I ran the open co-op report. It was much shorter than I expected. I soon learned that none o the co-op commitments for direct mail or preprints had been entered. I ran the Co-op Status by FOB report for June. I was able to match up the ROP pretty well. However, I could not use this to match up the actual co-op because the report from Aims included claims from July.

I created a few purchase orders for accruals that Cliff made in June.

I think they have given up on reconciling AdDept with Aims and the G/L for June and July. They just can’t seem to get the data entry done. However, they must use AdDept in August. That is now the highest priority. They will call me on Friday with their decision about when next I should come to Atlanta.

I explained to Amy how to key in the fax numbers for newspapers that do not subscribe to AXN. Amy asked me for the umpteenth time about faxing, and I gave her the same answer as before. She called IBM in Raleigh. They said that there was no need for a prefix in dialing out. They also said that everything was configured, but I could see no fax jobs running.

A lot had been accomplished, but many difficult items still needed to be addressed.

August 21-24 trip: I wrote a very long report about this trip.

Cliff showed me an invoice upload that did not work. There were no DUNS numbers on the vendor records. I wrote a query named NODUNS in S_QRY to find these for them.

They finally balanced their gross expense for June.

I wrote a process for Cliff to check the expenses in the G/L against AdDept. It consists of a program named RMV40, a command with the same name, and four queries: GLSUM, GLMATCH, GLNOMATCH1, and GLNOMATCH2. The queries are all in S_QRY. I documented the process in the document named GLMATCH, which I will put in the Macy’s South client folder. GLSUM must be run after the program and before the other queries. Later we discovered that the invoice upload process was stripping off starting 0’s and converting to upper case. I wrote a program to replicate this. I ran it after GLSUM.

They had had trouble faxing to Hampton. I added some more delays before the 4, and it seemed to work. Later April got a new fax number from Hampton. The faxing works with the new number. I don’t understand how Hecht’s was able to use the old number.

They had a pep rally at the Ravinia Crown Plaza on Tuesday. No kidding.

They decided that they want to use real PO’s with real vendors for Spring 2007. They will create blanket PO’s for accrual purposes for the fall. Randy said that they want to use 061 actual costs for direct mail for Hecht’s, Foley’s, and Macy’s South. I ran the DM647 to get actual costs for each direct mail book on Hecht’s system and Foley’s system. I ran DM489 for each book in the month for February for Hecht’s to see if that was what he wanted.

I gave a little P.O. class to Amy – DP260 and DP261 – so that she could help the other people learn about P.O.’s. I deleted USEDP271. This was a vestige from Macy’s West.

We discovered on Tuesday that no estimates had been entered for preprints. Then we discovered that all changes to estimates had been entered in Aims rather than AdDept. Evidently the people in that area did not understand that Aims was no longer being used.

I wrote off all open purchase orders. They did not close July in AdDept, so all of the P.O.’s were left over from June or earlier. That meant that somehow we needed to get the P.O. accrual for July into AdDept in order for the cost accounting not to consider 100% of the late invoices as August expense.

I entered the radio, television, direct mail, and insert accruals for July. Cliff decided that he did not want to reaccrue any of these. I therefore entered two zero invoices to write them off in August. I ran the accrual for July. The items showed up. I ran it for August. They were not there. Cliff has been carrying a short-rate accrual for ROP. I entered it as an indirect P.O. that hit the ROP account. He wanted to continue carrying it in August.

I wrote a process for Cliff to check the prepaid invoices in the G/L against AdDept. It consists of a program named RMV40PPD, a command with the same name, and four queries: PPDSUM, PPDMATCH, PPDNO1, and PPDNO2. The queries are all in S_QRY. I documented the process in the document named PPDMATCH, which I will put in the Macy’s South client folder. PPDSUM must be run after the program and before the other queries. Later we discovered that the invoice upload process was stripping off starting 0’s and converting to upper case. I wrote a program to replicate this. I ran it after PPDSUM.

I do not think that the programs to strip zeroes (STRIPGL and STRIPPPD) will be needed in September. The invoice upload will have been changed so that the 0’s do not get stripped off, and they no longer can use lower case.

I created TSIFAXOUTQ in QGPL. I then associate this output queue with TSIFAXPRTF and TSIFAXPRTI in TSIDATAS.

I checked the results of the ROF worksheet (which Cliff said is now obsolete because of management changes) against the accounting. It seemed to balance for everything except for ROP and magazines.

I set the earliest month for co-op accruals to be 062-1. If there were accruals from 061, they are not compatible with the way that we do it. I then ran the report and gave it to Cliff.

They asked me to change the specs so that they could pay any ad, no matter the status.

Needless to say, I did not attend the pep rally.

I brought back nine issues. Most of them were problems, not requests for new programming.


November 9-13, 2006 trip: Things had settled down a bit according to my report;

I put together makeshift processes for them to use to print the detail of their non-media expense by G/L account. I documented both of these processes. Basically they create output files from their accruals. Then they do a query for their actuals. Then they combine the results into one file and query that file.

Their accrued co-op was way off because they had not relieved any commitments for ad load. I showed them how to do this with claims for $0.

I wrote a query S_QRY/ACTVBYFOB for Jackie to get a list of actual co-op by FOB. She will use this until DB522 is fixed. This query creates an output file. I also gave one to Cliff named ACTVBYFOBP that prints. There were some authority problems, but they were both working when I quit.

I wrote a query S_QRY/INDIRECTS to get actual expenses for indirects for a season. They need this for the “Macy’s West Report.” The directs will come from DD #27.

I wrote a query named S_QRY/LINATLBU to provide a backup for the contract status report (DM767). The query S_QRY/INVADJ06 must be run first.

I changed the definition of the FILTER condition in the SLSXFR menu so that the filter program would appear.

Cliff gave me a file of sales by department for a month. A separate tab shows the sales by store for a month. Unfortunately the stores in DASTORE are actually markets. We tried to determine whether there actually is a requirement for either sales by store by month or sales by market by month. Cliff did not think so. Karla does not need the sales by month, but she would definitely like the sales by day. Miriam was not available.

I went over the prerequisites for running the store cost accounting with Amy. Basically she needs to run the BOOKQ query and option 7 on menu DAYEND.

I changed the default printing for DA102 so that the default is to put the printout on hold.

A few problems were discovered, and a few requests were made.


January 2-4, 2007: Both the notes and the list of issues were shorter than usual.

I had previously provided them with a query to find the amounts to charge their leased departments. They had three problems with it: One department was overcharged for an ad that was only 50% leased. I gave them a query named NOT100LEAS in S_QRY to find these. On two ads the amount that she charged them did not match the query. Cliff thought that the query was wrong, but he was off by one ad when he tried to match up a report with a query.

Cliff uses DB653 to do his journal entries for “accrued co-op.” He “accrues” the difference between season-to-date actuals and season-to-date committed. He and I have a different idea about what accruing means.

I had to increase the record length of DASLSTSI from 30 to 35.

I made a couple of changes to DA168U to make it match the file that Cliff can easily deliver. It also multiplies the amounts by 1,000. I checked individual entries and the totals for the November file that Cliff provided me. Everything seemed to work.

I wrote up instructions on the sales upload process. I e-mailed the instructions to Cliff and Amy.

I met with Gretchen Watkins and the two ladies who work for her in production. I showed them how to create purchase orders using option 26 of WRKADS.

They wanted to split freight between printer freight and mailer freight. I created a new sub-account FRML3 based on FRGT3 and a new cost code 705. They also wanted to split the computer charges to estimate the cost for “tracking and tracing” separately. I created a new sub-account TR&T3 for tracing and tracing based on COMP3. I also created a new cost category 515. I checked a direct mail ad. The new cost categories both showed up in option 28.

They are in the process of installing a new workflow system called Work Horse. Amy wanted to know if we could create a .csv file to feed it. She said that she would have to find out what would be in the file.

This was the last trip to Macy’s South. Since it occurred in the last month of the fiscal year, I suspect that the department’s budget for the next year included no provision for paying for my presence.


My life in Buckhead: I never rented a car in Atlanta. I always took MARTA from the airport to Bulkhead. On the first trip the hotel was within walking distance from the train station. On subsequent trips I took taxis from the train station to the Hampton Inn. I usually walked to Macy’s headquarters. One time when it was raining I asked the hotel to call a cab for me. They got me a ride, but it was not in a licensed cab. I did not complain.

I remember a lot about working at Macy’s, but little about anything else. The MARTA rides to Buckhead were usually late at night. The airport is south of the city, and Buckhead is far to the north. Sometimes it was a little creepy. The route went through downtown Atlanta. Often groups of young people who had been clubbing boarded there. At one point my car was occupied by myself, a group of young black women, and a group of young white men. The women were talking, and the guys overheard them. A discussion about the wisdom of the invasion of Iraq ensued. I was happy when that trip ended.

I cannot remember ever socializing with anyone from Macy’s. I ate lunch by myself in the cafeteria. I sometimes ate supper in the food court at a neighboring mall. Most of the time, however, I stopped at Arby’s on the walk back to the hotel and picked up a Reuben or a roast beef sandwich and ate in my hotel room.

I have quite a few memories of the Atlanta airport. My flights usually departed from Terminal F, but after I cleared security I usually took the tram to Terminal E. The elevator ended in a food court that contained a pretty large Chili’s restaurant. I would usually eat supper there, and, if I did, I would order the Baby Back Ribs with broccoli instead of French fries.

That restaurant was the only part of the airport that I liked. It always seemed very loud to me, even though I almost always spent the waiting time listening to operas or Italian tapes on my Bose headphones.


Epilogue: TSI maintained a good productive relationship with Macy’s Central until 2009, when the headquarters in Buckhead was closed, and all advertising was scheduled, produced, and ordered from New York.


1. FedAd and Assets were software systems written by a group that had been organized by Gilbert Lorenzo of the Burdines division. The system was supposed to be one integrated system that covered all aspects of advertising. It was used by Burdines and Bon Marché. After the integration of all of the divisions into New York some version of it was used in the advertising department there. The attempts to entice me to involve TSI in this multi-milllion dollar undertaking are described here and here.

2. Like almost everyone in the department, Aurore worked at Macy’s until 2009, when the advertising operations were consolidated in Manhattan. Her LinkedIn page is here.

3. Cliff looked like Santa Claus. I spent quite a bit of time with him over the course of the years. He revealed to me that he had a fairly substantial business on the side selling things on eBay. On one of my trips he told me about his plan to sell programs from some sort of Martin Luther King event being held in Atlanta. He also told me that some of his goods came from dumpsters. His LinkedIn page is posted here.

4. Beth Lane was a CPA who worked part-time in the Business Office. I remember very little about her. Her LinkedIn page is here.

5. Steve Weinbaum was astounded that I was willing to try to replicate the MSO planning process. I explained that I had done a lot of AdDept installations. No one had anything like this process, but several of them had other aspects that were equally challenging. His attitude impressed me. I wished that I had been able to work with him more. His LinkedIn page can be found here.

6. Miriam Pechar’s LinkedIn page is here.

7. Laurie Stenwall’s LinkedIn page is here.

8. Karla Schottle’s LinkedIn page can be viewed here.

9. Jeanna Corley’s LinkedIn page is here.

10. Andrea Harrison later moved to newspaper scheduling. Her LinkedIn page is here.

11. Karen Martin’s LinkedIn page is posted here.

12. Annemarie Poterba’s LinkedIn page is located here.

13. Bill McFadden’s LinkedIn page can be seen here.

14. Gretchen Watkins’s LinkedIn page is here.

15. Steve Tesch’s LinkedIn page is here. I could not find a page for any of the other IBM people or James Jordan.

16. Bernice Bailey’s LinkedIn page is posted here.

17. Jackie Fould’s LinkedIn page is posted here.

18 Don Detelj (silent j) was always sort of a mysterious figure lurking on the outskirts of the installation. His LinkedIn page is here.

19. Kristal Brown’s LinkedIn page can be seen here.

20. Linda Ashe’s LinkedIn page is here.

21. The LinkedIn page for Randy Reeves can be found here.

22. Most department stores have at least one department that is operated by another company that leases the space. Those companies must pay for the advertising that is run for them.

23. Brigitte Billingslea’s LinkedIn page is located here.

24. Kristyn Page’s LinkedIn page can be viewed here.

25. Mary Wiseman’s LinkedIn page is here.

1999-2002 TSI: The Million Dollar Idea

The genesis of AxN. Continue reading

In large measure this entry is based on and inspired by a set of recently discovered messages that I sent to my partner, Denise Bessette, about new projects that we were researching or working on. The first email was dated in late 1999. The last was in early 2001. The messages portrayed an exciting but scary time for both of us.

By the middle of the nineties it was evident to us that the way that TSI had been programming in the past fifteen years was becoming obsolete or was at least losing popularity. In 1992 Microsoft left IBM at the starting gate when it released Windows 3.1, the first version of its operating system that featured a graphical user interface (GUI) and was also stable enough that large corporations took it seriously. One could still make the argument that text-based software systems like the ones that we had developed were appropriate for many business tasks—in fact, most of the most important ones. However, if you did, you were probably dooming yourself to the fate of typewriter salesmen.

Great if you have just 2 fingers.

In fact, systems like AdDept and TSI’s other systems were branded by many of the magazines of the day as “legacy systems”. The emphasis of the new approach centered around the appearance of the screens, which now featured colors, images, text boxes, radio buttons, and varied fonts. They were certainly more interesting to look at than anything that we had produced. The mouse was the thing! The keyboard was only used when absolutely necessary. Whether they were as efficient or as easy to use was debatable, but, as I already noted, we were well aware of what had happened to the typewriter salesmen.

Another thing that happened during the middle of the nineties was the explosive growth of the Internet. All software developers wanted to be a part of it, but few were exactly sure how to approach it. I knew that we needed to figure out what aspect we should concentrate on, but it was not an easy decision to make. A few early participants made a lot of money, but an awful lot of ideas were catastrophic failures.

The Search for a GUI: I spent countless hours researching ways that we could provide a GUI for the AdDept system that did not involve a complete rewriting of the hundreds (and growing daily) of screens that we had already implemented. Every developer who worked on IBM midrange or mainframe systems must have been faced with the same problem. We all wanted a way to provide a system that looked modern but also took advantage of the thousands of lines of functioning code that had already been written.

I don’t know why, but IBM was not much help in this endeavor. Instead, in the late nineties IBM became a strong proponent of an object-oriented programming language developed by Sun Microsystems called Java. This was a startlingly new language. The first version was released in 1996.

I bought and read ten separate books that purported to teach Java programming. The structure of the language was consistent with the first principle of its design: “It must be simple, object-oriented, and familiar.” Well at least it was simple and object-oriented. The structure of the code was nothing like what I was accustomed to. Its main orientation was to a computer display, which it considered a set of objects, each with a set of properties and methods. That approached worked well enough for a screen, but how would it work for other things? After downloading the software development kit to my laptop and spending hundreds of hours mulling the contents of those books, I could do all of the exercises in every book, but I had not the slightest clue how to begin to code a system to manage any aspect of retail advertising. In fact I could not replicate even one screen of the AdDept system.

I did not completely discard the notion of using Java somehow, but if we did, we would definitely need some help. As I look back on this, maybe this is the reason why IBM was so crazy for Java.

The Spreadout Project: Users of TSI’s systems seldom complained about the look or feel of our data entry screens. Those screens would never have won any design awards, but the formats were completely consistent throughout the application, and everyone knew that they got the job done efficiently. Furthermore, they knew that TSI could implement requested changes rapidly and at moderate costs.

What they did not like much was the look of the reports, which was limited to one non-proportional font—Courier—with no images or even styles like italics or bolding. Many, if not most, of the people who used AdDept were quite good at making and manipulating spreadsheets. They were used to controlling the format of the output, and they liked the flexibility. For example, if they wanted someone to concentrate on one column or row, they could easily change the font, color, or style for just those cells.

Several clients asked us if it would be possible for us to produce an Excel spreadsheet as the output from designated programs in AdDept instead of or in addition to printed reports. I did not know if it would be possible, but I said that I would look into it. I dubbed this project “Spreadout”.

It was rather easy to produce an output file that contained the same rows and columns as the report, and we implemented that option in a large number of AdDept reports. The user could then download that file to their PC. That file could then be loaded into Excel with the rows and columns intact. However, the fields (or cells) in the file contained only text or numbers. It was not possible to download formulas for totaling or designate any kind of formatting. Furthermore, the process of downloading the file was not exactly speedy.

I tried to figure out what it would take to produce code that could provide files that could be opened in Excel with predetermined formulas and formatting. I found some documentation from Microsoft of the Excel files, but I never could concoct a way to provide what our customers asked for. Furthermore I never heard of anyone else who had accomplished this, and —believe me—I searched..

I did, however, managed to provide an alternative that proved popular to some clients. Almost all the AdDept customers used Hewlett-Packard printers that were accessible by the AS/400. HP sold books that documented the format for files in HP’s printer command languages, PCL 4, PCL 5, and PCL 6. I could then write code to produce spooled files that contained the output in exactly the format that the client specified. The downside was the considerable amount of coding required for each report, many times as much as it took to produce it in the Courier-only. It also required an extra step to send the output directly to the printer without being reformatted.

However, a few clients were so insistent about the need for a precise format that they were willing to pay the price. These reports were almost always the ones that they distributed to other departments or to higher-ups.

If anyone else ever did a project like this for the AS/400, I never heard of it. Unfortunately, I never figured out how it could be marketed as a stand-alone product usable with other AS/400 software.


As the new millennium approached, we—that is, Denise Bessette and I—felt that we needed to expand TSI’s horizons. In January of 2000 we flew to San Diego for IBM’s PartnerWorld conference in the hope of making contact with people who could advise us how to adapt to the need for modernization and the Internet. That enjoyable but frustrating experience has been described here.


On February 25, 2000, I took the time to write up in a fairly detailed manner how, given the inherent limitations of a small business like ours, TSI should to proceed in trying to develop a second line of business. Here is a portion of that memo:

General principles:

1. We should get the best people available to help us.

2. We should maintain AdDept as a dependable source of income. Whether we should invest a lot of time and/or money in enhancing and marketing AdDept is still to be determined.

3. We should try to leverage our assets better. Our income is too heavily dependent upon the number of hours put in by Mike and Denise.

4. We should assume that the economy will remain strong for another two years. On the other hand, we should avoid debt or at least large amounts of debt in case this assumption turns out to be false.

5. We should add new skills that are more marketable. That means learning some subset of Windows, object-oriented programming, and the internet. We should be thinking past the next project to the one after that if we can.

6. We should look for partners with skills and assets that complement ours.

7. We should not be deterred by the fact that some of these principles seem incompatible.

8. We need to act fast. Pursuing René2 cost us seven months. On the other hand we might have gone down some less profitable paths if she had been on board.

I think we should take the following steps as soon as possible.

1. Find out what it takes to get our existing clients to use AdDept for insertion orders. The following clients are not using AdDept for IO’s: Macy’s East, Neiman Marcus, Filene’s, Saks Fifth Avenue, and Hecht’s. I checked Herberger’s. They have ads through March 29, 2000, at least. Macy’s West is apparently starting. Gottschalks ran insertion orders yesterday. I don’t know about Meier & Frank, but I can take care of that on my trip.

2. Find out which advertising departments have access to the internet and would be willing to use it to check on insertion orders. I don’t think that this would be a problem with most of them. Unfortunately, we don’t really have anyone in the office who can do this for us.

3. Make an appointment with Ken Owen3 to run the idea of a clearinghouse for insertion orders by him. He may be very interested in working with us on it. I have quite a bit of respect for him. At the very least, he is smart and completely honest.

4. Run the clearinghouse idea by at least one of our clients. Why not schedule our trip to New York and run it by Tom, Chris, and whoever their ROP person is?4

5. Run the clearinghouse idea by at least one newspaper or someone who knows how newspapers think about these things today.

6. Start trying to package and market AdDept and/or AS/400 products and services. We need to maintain or enhance our cash position over the next six months.

7. We should find out what, if anything, the National Newspaper Association (NNA)5, the AAAA6, and AP AdSEND have done in this regard. The AP is a potential partner in this venture. I once had a copy of the NNA’s EDI spec7, but I seem to have thrown it out when we moved. I will see what I can find on the Internet.

Requirements for hiring a marketing/client services person:

1. He/she must be able to get along with Mike and Denise. This includes having a good work ethic. I think Doug barely met these qualifications.

2. Must be able to get along with the clients.

3. Must be willing to spend a lot of time on the phone.

4. Must be able to talk to decision-makers and occasionally presidents of corporations without looking foolish. Doug could do this, but his ability to identify the real decision-maker was just so-so. He was also almost always overly optimistic, but this might be necessary to offset my tendency to see the negative side of everything.

5. Must be able to refrain from overselling.

Pluses:

1. Intelligence. Determination can go a long way to overcome deficiencies in this categories, but I don’t think I want to try to explain things to someone any duller than Doug.

2. Retail experience.

3. Newspaper experience.

4. Other advertising experience.

5. Good business sense.

6. Sales experience.

7. Computer experience.

How to proceed.

1. We can run an ad in the Courant. There are almost as many classified ads for sales and marketing people there as for programmers. The only major retailer in the immediate area now is Ames, and they run no ROP. Therefore the chances of finding someone in Hartford who understands retail advertising are slim.

2. We can contact a headhunter. We don’t have to pay unless we find someone, but we will have to pay plenty if we do. It might be worth it if it speeds up the process.

3. We can advertise on the Internet. Does that cost money? If so, how much?

4. In interviews I think that we should consider dangling a carrot of a spinoff of a .com company for the insertion order clearinghouse. I am not exactly sure how to present this idea to someone. Maybe we could offer them a percentage of the new company with the understanding that we would try to sell it once it has become established.

In retrospective I find it impressive that I was able to earmark in advance so many important issues that TSI would face over the next few years. We made some mistakes, but we made a lot of good decisions.


A month later, on March 25, 2000, I mailed a letter to our contacts at all of the companies that used AdDept. I solicited their opinions on what TSI’s priorities should be in the new millennium. Here is a copy:

TSI is in the process of evaluating how best to allocate its resources over the course of the next year or so. Our highest priorities will remain providing excellent support for existing installations and responding to requests for custom programming from existing clients. However, there are a few additional projects that we are considering. We are very interested in learning what our existing clients think about them.

1. Menu maker: This is a fairly simple idea both in concept and in implementation. You would be provided with either a PC/Mac program or an AS/400 program that would allow you to create your own menus. The menus would reside in a separate library so that they would never get mixed up with the standard AdDept menus. You would provide the name for the menu and the heading text. For each option you that want to add, you would be allowed to select from a list of AdDept programs and menus. You could also enter your own command or an IBM command (e.g., WRKQRY). If you selected an AdDept menu or program, the description and the online help would be filled in for you, but you could override the text to make it say what you wanted.

2. GUI front end: Most software companies that market systems of a size comparable to AdDept have budgeted more than $1 million to “modernizing” their data entry screens to use a “graphical user interface” that is consistent with the methods used by Windows and Mac programs. It is now technically feasible to create a fairly nice GUI front end for AdDept for much less than that using products available from third party vendors. However, there is still a considerable capital outlay involved. We also estimate that it would take at least half of a man-year of labor. Furthermore, the PC or Mac would have to meet certain minimum requirements. Terminals would still use the green screens. TSI’s support regimen would be more difficult. The interactive programs would probably run slower on older AS/400’s. They may actually run faster on newer boxes.

3. Output to Excel: We believe that it is technically feasible (albeit difficult) to create a file from the AS/400 that is usable by Microsoft Excel with no intervening steps. It is a relatively straightforward task to download data files (or even spooled files) to spreadsheets today, but many intervening steps are required to get something presentable. TSI’s proposed method would allow you for each report that is eligible for this kind of treatment to designate (and permanently store) the formatting of the worksheet—report titles, column headings, “fit to page”, and most of the other values in “File, Page Setup.” You would also be allowed to designate fonts and sizes for the report title, the column headings, the body text, and each level of subtotals. The subtotal values would be formulas, not simple values. The same program could be used for data files that are produced by queries. The resulting worksheet could then be edited as needed. You can even edit, add, or delete lines in the worksheet. The subtotals will automatically be updated. Most simple reports could be reformatted to use the proposed program. It might be difficult or even impossible to generate some complex AdDept output using this approach.

4. Insertion order clearinghouse: We have long thought that the methods used for reserving newspaper space leave too much room for error and are overly labor-intensive, both for the advertiser and for the newspaper. The purpose of this project is to make the ordering process easier and to minimize the potential for miscommunication.

Instead of faxing the orders, the AS/400 would send them electronically to TSI. We would post them on a website. When the newspaper reps sign on, they would see all orders for them from all advertisers who are using this service. They would be able to add comments or questions and confirm them electronically with or without reservation numbers. They could also print the orders and, eventually, download them directly into their reservation systems. When you sign on, you would see all of your orders. It will be immediately obvious which ones have been confirmed, which have been read but not confirmed, and which have not been read yet.

What do you think of these ideas? Do you have any ideas of your own? We would greatly appreciate it if you would communicate your feedback to us at your earliest convenience. The last thing that we want to do is invest a lot of time and money in something that is of little or no perceived value to our clients.

I don’t recall receiving any substantive responses to this, but around this time Steve VeZain sent me a rather lengthy email that explained some of the priorities for Saks Inc. Our dealings with him and his company are detailed here.


Net.Data: At some point I became acquainted with an online forum called IGNITe/4007. This was a website where AS/400 developers could pose questions about using the AS/400 for applications for the web. Although some IBM experts participated, the forum was not run by IBM, but by a former IBMer named Bob Cancilla8, who worked for a company in Rochester, MN, the home of the AS/400.

Bob also wrote the book shown at left that explained how to use the AS/400 as an Internet server. IBM disdained the approach of its customers using a book written by someone who had actually gotten the AS/400 to function as an Internet server. Big Blue preferred that its customers spend hundreds of dollars on classes or thousands of dollars on consultants rather than $15 or $20 for a book. They also championed something called WebSphere to manage applications written in Java. During February and March of 2000 I had puzzled over the Redbook that documented this product. I was nearly ready to give up on the idea of using the AS/400 for anything related to the Internet until I found Bob’s book and website in April of 2000.

I purchased this excellent tome and followed most of Bob’s advice. I successfully configured TSI’s model 150 as an HTTP server to serve web pages to browsers and as an FTP server for exchanging data files. It was possible to use the AS/400 as an email server, but Bob advised against it. We elected to use AT&T for sending and receiving emails for our employees. We later configured our AS/400 to send outgoing emails through the SMTP (simple mail transfer protocol) server. Eventually IBM decided that it was a bad idea to have its own proprietary HTTP server and supported a version of the Apache server used by almost everyone else.

At that time the most popular scripting language for web-based applications was PERL. IBM never supported it on the AS/4009. Instead it provided its own language, which was called Net.Data (pronounced “Net Dot Data”). This was the only web language that could be used on the AS/400, and no other system in the history of the world ever used it. We obtained a copy of IBM’s handbook on Net.Data (posted online here), and I determined that we could probably use the language for what we wanted to do. Here is what I wrote about it at the time.

I signed on to the IGNITe400 website and registered as a member. It’s free. You can ask questions there. I looked at a few of them. Bob Cancilla himself answered some of the questions! I also looked at IBM’s Net.Data website. It is full of information.

I printed out a lot of documentation. I am now convinced that we can do what we want to do with HTTP server and Net.Data. This is exciting. Buying that book was a great idea. The links alone are worth the price. The biggest difficulty that I see will be working out the process of getting the orders from our customers and then from others.

… I have more than doubled my knowledge about the AS/400 and the internet in the last two days. Moreover, I think I could do it! I think that we should try it some time this coming week.

Net.Data was an interpreted language, just as BASIC was on the Datamaster and the System/36. The programs (which in web parlance were called scripts or macros) were not compiled into executable machine code. Changes to the scrips took effect as soon as the programmer made them. So, a developmental environment was a necessity. The time it took the processor to interpret the code and generate the HTML code that the browser could understand made all of the programs considerably slower than the compiled BASIC programs on the same machine. However, they were lightning fast compared to Java, the approach blessed by IBM.

So, I taught myself how to use Net.Data to deliver interactive scripts for a browser (at the time the main choices were Netscape Navigator, Internet Explorer, and whatever Apple called its browser before Safari). The language itself was relatively easy to understand, but programming for numerous constantly changing browsers was much different from programming for a very stable AS/400 and its 5250 user interface.

I also had to learn the Common Gateway Interface (CGI), which was the method of reading from and writing to files on the AS/400. This was totally different from what we were accustomed to. Our programs had always read the files a record at a time even after we switched to the AS/400’s relational database. With Net.Data it was necessary to execute an SQL statement that returned a set of data—rows (records) and columns (fields)—that was stored in an array (called a table in Net.Data). It was then necessary to loop through the rows of the array. I was already somewhat familiar with SQL, but I needed to learn how to use “joins” to do complicated selections.

These two volumes got a workout. The binding on the HTML book split in two years ago.

I also needed to buy books on HTML and JavaScript. If I had realized before I started that I needed to learn all of this, I might have deemed that the project would require more time and effort than I could afford. However, by the time that I realized what I was up against, I had invested so much time that I was not about to abandon the project.

There was no syntax-checking of Net.Data macros, and, at first, there was no editor to help by color-coding the statements. So, when I ran into a problem, which happened quite frequently, I had to search elsewhere for help.

Life got a lot easier when IBM put its Redbooks on CDs.

In researching for this blog, I found a pdf online for a Redbook (technical manual) that IBM published for people like me in 1997. It is posted here. Even a quick glance will make it clear that writing applications for the AS/400’s HTTP server would be a daunting task. For example, it contained this statement: “Net.Data Web macros combine things you already know such as HTML, SQL, and REXX with a simple macro language.” I did not know HTML at all, I knew only a little SQL, and to this day I have no idea what REXX was. Also, the Redbook neglected to mention that it was not really possible to write interactive programs without JavaScript.

I hung in there. Here is one of my last messages: “I feel a lot of pressure to work harder. I want this new project operational yesterday. It is going to be difficult at first. I want to get over the hump.”

I spent a lot of time in the IGNITe/400 forum. My best source of information was a guy from (I think) New Zealand, of all places. I never met him in person or even spoke with him on the phone. His name was Peter Connell, and he helped me through every difficult coding problem that I encountered. Not once was he stumped. By the time that I was well into the project, I was able to provide solutions to coding problems that others described.


TSI’s Internet Project: Even before Denise and I attended PartnerWorld, we had pretty much decided that our best shot at developing a successful Internet product would involve insertion orders, which is what newspapers and magazine call reservations that they receive from advertisers for ROP (display ads), inserts, polybags, or any other kind of advertising. TSI’s AdDept customers sent their reps at newspapers a schedule that listed all of the ads that they wanted to place for a specified period—usually a week. Most of them faxed this information to the papers. The rep at the paper examined the schedule. Sometimes questions required phone calls. Sometimes requests (such as designated positioning in the paper) could not be accommodated. Even after final approval the schedule was often changed by the advertiser before the ads ran, sometimes with very little advance notification.

Newspaper ads were expensive … and valuable.

Errors on both sides were not rare, and they could be quite costly. The newspaper often gave the retailer free ads to make up for the mistake. The advertiser’s loss might be much greater. In the nineties and early twenty-first century ads in newspapers were the primary vehicle for communicating with customers. Mistakes in the ads could cost the retailer thousands in sales, and they were embarrassing to the advertising department. Occasionally heads rolled.

In 2000 most retail advertisers faxed their schedules to the newspapers. If the line was not busy, the phones were rather reliable. However, what happened to the schedule after the fax machine received it? Was the printout legible? Did the rep ever get it, and, if so, what did he/she do with it. What assurance was there that the fax that the newspaper used to compose the paper was the final version?

We thought that the Internet might provide an opportunity to speed up this process and to improve its reliability. My first idea was to replace faxing with email. If the AS/400’s (free) SMTP server were installed, AdDept could compose and send to the newspaper an email that contained the schedule. Wouldn’t the newspaper rep immediately print the schedule? If so, how was this better than faxing? Doesn’t it just add another step? Besides, email is demonstrably less reliable than faxing. The worst that usually happens with faxing is that the output is blurry or even unreadable. Emails, in contrast, can be held up by any Internet Service Provider (ISP) that handles the message, and there could be dozens. So, the schedule might never make it to the rep’s inbox.

Eventually Denise and I settled on using FTP to send the schedule from the client’s AdDept system to TSI. Thereafter TSI’s AS/400 managed the whole process using a combination of BASIC programs and Net.Data macros. Details of the actual design are posted here.

After Denise and I agreed on the design, several details still needed to be settled:

  1. Who will do the coding at TSI?
  2. Who will pay for the service, the advertiser or the newspaper?
  3. How much will we charge?
  4. How will we market the product to our clients and their newspapers?
  5. How can we entice advertisers that did not use AdDept to use this method for insertion orders?
  6. Can we take advantage of the link established between TSI, the papers, and AdDept for other modules?
  7. What will the product be named?
  8. Will the project be part of TSI or a new financial entity?

The answer to #1 turned out to be Mike Wavada. I expected that I would eventually train Denise or one of the programmers so that they could at least support the existing code, but it never happened. It astounds me to report that this was a one-man coding job from day one, and no one else at TSI ever learned Net.Data. Hundreds of papers and most of the AdDept clients relied on it starting in 2002 and continuing through early 2014. Think about this: Between 2003 and 2012 I took six vacations in Europe and one cruise in the Caribbean. There were no serious incidents!

Questions 2-5 are addressed in the entry about marketing of AxN, which is posted here.

From the outset I was hoping that the nexus connecting newspapers and the retailers through TSI’s website could be used for other communications as well. The most obvious one was for the delivery of the files that contained the layouts of the ads. Nevertheless, I was reluctant to pursue this for several very good reasons. The first was that the Associated Press already had a huge head start with its very popular product called AdSEND10. There were also several other companies that offered similar services.

The other thing that gave me pause was the potential legal liability. It seemed to me that if we failed to deliver an ad correctly and/or promptly, we could easily be sued. A fundamental tenet of TSI’s operation had been to avoid any activity that might occasion a lawsuit. Throughout the first two decades of its operation, TSI had successfully avoided litigation. Also, we knew nothing about the process of sending ads electronically, and the AP already owned satellites that it used for this purpose. I also learned later that AdSEND had twelve dedicated T-1 lines, and one of TSI’s clients told me that that was not nearly enough. TSI eventually installed one T-1 line that easily handled the insertion order traffic generated by AxN.

An idea that I liked better was for the newspapers to transmit their invoices electronically through TSI’s servers to AdDept users. I even came up with a cool name for this: e-I-e-IO, which stood for electronic invoices and electronic insertion orders. My idea was to provide a program to feed the newspaper’s billing system with the information from the insertion order, and to feed the retailer’s AdDept system with the same information. I did a little research to see if one software system for billing or accounting was dominant in the newspaper industry and discovered that this was decidedly not the case. So, we would face the prospect of persuading one paper at a time, or, at best, one chain of papers at a time. Furthermore, someone else had already claimed the URL that I really wanted: eieio.com.

The name that I picked for the new product would still work if we came up with other ways for TSI to serve as a nexus between advertisers (A) and newspapers (N). It was AxN, which was pronounced “A cross N”. The A and the N were always portrayed in dark blue Times New Roman. The x was always in red Arial.

That leaves question #8. Denise was always in favor of making AxN a separate financial entity. However, we never found a way to extricate it from the rest of the business. We looked at the revenues separately, but we never even did a separate P&L for it.


1. René Conrad was TSI’s liaison with Kaufmann’s, the May Company’s division based in Pittsburgh. Both Denise and I had a very high opinion of her. When Doug Pease left TSI in 1999, we tried to hire René. Details of the AdDept installation at Kaufman’s are posted here. The unsuccessful pursuit of René is documented here.

2. Ken Owen is a friend and was a client. The latter role is explained here. By 1999 Ken’s business had drifted away from creating and placing ads for clients to software for the Internet. He gave us a little free advice, but the role for him that I envisioned did not materialize. I communicate via email with Ken every year on March 4, the holiday that we celebrate together—Exelauno Day.

3. Tom Caputo and Chris Pease were our key contacts at Lord & Taylor in Manhattan in those days. The history of the installation at L&T is recorded here.

4. I did contact the NNA, but nothing came of it. The person with whom I spoke was nice enough, but it became evident that trying to work with this organization would be extremely time-consuming and not the kind of thing that I was good at or enjoyed. Eventually I discovered that there were almost as many administrative systems for newspapers as there were newspapers. It appeared that there were no accepted standards.

5. The American Association of Advertising Agencies (AAAA—universally pronounced “four A’s”) published an annual list of software for ad agencies. For years TSI’s GrandAd system was on the list. I am not sure what I had in mind as an additional relationship. Perhaps I envisioned ad agencies that specialized in retailers might want to use AxN for insertion orders and would work with us to create an interface. Perhaps I thought that other software companies might add the interface to their products for ad agencies. Nothing like any of these things ever happened.

6. EDI is short for Electronic Data Interchange. It refers to an orderly setup that enables participant to exchange information electronically. When there are only two participants, it is usually just called an interface. “Specs”, which is short for specifications, refers to the documentation published and delivered to the participants and prospective participants.

7. I have no idea what the name of this group meant. At the time IBM was busy promoting the idea of e-business. IBM’s marketing director proclaimed at PartnerWorld that IBM “owned” the concept. So, that may explain why the e is not capitalized. I was surprised to find an article in Enterprise Systems Journal about IGNITe/400. It is posted here.

8. Bob Cancilla went back to IBM for a while and then became a consultant. His LinkedIn page is here. In 2018 he wrote about the thirtieth anniversary of the AS/400. It is posted here. The article explains some of the reasons why IBM treated the AS/400 division and its customers so shabbily almost from day one.

9. For some reason IBM repeatedly changed the name of the AS/400 to a bunch of things with the letter i appended. The operating system remained the same. Everyone at TSI, like most users, still called it the AS/400 even after the name changes.

10. In 2007 Vio Worldwide acquired “the assets” of AdSEND. The deal is described here. In 2010 Dubsat acquired Vio Worldwide. This transaction was reported here.