Naviga Analytics

Naviga Analytics

  • Analytix
  • BI
  • InSight
  • Informer

›BI Maintenance

BI Maintenance

  • BI Database Core Mapping
  • Running The BI Auditors

BI Resources

  • BI Resources

BI/Core Support Docs

  • BI FAQ
  • Adbase Core FAQS
  • BI ChargeTypes Explained

Common SQL Core/BI

  • Common BI Queries
  • Common Core Queries

BI Database Core Mapping

  • The BI Database

  • AdOrder Data Mart

    • fctAdOrder
  • Insertion Data Mart

  • ChargeTypes in the Advertising Data Mart

  • Spread Logic in the Advertising Data Mart

    • fctInsertion
    • fctInsertChargeSummary
    • fctInsertChargeDetail
    • fctSalesComm
  • GL Data Mart

  • GL Relationship to Advertising Side of BI

  • Calculating Linage from fctGL

  • Joining fctApply to fctARSummary

    • fctARSummary
    • fctGL
    • fctPreApply
    • fctApply
  • Contract Data Mart

  • Contract Information

    • fctContract
    • fctContractFulfillment
  • Dimension Tables

    • dmAdProduct
    • dmUser
    • dmClient
    • dmRelationshipAgency.
    • dmRelationshipParent
    • bridgeMultiClient
    • dmDate
    • dmAdOrderBools
    • dmAdOrderStatus
    • dmAdPromotion
    • dmAdOrderDetail
    • dmCompany
    • bridgeMultiSpecials
    • dmSpecias
    • bridgeMultiMaterials
    • dmMaterialCharge
    • dmLocation
    • bridgeOrderRoles
    • dmAdInsertBools
    • dmAdContent
    • dmAdDetail
    • dmLayoutInfo
    • dmLogos
    • bridgeLogos
    • dmAdLineage
    • bridgePRPDistribution
    • dmPRPDistribution
    • dmGLAccounts
    • dmCauseReason
    • dmCollections
    • dmBusinessArea
    • dmDigitalMediaCampaign
    • dmDigitalMediaFlight
    • dmDigitalMediaUnit
    • dmGLInvoiceDetail
    • dmGLTransaction
    • dmContractDetails
    • dmContractTemplate
    • dmContractBools
    • dmRateHolder 66
    • bridgeContractClient 67
    • bridgeRepPercentage
    • bridgeClientAlias
    • dmClientAlias

The BI Database

The BI database is designed using dimensional database modeling principles. By designing the database in this way we have created a database that presents data in a way that is easy to understand which makes it easy to query and get the data out.

A dimensional model is based on a star schema format.

img

The diagram above demonstrates why it is called a star schema.

There is usually one central table called a Fact Table. The fact table stores the transactions of the business. In the BI database we prefix these table names with FCT.

The tables surrounding the fact table and joining to it are called Dimension Tables. The dimensions describe the transactions that are in the fact table. In the BI database we prefix these table names with DM.

In addition to the Fact and Dimension tables there are also some Helper Tables called Bridge tables. Their names are prefixed with the word BRIDGE.

For example, if the fact table held Insertion transactions, then the dimensions would describe those transactions. Things like Products, Insert Dates, Customer, etc.

As you view the BI database you will notice that is split into four data marts.

  • Ad Order
  • Insertion
  • Contracts
  • GL

A single dimension table may be linked to multiple fact tables in different data marts. This can allow interaction between the data marts.

As you navigate through the BI database here are a few rules that will help you understand how it is set up:

  1. Fact tables have the prefix of FCT before their table name. So the AdOrder fact table is called fctAdOrder

  2. Dimension tables have the prefix of DM before their table name. So the AdProduct dimension is called dmAdProduct.

  3. If the field ends in _ID, it is a link to a dimension table in the BI database. To find which dimension, look at the word before the ID and add a dm to the beginning. For example, InsertDate_ID. If I take the word before the _ID (Date) and add dm to it, I get dmDate. This is the dimension table that the Insert_Date_ID is linking to.

    NOTE: Fields ending in _ID can not be used in queries to join to similar Core IDs. They may represent the same entity, but the number will be different. For example, Company_ID in fctInsertion is not the same ID number as CompanyID in aoAdOrder. Again, they may point to the same Company, but the IDs will be different.

  4. If the field ends in _AdBase, it is a link to an ID in the Core database. In this document, in the Core description field we will have the following text to indicate that this is a Core ID:

    • Link to CORE 🡒 This means that you may use these fields to actually join to fields in the Core database. For example, the AdOrderId_AdBase field in fctAdOrder can be used to join to aoAdOrder as follows:

      SELECT * 
      FROM fctAdOrder, aoAdOrder
      WHERE fctAdOrder.AdOrderId_AdBase = aoAdOrder.ID
      
  5. Most of the fields in the Fact tables will be ID fields linking to other dimensions.

  6. Most of the data marts will not have only one fact table, but will have multiple fact tables that are linked together to fully describe the transactions for that data mart.


AdOrder Data Mart

The Ad Order data mart has the following tables:

Fact tables

  • fctAdorder

Dimensions

  • dmClient
  • dmRelationshipParent
  • dmRelationshipAgency
  • dmAdOrderBools
  • dmOrderStatus
  • dmDate
  • dmUser
  • dmAdPromotion
  • dmAdOrderDetail
  • dmCompany
  • dmLocation
  • dmSpecials
  • dmMaterialCharge

Helper Tables

  • bridgeMultiMaterials
  • bridgeMultiClient
  • bridgeMultiSpecials
  • bridgeOrderRoles

fctAdOrder

BI Field NameCORE Field/Logic
AdOrderID_AdBaseLink to CORE 🡒 aoAdOrder.ID
Create_Date_IDLink to dmDate 🡒 aoAdOrder.CreateDate
ADOrderNumberaoAdOrder.AdOrderNumber
GroupMultiClient_IDLink to BridgeMultiClient.GroupMultiClient_ID
The bridgeMultiClient table allows an insertion to be linked to more than just the Primary Orderer and Payer.
Household_IDLink to dmHousehold.ID
The Household table was designed to be used to store the history of address changes of a customer. Currently it is populated, but not used in any of our reports or Analytix.
PrimaryPayer_Client_IDLink to dmClient.ID
AoOrderCustomers where PrimaryPayerFlag is TRUE
PrimaryPayer_Location_IDLink to dmLocation
Address information linked to the Primary Payer above.
PrimaryOrderer_Client_IDLink to dmClient
AoOrderCustomers where PrimaryOrdererFlag is TRUE
PrimaryOrderer_Location_IDLink to dmLocation
Address information linked to the Primary Orderer above.
Commissionedrep_User_IDLink to dmUser 🡒 Sold By Rep in AdBooker, aoAdOrder.SellerID
OrderTaker_User_IDLink to dmUser 🡒 aoAdOrder.RepID
CreditApprover_User_IDLink to dmUser 🡒 aoAdOrder.CreditOverID
KillUser_User_IDLink to dmUser 🡒 aoAdOrder.KillID
Killed_Date_IDLink to dmDate 🡒 aoAdOrder.KillDate
Expired_Date_IDLink to dmDate 🡒 aoAdOrder.ExpireDate
FirstInsert_Date_IDLink to dmDate 🡒 aoAdOrder.RunDateFirst
LastInsert_Date_IDLink to dmDate 🡒 aoAdOrder.RunDateLast
Modified_Date_IDLink to dmDate 🡒 aoAdOrder.LastEditDate
OrderTaken_Date_IDLink to dmDate 🡒 Always set to the date that the record was added to BI
Expedited_Date_IDLink to dmDate 🡒 aoAdOrder.DateExpedited
CreditApproved_Date_IDLink to dmDate 🡒 aoAdOrder.CreditOverTime
AdOrderBools_IDLink to dmAdOrderBools
AdOrderStatus_IDLink to dmAdOrderStatus
AdPromotion_IDLink to dmAdPromotion
Company_IDLink to dmCompany
Derived from aoAdOrder.CompanyID
GroupMultiSpecials_IDLink to bridgeMulitSpecials
ProductOfOrigin_AdProduct_IDaoAdOrder.ProductOfOriginID
AdOrderDetail_IDLink to dmAdOrderDetail
GroupOrderRoles_IDLink to bridgeOrderRoles
GroupMultiMaterials_IDLink to bridgeMultiMaterials
GroupRepPercentage_IDLink to bridgeRepPercentage
CreateTimeTime portion of the Create Date.
Stored as number of seconds past Midnight.
KilledTimeTime portion of the Kill Date.
Stored as number of seconds past Midnight.
ModifiedTimeTime portion of the Modified Date.
Stored as number of seconds past Midnight.
TotalInsertionsaoAdOrder.RunDateCountTotal
PONumberaoOrderCustomers.PONumber
AdOrder_Counter1 if a valid Ad Order , 0 if a “fake” ad order.
To find a count of ads you would use the following query:
SELECT SUM(AdOrder_Counter) FROM fctAdOrder
TotalCreditDebitAmountAll Credits and Debits for Order totaled. See Here for Credit/Debit Info
TotalAdAmountTotal Amount for rows in rtChargeEntryElem with a charge category of Insertion Charge
TotalPreprintAmountTotal Amount for rows in rtChargeEntryElem with a charge category of Preprint Charge
TotalColorAmountTotal Amount for rows in rtChargeEntryElem with a charge category of Color Charge
TotalMaterialAmountTotal Amount for rows in rtChargeEntryElem with a charge category of Material Charge
TotalTypographicalAmountTotal Amount for rows in rtChargeEntryElem with a charge category of Typographical Charge
TotalDiscountAmountTotal Amount for rows in rtChargeEntryElem with a charge category of Discount Charge
TotalSpecialDiscountTotal Amount for rows in rtChargeEntryElem with a charge category of Special Discount Charge
TotalPremiumAmountTotal Amount for rows in rtChargeEntryElem with a charge category of Premium Charge
TotalTaxAmountTotal Amount for rows in rtChargeEntryElem with a charge category of Tax Charge
TotalCNTadjustmentAmountTotal Amount for rows in rtChargeEntryElem with a charge category of Discount, Contract Discount, or Contract Adjustment
TotalAGYCommissionAmountTotal Amount for rows in rtChargeEntryElem with a charge category of Discount, Agency Commission Discount, Adjustment Charge or Agency Commission Adjustment.
TotalRoundingAmountTotal Amount for rows in rtChargeEntryElem with a charge category of Discount or General Rounding Charge
TotalNetAmountTotal Amount for all rows in rtChargeEntryElem for give Ad.
PriceRangeNameaoAdOrder.PriceRange
PlacedByNameaoOrderCustomers.PlacedBy
BlindBoxNumberaoAdOrder.BlindBoxID 🡒 aoBlindBox
OriginalPriceQouteaoAdOrder.OriginalPriceQuote
The original price when the order was first saved
LastPopulateDateDate that the BI Populate last “touched” this record. Used primarily in Analytix to allow for incremental updates.

Insertion Data Mart

The Insertion data mart has the following tables:

Fact tables

  • fctInsertion
  • fctInsertChargeSummary
  • fctInsertChargeDetail
  • fctSalesComm

Dimensions

  • dmClient
  • dmRelationshipParent
  • dmRelationshipAgency
  • dmAdInsertBools
  • dmDate
  • dmUser
  • dmCompany
  • dmLocation
  • dmAdContent
  • dmAdDetail
  • dmAdProduct
  • dmLayoutInfo
  • dmLogos
  • dmAdLineage
  • dmPRPDistribution
  • dmMaterialCharge
  • dmGLAccounts
  • dmSpecials
  • dmCauseReason
  • dmBusinessArea
  • dmDigitalMediaCampaign
  • dmDigitalMediaFlight
  • dmDigitalMediaUnit

Helper Tables

  • bridgeMultiClient
  • bridgeLogos
  • bridgePRPDistribution

There are three fact tables in this data mart. Below is how you will join them together.

img

Here is the SQL.

SELECT FCTINSERTION.ID,
   FCTINSERTCHARGESUMMARY.INSERTION_ID,
   FCTINSERTCHARGESUMMARY.ID,
   FCTINSERTCHARGEDETAIL.INSERTCHARGESUMMARY_ID
FROM FCTINSERTION, FCTINSERTCHARGESUMMARY, FCTINSERTCHARGEDETAIL
WHERE FCTINSERTION.ID = FCTINSERTCHARGESUMMARY.INSERTION_ID
AND FCTINSERTCHARGESUMMARY.ID = FCTINSERTCHARGEDETAIL.INSERTCHARGESUMMARY_ID


ChargeTypes in the Advertising Data Mart

When credits are loaded into the advertising side of BI they can fall into one of two CHARGETYPE buckets. CHARGETYPE is a field in the fctInsertChargeSummary table.

CREDIT – Shows only credits that were targeted to an ad or insertion. These include credits that Invoice Generator created because of a Trans ID in rtChargeEntryElem as well as credits is aoChargeAdjust (These are credits a user creates to target the GL of the credit to match the revenue GL for order).
Also those credits in aoPrepayment apply are marked as ChargeType CREDIT. (The aoPrepaymentapply table is where we store the prepayment data for an order.)

REV CR (Revenue Credit) – Shows credits that were “physically” used to “pay” down an order.

So when viewing CREDIT transactions we are seeing credits that are created and then applied to a specific order or insertion by the user.

The REV CR transactions are credits that applied to an order to reduce its cost. This can happen through balance utility, ad booker or any other application that applies existing credits to an order.

In Analytix we exclude all REV CR charges because including them will, in some cases, cause double dipping. This happens when a credit is created and applied to a specific order and that order is already paid. When this happens, a CREDIT transaction is created in BI and then when that credit is actually applied to pay down an order a REV CR transaction is created.

So, when we view all CREDIT charge types in BI, we see all credits targeted to specific orders, however we will not ever see credit that were created on a customers account. These credits will show up as REV CR charge types when they are applied to an order.

The other two charge types are:

CHARGE – indicates that this record is a part of the charge that the rating engine has determined for this ad

DEBIT – indicates a Debit that has been applied to this ad.

Spread Logic in the Advertising Data Mart

Certain revenue that is stored in the BI database will be spread across other insertions and charge types within an ad. This spread algorithm was designed to spread an amount, like order level charges and credits across all other charges and distribute a weighted amount to each.

The reason for this was so that and order level charge would not show up all on one day when querying for revenue.

For example, if you have an Ad that runs for 10 days and costs $100 dollars a day. You would have 10 insertion rows in fctInsertion and 10 rows in fctInsertChargeSummary showing $100 for each day.

Ad ChargeOrder Level Charge Not SpreadDay Total
Day 1$ 100.00$100$ 200.00
Day 2$ 100.00$ 100.00
Day 3$ 100.00$ 100.00
Day 4$ 100.00$ 100.00
Day 5$ 100.00$ 100.00
Day 6$ 100.00$ 100.00
Day 7$ 100.00$ 100.00
Day 8$ 100.00$ 100.00
Day 9$ 100.00$ 100.00
Day 10$ 100.00$ 100.00
Ad Total$ 1,100.00

Ad ChargeOrder Level Charge SpreadDay Total
Day 1$ 100.00$10$ 110.00
Day 2$ 100.00$10$ 110.00
Day 3$ 100.00$10$ 110.00
Day 4$ 100.00$10$ 110.00
Day 5$ 100.00$10$ 110.00
Day 6$ 100.00$10$ 110.00
Day 7$ 100.00$10$ 110.00
Day 8$ 100.00$10$ 110.00
Day 9$ 100.00$10$ 110.00
Day 10$ 100.00$10$ 110.00
Ad Total$ 1,100.00

Look at the spreadsheets above. The first shows how the ad would look if we didn’t spread the order level charge and the second shows how it looks when we spread the charge. You can see that the ad total is the same on both, but if you were to query just day 1 of the ad, you get different results.

Here is how the algorithm figures the weights:

Assume we are spreading a $50 Order Level charge across an ad with 3 revenue entries

Amount To SpreadTransactions to Spread Over
503
DateAmountSpread CalculationCalculation Weight% To SpreadSpread Amount
4/1/2009$ 10.0010/300.33333333%16.67
4/2/2009$ 15.0015/300.50000050%25.00
4/3/2009$ 5.005/300.16666717%8.33
Total$ 30.001.000000100%50
  1. Add all the revenue amounts together that we are going to spread the order level charge across. (Amount Column)
  2. Divide each line item amount by the total amount to get a weighted percentage of how much of the spread amount to allocate to this line item.
  3. Multiply the Spread Amount by the calculated percentage found in step two to get the spread amount allocation.

fctInsertion

BI Field NameCORE Field/Logic
fctAdOrder_IDLink to fctAdorder.ID
Insert_Date_IDLink to dmDate.ID. Date that this insertion ran. Derived from aoAdRunDates.
AdOrderID_AdBaseLink to CORE 🡒 aoAdOrder.ID
RunScheduleID_AdBaseLink to CORE 🡒 aoAdRunSchedule.ID
PRPScheduleID_AdBaseLink to CORE 🡒 AoPrpRunSchedule.ID
PrimaryOrderer_Client_IDLink to dmClient.ID AoOrderCustomers where PrimaryOrdererFlag is TRUE
PrimaryOrderer_Location_IDLink to dmLocation.ID Address information linked to the Primary Orderer above.
PrimaryPayer_Client_IDLink to dmClient.ID AoOrderCustomers where PrimaryPayerFlag is TRUE
PrimaryPayer_Location_IDLink to dmLocation.ID Address information linked to the Primary Payer above.
GroupMultiClient_IDLink to BridgeMultiClient.GroupMultiClient_ID The bridgeMultiClient table allows an insertion to be linked to more than just the Primary Orderer and Payer.
Household_IDLink to dmHousehold.ID The Household table was designed to be used to store the history of address changes of a customer. Currently it is populated, but not used in any of our reports or Analytix.
AdProduct_IDLink to dmAdProduct.ID
Billing_Date_IDAoInsertion.CreateDate
The billing date id was one of the fields which was created the early BI design, however, nothing was stored in it initially. A customer asked us to extract the create date from AoInsertion and store it in fctInsertion, so we chose to use this field to avoid a schema change. This is why it contains AoInsertion.CreateDate.
Modified_Date_IDLink to dmDate 🡒 aoAdOrder.LastEditDate
CommissionedRep_User_IDLink to dmUser 🡒 Sold By Rep in AdBooker
AdContent_IDLink to dmAdContent
AdDetail_IDLink to dmAdDetail
AdInsertBools_IDLink to dmAdInsertBools
Agency_Client_IDNULL (Not Populated)
LayoutInfo_IDLink to dmLayoutInfo
Company_IDLink to dmCompany Derived from aoAdOrder.CompanyID
AdLineage_IDLink to dmAdLineage
GroupDistributionCode_IDNo longer Used
AdNumberaoAdInfo.AdNumber
JointAdNumberaoAdOrder.JointAdNumber
NumColumnsaoAdContent.NumColumns
AdWidthaoAdContent.AdWidth
AdDepthaoAdContent.AdDepth
AdDepthAgatesCalculated using AdDepth
AdDepthMillimetersCalculated using AdDepth
AdDepthInchesCalculated using AdDepth
ColumnAgatesNumColumns * AdDepthAgates
ColumnMillimetersNumColumns * AdDepthMillimeters
ColumnInchesNumColumns * AdDepthInches
NumLinesaoAdContent.NumLines
WordCountaoAdContent.WordCount
InsertTimeTime portion of the Insert Date. Stored as number of Seconds past Midnight
Preprint_CountTotal number of Preprints for this insertion
Preprint_Count_ExpectedaoPreprintInfo.CountExpected
Preprint_Dealers_CountTotal Dealer Count
Preprint_Subs_CountTotal Subscriptions Count
Preprint_Nonsubs_CountTotal Nonsubs Count
Preprint_DirectMail_CountTotal Direct Mail Count
NumberOfTearsheetsNumber of Tear sheets requested/sent
Insertion_Counter1 if a valid insertion , 0 if a “fake” insertion. Fake insertions are sometimes used by the populator. One example would be a material charge without any insertions. To show this in the BI database, we need to create a “fake” insertion record.
RevenueTotal Revenue for this insertion as found in rtChargeEntryElem
AdjRevenueAdjustment Revenue, i.e. Charge Type of Credit or Debit, that apply to this insertion.
TaxTax Revenue that applies to this insertion. ChargeCategory of TaxCharge
AdjTaxCharges out of AdjRevenue that have a ChargeCategory of TaxCharge
Initial_RunSchedule_CountaoAdRunSchedule.InitialInsertionsOrdered
SAU_ColumnInchesCalculation is as follows: DepthInch = theAdDepth / 1440; WidthInch = theAdWidth / 1440; SauWidth = WidthInch / 1.833; SAU_ColumnInches = SauWidth * DepthInch;
GroupLogos_IDLink to bridgeLogos
ExternalAdNumberaoAdInfo.ExternalAdNumber
ExternalPRPNumberaoPreprintInfo.ExternalNumber
PickupNumberaoAdInfo.PickupNumber
DoubleTruckColumnsaoPageType.AdditionalCols
ColumnInchesTextColumn Inches for the text of an Ad
ColumnMillimetersTextColumn Millimeters for the text of an Ad
ColumnAgatesTextColumn Agates for the text of an Ad
ColumnInchesGraphicsColumn Inches for the graphics of an Ad
ColumnMillimetersGraphicsColumn Millimeters for the graphics of an Ad
ColumnAgatesGraphicsColumn Agates for the graphics of an Ad
ColumnInchesBorderColumn Inches for the border of an Ad
ColumnMillimetersBorderColumn Millimeters for the border of an Ad
ColumnAgatesBorderColumn Agates for the border of an Ad
GroupPRPDistribution_IDLink to bridgePRPDistribution
DigitalMediaCampaign_IDLink to dmDigitalMediaCampaign
DigitalMediaFlight_IDLink to dmDigitalMediaFlight
FlightScheduleID_AdBaseaoInFlight.ID
DigitalMediaUnit_IDLink to dmDigitalMediaUnit
DigitalMediaQtyDeliveredaoInFlight.QuantityDelivered
LastPopulateDateDate that the BI Populate last “touched” this record. Used primarily in Analytix to allow for incremental updates.

fctInsertChargeSummary

BI Field NameCORE Field/Logic
Posting_Date_IDLink to dmDate
Insertion_IDLink to fctInsertion.ID
ChargeCategoryType of charge see the rtChargeEntryElem Excel Spreadsheet for full details. AdInsertCharge PreprintAdInsert ColorItem MaterialItem MiscelaneousItemCharge TypographicalItem Premium Discount MessageOnly ContractAdjustment TaxCharge AdjustmentCharge InternetCharge
SpecialChargeCategoryNULL (Not Populated)
Amount_InsertSummaryrtChargeEntryElem.Amount – based on the Charge Category for the insertion this insert summary record is linked to.
ChargeTypeCHARGE CREDIT REV CR DEBIT See above for details
InvoiceNumberfnTransactions.TransNum
IsInsertion_FlagSet to TRUE if the Category Code represents an insertion charge as opposed to a discount charge, typography charge, etc.
LastPopulateDateDate that the BI Populate last “touched” this record. Used primarily in Analytix to allow for incremental updates.
Doc_Date_IDLink to dmDate 🡒 fnTransactions.DocDate

fctInsertChargeDetail

BI Field NameCORE Field/Logic
ChargeSubCategoryType of Detail charge. See rtChargeEntryElem Excel Spreadsheet for details.
SpecialChargeSubCategoryNULL (Not Populated)
InsertChargeSummary_IDLink to fctInsertChargeSummary.ID
Payer_Client_IDLink to dmClient🡒 rtChargeEntryElem.PayorID
CauseReason_IDLink to dmCauseReason
Specials_IDLink to dmSpecials
UserDefMaterialCharge_IDLink to dmMaterialCharge
GLAccounts_IDLink to dmGLAccounts
AdOrderID_AdBaseLink to CORE 🡒 aoAdOrder.ID
RTChargeID_AdBaseLink to CORE 🡒 rtChargeEntryElem.ID
AOPrePaymentApplyID_AdBaseLink to CORE 🡒 aoPrePaymentApply.ID
AOChargeAdjustID_AdBaseLink to CORE 🡒 aoChargeAdjust.ID
AOCreditDebitID_AdBaseLink to CORE àaoCreditDebit.ID
AOPaymentApplyID_AdBaseLink to CORE 🡒 aoPaymentApply.ID
Amount_InsertDetailAmount of Charge
Spread_FlagTRUE if this row is the result of a spread.
InvoicedAlready_FlagIndicates whether the charge has been invoiced or not.
AppliedOnChargeSubCategoryrtChargeEntryElem.AppliedOnCategorySubcode translated to SubCategory name in the Rate Code Breakouts.xls spreadsheet.
NumUnitsNumber of Units used in rating. rtChargeEntryElem.NumUnits
UnitTypeUnit type for number of units above. rtChargeEntryElem.UnitUnit
RateInfo_IDLink to dmRateInfo
ContractID_AdBaseLink to CORE 🡒 rtChargeEntryElem.ContractID
LastPopulateDateDate that the BI Populate last “touched” this record. Used primarily in Analytix to allow for incremental updates.

fctSalesComm

The fctSalesComm table contains the BI version of the core table AoInsertionSalesComm.

BI Field NameCORE Field/Logic
Insertion_IdLink to fctInsertion.ID
AdOrderId_AdBaseLink to CORE 🡒 aoInsertionSalesComm.AdOrderId
SaleRrep_User_IDLink to dmUser aoInsertionSalesComm.SalesRepId
SalesCommId_AdBaseLink to CORE 🡒 aoInsertionSalesComm.Id
PercentageaoInsertionSalesComm.Percentage Percent associated with this sales rep
DefaultEntryaoInsertionSalesComm.DefaultEntryFlag True if entry was added by default due to no business areas
UserEntryaoInsertionSalesComm.UserEntryFlag True if entry is user entered (not derived from business area)
BusinessAreaId_AdBaseLink to CORE 🡒 aoInsertionSalesComm.BusinessAreaId
SalesTeamId_AdBaseaoInsertionSalesComm.SalesTeamId

GL Data Mart

The GL data mart has the following tables:

Fact tables

  • fctARSummary
  • fctGL
  • fctPreApply
  • fctApply

Dimensions

  • dmClient
  • dmRelationshipParent
  • dmRelationshipAgency
  • dmCollections
  • dmDate
  • dmUser
  • dmCompany
  • dmLocation
  • dmCauseReason
  • dmGLAccounts
  • dmGLInvoiceDetail
  • dmGLTransaction

Helper Tables

  • bridgeMultiClient

GL Relationship to Advertising Side of BI

There are times when you may want to try and get information from some GL tables and also some information from the advertising side.

This is possible, but you must understand how these two data marts can be joined.

Before trying to join these two data marts, look at the field list in fctGL. We understood the need for Advertising information on the GL (things like Product info and linage) and have added many of these field to fctGL already.

If you find that you must join these data marts together, realize that you will only be able to join tables to pull attributes of an order or insertion.

This is to say that there is NOT a one to one relationship between the rows in fctGL and fctInsertion or even a single charge on the advertising side. One insertion is made up of multiple charges on the advertising side and when these charges are invoiced they are grouped together into GL Buckets and rows are written to fctGL.

Calculating Linage from fctGL

When calculating linage from fctGL you must only sum rows that have the insertion counter set to 1.

Example Query

SELECT transactionnumber, 
       Sum(columninches) 
FROM   fctgl 
WHERE  insertion_counter = 1 
GROUP  BY transactionnumber 

Joining fctApply to fctARSummary

fctApply contains information that link payments and credits to the invoices and debits that they are associated with.

Example Query

SELECT InvoicesDebits.transactionnumber, 
       CreditsPayments.transactionnumber, 
       fctapply.amountapplied, 
       fctapply.applieddate 
FROM   fctarsummary InvoicesDebits, 
       fctapply, 
       fctarsummary CreditsPayments 
WHERE  InvoicesDebits.id = fctapply.invoicedebit_arsummary_id 
       AND CreditsPayments.id = fctapply.creditpayment_arsummary_id 

fctARSummary

fctARSummary contains one row for every Invoice, Debit, Credit and Payment in the Core database. So many of these fields have a different source depending on the type of transaction.

BI Field NameCORE Field/Logic
Realized_date_IdLink to dmDate
Invoices/Debits – fnTransactions.TransDate
Payments/Credits – aoCreditDebit.EffectiveDate
Causereason_IdLink to dmCauseReason
aoCustomerCD
ARPayer_client_IdLink to dmClient
Invoices/Debits – fnTransactions.CustomerAcctId 🡒 Customer
Payments/Credits – aoCreditDebit.CustomerID 🡒Customer
AROrderer_client_IdLink to dmClient
Invoices/Debits – fnTransactions.AdvertisorAcctId 🡒 Customer
Payments/Credits – aoCreditDebit.AdvOrPayor 🡒Customer
AROrderer_location_IdLink to dmLocation
ARPayer_location_IdLink to dmLocation
glTrans_IDLink to dmGLTransaction
Indicates the type of transaction - Credit, Debit, Payment or Invoice
Company_IDLink to dmCompany
Invoice/Debits -fnTransactions.ProcessCompany
Payment – aoPayments.CompanyID
Credit – aoCustomerCD.CompanyID
TransactionNumberInvoices/Debits – fnTransactions.TransNum
Credits/Payments –aoCreditDebit.TransNumber
StatementNumberInvoices/Debits – fnTransactions.StatementNumber
AdOrderNumberCredit/Debits - AoCustomerCD.ApplyAdOrderId
Invoices – fnTransactions.RefNumber
aoCreditDebitId_AdBaseDebits/Credits/Payments 🡒 AoCreditDebit.ID
GLInvoiceDetail_IDLink to dmGLInvoiceDetail
Enteredby_User_IDLink to dmUser
Debits/ Credits – aoCustomerCD.CreatingUser
Invoices –
Payments – aoPayments.CreatingUser
CommissionedRep_User_IDLink to dmUser
Payments – aoPayments.CreatingUser
Debits/ Credits – aoCustomerCD.SalesRep
fnTransactionId_AdBaseInvoices/Debit - fnTransactions.ID
groupRepPercentage_IDLink to bridgeRepPercentage.groupRepPercentage_ID
Amount_ARSummaryPayments – aoCreditDebit.Amount * -1
Credits – AbsoluteValue(aoCreditDebit.Amount) * -1
Invoices/Debits – fnTransactions.InvTotalCost
TotalAmountAppliedPayments – aoCreditDebit.Amount - aoPayments_AmountNotApplied
Credits – aoCreditDebit.Amount – aoCustomerCD.AmountNotApplied
Invoices/Debits – fnTransactions.InvAmountPaid
FullyAppliedOrPaid_FlagBoolean indicating if a Debit or Invoice is unpaid or a Credit or Payment has not been fully applied If Amount_ARSummary = TotalAmountApplied then set to TRUE
ARSummary_CounterCounter field; always equal to 1
Collections_Date_IDLink to dmDate
fnTransactions.DateSentToCollections
Collections_IDLink to dmCollections
Closed_Date_IDLink to dmDate
aoCreditDebit.ClosedDate
Amount_WriteofffnTransactions.WriteoffAmount
Amount_CollectionsCollections amount
fnTransactions.CollectionsAmount
Amount_BadDebtBad debt amount
aoCreditDebit.BadDebtAmount
LastPopulateDateDate that the BI Populate last “touched” this record. Used primarily in Analytix to allow for incremental updates.
BatchNumberFnBatchInstance logical name (payment, credit only)
Invoices/Debits – 1
Payments/Credits – FnBatchInstance.LogicalName
DisputeInvoiceId_AdBaseCredits – AoCustomerCD.DisputedInvoiceId
Doc_Date_IDLink to dmDate
fnTransactions.DocDate
ReferenceNumberReference number from AoPayments

fctGL

One row for each transaction made against a GL Account. These can be Credits, Debits, Invoices or Payments.

BI Field NameCORE Field/Logic
Realized_Date_IDLink to dmDate
Invoices/Debits – fnTransactions.TransDate
Payments/Credits – aoCreditDebit.EffectiveDate
Client_IDLink to dmClient
Invoices/Debits – fnTransactions.CustomerAcctId 🡒 Customer
Payments/Credits – aoCreditDebit.CustomerID 🡒Customer
Location_IDLink to dmLocation
GLAccounts_IDLink to dmGLAccounts
Invoices/Debits – fnTransLineDist.AccountId
Payments/Credits – aoTransactionAcctMap.AccountId
Causereason_IDLink to dmCauseReason
aoCustomerCD
TransactionNumberInvoices/Debits – fnTransactions.TransNum
Credits/Payments –aoCreditDebit.TransNumber
GLTrans_IDLink to dmGLTransaction
Indicates the type of transaction - Credit, Debit, Payment or Invoice
GLLineItemId_AdBaseInvoices/Debits – fnTransLineDist.ID
Payments/Credits – AoTransactionAcctMap.ID
Company_IDLink to dmCompany
Invoice/Debits -fnTransactions.ProcessCompany
Payment – aoPayments.CompanyID
Credit – aoCustomerCD.CompanyID
DebitCreditCodeIndicates Accounting Credits and Debits
CR = Credit; DR = Debit
TransAmountView the Code
GL_CounterCounter field; Always equal to 1
ARSummary_IDLink to fctARSummary.ID
Apply_IDLink to fctApply.ID
Insert_Date_IDLink to dmDate
RunScheduleId_adbaseLink to CORE 🡒 AoAdRunSchedule.ID
PRPScheduleId_adbaseLink to CORE 🡒 AoPrpRunSchedule.ID
Insertion_CounterUsed here to determine which rows to use in a linage calculation. See here for details.
NumColumnsaoAdContent.NumColumns
AdWidthaoAdContent.AdWidth
AdDepthaoAdContent.AdDepth
AdDepthAgatesCalculated using AdDepth
AdDepthMillimetersCalculated using AdDepth
AdDepthInchesCalculated using AdDepth
ColumnAgatesNumColumns * AdDepthAgates
ColumnMillimetersNumColumns * AdDepthMillimeters
ColumnInchesNumColumns * AdDepthInches
NumLinesaoAdContent.NumLines
WordCountaoAdContent.WordCount
Preprint_CountTotal number of Preprints for this insertion
Initial_Runschedule_CountaoAdRunSchedule.InitialInsertionsOrdered
Preprint_Count_ExpectedaoPreprintInfo.CountExpected
Preprint_Dealers_CountTotal Dealer Count
Preprint_Subs_CountTotal Subscriptions Count
Preprint_Nonsubs_CountTotal Nonsubs Count
Preprint_DirectMail_CountTotal Direct Mail Count
SAU_ColumnInchesSAU column inches
AdProduct_IDLink to dmAdProduct
AdContent_IDLink to dmAdContent
AdInsertbools_IDLink to dmAdInsertBools
GLTypeThe GL type. See FnGLTypeEnumType enumerations in the Other Enumerations spreadsheet.
AdDetail_IDLink to dmAdDetail
LineTypeLine type
DoubleTruckColumnsaoPageType.AdditionalCols
ColumnInchesTextColumn Inches for the text of an Ad
ColumnMillimetersTextColumn Millimeters for the text of an Ad
ColumnAgatesTextColumn Agates for the text of an Ad
ColumnInchesGraphicsColumn Inches for the graphics of an Ad
ColumnMillimetersGraphicsColumn Millimeters for the graphics of an Ad
ColumnAgatesGraphicsColumn Agates for the graphics of an Ad
ColumnInchesBorderColumn Inches for the border of an Ad
ColumnMillimetersBorderColumn Millimeters for the border of an Ad
ColumnAgatesBorderColumn Agates for the border of an Ad
FlightScheduleId_AdBaseLink to CORE 🡒 AoInFlight.ID
AdLineage_IDLink to dmAdLineage.
AdDepthCentimetersAd Depth in Centimeters
ColumnCentimetersColumn Centimeters
LastPopulateDateDate that the BI Populate last “touched” this record. Used primarily in Analytix to allow for incremental loads.

fctGL.TransAmount Populate Code

// Trans amount.
float64_m theTransAmount, theAmount, theCreditAmount, theDebitAmount;
if ((theFunctionCode == ARPopulatePayment_e) || (theFunctionCode == ARPopulateCredit_e)) {
    theAmount = theAoTransactionAcctMap_p->get_theAmount();
    theCreditAmount = theAoTransactionAcctMap_p->get_theCreditAmount();
    theDebitAmount = theAoTransactionAcctMap_p->get_theDebitAmount();
}
else {
    if (theFnTransLineDstDetail_p != NULL)
        theAmount = theFnTransLineDstDetail_p->get_theAmount();
    else
        theAmount = theFnTransLineDist_p->get_theAmount();
    theCreditAmount = theFnTransLineDist_p->get_theCreditAmount();
    theDebitAmount = theFnTransLineDist_p->get_theDebitAmount();
}
// Convert positive credits to debits, negative debits to credits, etc.
if (theFnTransLineDstDetail_p != NULL) {
    theTransAmount = -(theAmount);
}
else {
    if ((theDebitAmount == 0.0) && (theCreditAmount == 0.0) && (theAmount != 0.0)) {
        if (theAmount < 0.00)
            theDebitAmount = fabs(theAmount);
        else
            theCreditAmount = fabs(theAmount);
    }
    if (theDebitAmount < 0.0) {
        theCreditAmount = fabs(theDebitAmount);
        theDebitAmount = 0.0;
    }
    if (theCreditAmount < 0.0) {
        theDebitAmount = fabs(theCreditAmount);
        theCreditAmount = 0.0;
    }
    theTransAmount = theDebitAmount - theCreditAmount;
}

NOTE - The fctPreApply and fctApply tables are deprecated. They are included for reference purposes only, but expect that they do not contain accurate data.

##fctPreApply **Deprecated - Do not use

One row is created each time a payment has an AoPrepaymentApply record belonging to it. Pre payment rows are created when a payment or credit is applied to an order which has not yet been invoiced.

BI Field NameCORE Field/Logic
AdOrderId_AdBaseLink to CORE 🡒 aoPrePaymentApply.AdOrderID
Ad Order ID prepay is associated with.
CreditPayment_ARSummary_IDfctARSummary ID if credit or payment.
Link to fctARSummary
AppliedDateaoPrePaymentApply.DateApplied
AmountAppliedaoPrePaymentApply.ApplyAmount
AmountPostedaoPrePaymentApply.AmountPosted
TaxPortionaoPrePaymentApply.TaxPortion
Applied_CounterCounter field; always equal to 1

fctApply **Deprecated - Do not use

One row is created each time an invoice has a credit, debit or payment applied to it.

BI Field NameCORE Field/Logic
Invoicedebit_ARSummary_IDLink to fctARSummary.ID
This links to an Invoice or Debit record in fctARSummary. See here for details.
CreditPayment_ARSummary_IDLink to fctARSummary.ID
This links to an Credit or Payment record in fctARSummary. See here for details.
AdOrderId_AdBaseLink to CORE 🡒 aoPaymentApply.AdOrderId
AppliedDateaoPaymentApply.AppliedDate
AmountAppliedaoPaymentApply.Amount
Applied_CounterCounter field; always equal to 1

Contract Data Mart

The Contract data mart has the following tables:

Fact tables

  • fctContract
  • fctContractFulfillment

Dimensions

  • dmClient
  • dmContractDetails
  • dmContractTemplate
  • dmContractBools
  • dmRateHolder
  • dmUser
  • dmCompany

Helper Tables

  • bridgeMultiClient
  • brdigeContractClient

Contract Information

There are times when you may want to try and get information from some GL tables and also some information from the advertising side.

fctContract

One row for each contract instance.

BI Field NameCORE Field/Logic
ContractDetails_IDLink to dmContractDetails.ID
ContractSignup_Date_IDLink to dmDate coContractInstance.SignupDate
ContractTemplate_IdLink to dmContractTemplate.ID
groupContractClient_IDbridgeContractClient.groupContractClient_ID Business Group Key link to the businesses that are part of the contract; Link to
CcontractStart_Date_IDLink to dmDate.ID coContractInstance.StartDate
ContractEnd_Date_IDLink to dmDate.ID coContractInstance.EndDate
GracePeriod_Date_IDLink to dmDate.ID coContractInstance.GracePeriodEndDate
EarlyExpire_Date_IDLink to dmDate.ID coContractInstance.EarlyExpireDate
ContractBools_IDLink to dmContractBools.ID
RateHolder_IDLink to dmRateHolder.ID
ContractSalesrep_User_IDLink to dmUser.ID coContractInstance.SalesRepOverride
Company_IDLink to dmCompany.ID coContractTemplate.CompanyID
TotalFulfillmentUnits1Accumulated units towards fulfillment of VAR1
TotalFulfillmentUnits2Accumulated units towards fulfillment of VAR2
PercentFulfilled1TotalFulfillmentUnits1 / theFulfillmentGoal1
PercentFulfilled2TotalFulfillmentUnits2 / theFulfillmentGoal2
AmountExpectedToDateNot populated 🡒 Set to 0
PercentExpectedToDateNot populated 🡒 Set to 0
Contract_CounterCounter field; always equal to 1
PerfTrendAmountcoContractInstance.PerfTrendAmount Short Rate/Rebate amount projected
PerfTrendLastChecked_Date_IDLink to dmDate.ID coContractInstance.PerfTrendLastChecked
PerfTrendLastCheckedTimeNumber of minutes past 12 AM coContractInstance.PerfTrendLastChecked
PerfStopNowAmountcoContractInstance.PerfTrendStopNowAmount Short Rate/Rebate amount if contract stopped now
PerfStopLastChecked_Date_IDLink to dmDate.ID coContractInstance.PerfTrendStopNowLastChecked
PerfstopLastCheckedTimeNumber of minutes past 12 AM coContractInstance.PerfTrendStopNowLastChecked
LastPopulateDateDate that the BI Populate last “touched” this record. Used primarily in Analytix to allow for incremental
Refaccount_Client_IDLink to dmClient.ID coContractInstance.RefAccountId
Refuser_User_IDLink to dmUser.ID coContractInstance.RefUserId
Createdate_Date_IDLink to dmDate.ID coContractInstance.CreateDate
Createuser_User_IDLink to dmUser.ID coContractInstance.CreateUserId

fctContractFulfillment

One row for each Ad Insertion that is to be counted towards fulfillment of the contract.

BI Field NameCORE Field/Logic
AdOrderId_AdBaseLink to CORE 🡒 coFulfillmentRec.RefAdOrder
RunscheduleId_AdBaseLink to CORE 🡒 coFulfillmentRec.RefAdRunSchedule
CofulfillmentRecId_AdBaseLink to CORE 🡒 coFulfillmentRec.Id
Insert_Date_IDLink to dmDate.ID Link to CORE 🡒 coFulfillmentRec.EffectiveDate
ContractDetails_IDLink to dmContractDetails.ID
AdNumberaoAdInfo.AdNumber If Preprint then aoPreprintInfo.PreprintNumber
AppliedFulfillmentUnits1coFulfillmentRec.Var1Fulfillment
AppliedFulfillmentUnits2coFulfillmentRec.Var2Fulfillment
Company_IDLink dmCompany.ID
ContractFulfillment_CounterCounter field; always equal to 1
aocreditdebitId_AdBaseLink to CORE 🡒 aoCreditDebit.Id From coFulfillmentRec.CreditDebitId
CauseReason_IDLink to dmCauseReason.ID
LastPopulateDateDate that the BI Populate last “touched” this record. Used primarily in Analytix to allow for incremental
prpScheduleId_AdBaseLink to CORE 🡒 coFulfillmentRec.RefPRPRunschedule

Dimension Tables

dmAdProduct

The dmAdProduct table contains various product related attributes for the ad insertion.

BI Field NameCORE Field/Logic
ProductAliasrtAliasProduct.Name
ProductNameaoProducts.Name
ProductDescriptionaoProducts.Description
ProductCategoryProductCategory.Name
WebCategoryNULL (Not Populated)
AdTypeaoAdType.Name OR aoPrePrintTypes.Name for Preprints
AdSubTypeaoAdSubType.Name
PlacementAliasrtAliasPlacement.Name
PlacementNameaoPlacements.Name
PlacementDescriptionaoPlacements.Description
PositionAliasaoPositionAlias.Name
PositionNameaoAdPositions.Name
PositionDescriptionaoAdPositions.Description
EditionaoAdRunSchedule.EditionID 🡒 aoEditions.Name
ZoneaoAdRunSchedule.ZoneID 🡒 aoZones.Name
PositionID_AdBaseaoAdPositions.ID
EditionID_AdBaseaoEditions.ID
ZoneID_AdBaseaoZones.ID
CheckSumInternal BI Populator Use
ProductID_AdBaseaoProducts.ID
AdTypeID_AdBaseaoAdType.ID OR aoPrePrintTypes.ID for Preprints
AdSubTypeID_AdBaseaoAdSubType.ID
PlacementID_AdBaseaoPlacements.ID
AdCategoryaoPlacCategory.Name
ProductCompany_IDLink to dmCompany
aoProductDef.Company.CompanyID 🡒 ShCompanies.Name
DivisionNameaoProductDef.DivisionID 🡒 CfDivision.Name
UseWithCrossSellFlagaoProductDef.UseWithCrossSellFlag
SubClass3ID_AdBaseaoAdRunSchedule.Level3ID 🡒 aoSubClassLevel3.ID
SubClass3NameaoAdRunSchedule.Level3ID 🡒 aoSubClassLevel3.Name
SubClass3DescriptionaoAdRunSchedule.Level3ID 🡒 aoSubClassLevel3.Description
SubClass4ID_AdBaseaoAdRunSchedule.Level4ID 🡒 aoSubClassLevel4.ID
SubClass4NameaoAdRunSchedule.Level4ID 🡒 aoSubClassLevel4.Name
SubClass4DescriptionaoAdRunSchedule.Level4ID 🡒 aoSubClassLevel4.Description

dmUser

The dmUser table contains information from the UsrUsers table and related tables describing the Sales Reps and other users of the AdBase system.

Reps in BI

There are many links from various BI tables to the dmUser table. This covers reps like Order Taker User, Credit Approver User, etc. However, there are two main types of Sales Reps within BI that are used most often.

  • Primary Rep – This is the sales rep that is associated with a customer. This rep is set in Customer Manager. This rep is found in dmClient.PrimarySalesRep_User_ID
  • Sold By Rep – This sales rep is set in Ad Booker when an order is placed. This rep usually defaults to the primary rep, but can be changed by the person entering the order. This rep is found in fctInsertion.Commissionedrep_User_ID.

Both of the above reps are located in the dmUser table. For example, let’s say we have a user “JDoe” in the dmUser table. This User can be a Primary Rep for a number of customers and at the time he can also be listed as a Sold By Rep for a number of ads that exist in the database.

A setting in System Admin 🡒 Tools/System Level Information 🡒Other Settings tab called “Update Existing dmUser Entry” is used to control what happens when a user is moved to a new sales team, region, territory or company.

1536678735607

Option 1

When this option is checked, any change made to the sales rep’s Team, Region, Territory or Company within system admin is reflected by updating the existing row in the dmUser table.

Option 2

If this option is not checked, then when a change is made to a sales rep’s Team, Region, Territory or Company a new row is created in dmUser for that sales rep, but his old row still exists.

What Does This Mean

These options effect how the Sold By rep’s transactions are able to be reported.

Every transaction (ad taken) has a Sold By sales rep attached to it. This is a field that is set in Ad Booker.

Option 1 will effectively let the Sold By sales rep’s transactions “move” with him when he moves to a new sales team, territory or region.

For Example:

Rep JDoe is on Team Alpha in ’17 and in Dec ’17 he sold 10 ads in which he was the rep in the Sold By field in Ad Booker. If we were to run a report for Dec ’17 for Team Alpha, Rep JDoe’s sales would be included in the total.

If in Jan ’08 Rep JDoe was moved to Team Beta and Option 1 was set in System Admin, the same report, Dec ’17 for Team Alpha, Rep JDoe’s sales would NO longer be included in the total.

However if Option 2 was selected in System Admin, the above report would be the same both before and after Rep JDoe was moved to Team Beta.

Be aware the Rep JDoe always is the Sold By rep on the ads. This just allows you to choose what Team, Region, Territory or Company those ads should show up in.

Here are the dmUser fields.

BI Field NameCORE Field/Logic
UserLinkIdNULL (Not Populated)
UserNumberUsrUsers.UserID
UserLoginNameUsrUsers.LoginName
User_Client_IDNULL (Not Populated)
Namefirst_UserUsrUsers.UserFName
Namelast_UserUsrUsers.UserLName
Address1_UserUsrUsers.Address1
City_UserUsrUsers.City
State_UserUsrUsers.StateID 🡒 StateName.StateName_A
Zipcode_UserUsrUsers.Zip
Country_UserUsrUsers.CountryID 🡒 CountryName.CountryName_A
Salesteam_UserUsrUsers.SalesTeamNameID 🡒 SalesTeamName.TeamName
Salesregion_UserUsrUsers.SalesRegionID 🡒 SalesRegionName.RegionName
Salesterritory_UserUsrUsers.SalesTerritoryID 🡒 SalesTerritoryName.TerritoryName
Company_IDLink to dmCompany 🡒 derived from UsrUsers.CompanyID
Userstart_Date_IDLink to dmDate 🡒 Set to the date that the record was loaded into BI.
Always the same as Userstop_Date_ID
Userstop_Date_IDLink to dmDate 🡒 Set to the date that the record was loaded into BI.
Always the same as Userstart_Date_ID
Currentrecord_FlagAlways set to ‘TRUE’
Manager_User_IDLink to dmUser.
This links to the user in dmUser associated with the UsrUsers.SupervisorID in core.
DivisionNameUsrUsers.DivisionID 🡒 cfDivision.Name
SalesIdentifierUsrUsers.SalesIdentifier

dmClient

The dmClient table contains attributes related to customers.

BI Field NameCORE Field/Logic
AccountNumber_AdbaseCustomer.AccountNumber 🡒 Client s AdBase Account number
PrefixNULL (Not Populated)
NameFirstCustomer.Name2
Namelast_BSNCustomer.Name1
NameMiddleNULL (Not Populated)
SuffixNULL (Not Populated)
TitleNULL (Not Populated)
BirthDateNULL (Not Populated)
GenderNULL (Not Populated)
EthnicityNULL (Not Populated)
PrimaryPhoneNumberCustomer.PrimaryTelephone
Format for loading is 9999999999. If length is 7
PrimaryPhoneExtensionCustomer.PrimaryExtension
Format for loading is 999999. No padding
SecondaryPhoneNumberCustomer.SecondaryTelephone
Format for loading is 9999999999. If length is 7
SecondaryPhoneExtensionCustomer.SecondaryExtension
Format for loading is 999999. No padding
FaxNumberCustomer.PrimaryFax
Format for loading is 9999999999. If length is 7
CellNumberNULL (Not Populated)
PrimaryEmailCustomer.EmailAddress
Converted to lowercase on load
SecondaryEmailNULL (Not Populated)
Salesregion_ClientCustomer.SalesRegionID 🡒 SalesRegionName.RegionName
Salesterritory_ClientCustomer.SalesTerritoryID 🡒 SalesTerritoryName.TerritoryName
Customertype_ClientCustomer.TypeID 🡒 CustomerType.Name
CustomerGroupCustomer.GroupID 🡒 CustomerGroup.Name
CustomerCategoryCustomer.CategoryID 🡒 CustomerCategory.Name
CustomerTradeCustomer.TradeID 🡒 CustomerTrade.Name
CustomerPriorityCustomer.PriorityID 🡒 CustomerPriority.Name
CustomerStatusCustomer.StatusID 🡒 CustomerStatus.Name
EmailSolicitok_FlagNULL (Not Populated)
EmailSolicitDateNULL (Not Populated)
PrimarySalesrep_User_IDLink to dmUser 🡒 Customer.PrimarySalespersonID
Primary sales rep for this customer; Link to dmUser Table
Business_FlagCustomer.CompanyFlag
Agency_FlagCustomer.AgencyFlag
This business customer is an agency
Activeclient_FlagNULL (Not Populated)
CreditRiskCustomerCreditInfo.CreditRiskID
The credit risk that has been assigned to this customer by the newspaper.
CreditLimitCustomerCreditInfo.CreditLimit
Maximum credit limit available for this customer
CreditStopped_FlagCustomerCreditInfo.CreditStoppedFlag
TRUE - this customer s credit line has been stopped.
FALSE - this customer s credit line has NOT been stopped
CreditReviewDateCustomerCreditInfo.CreditReviewDate
InCollections_FlagCustomerCreditInfo.InCollections
Customer is currently in collections
CollectionsAgencyCustomerCreditInfo.CollectorsID
Name of collector
LoginNameCustomer.WebLoginName
DoNotSolicit_FlagCustomer.DoNotSolicitFlag
DoNotSolicitPhone1_FlagCustomer.DoNotSolicitPhone1
DoNotSolicitPhone2_FlagCustomer.DoNotSolicitPhone2
DoNotSolicitFax_FlagCustomer.DoNotSolicitFax
BookingStatusCustomer.BookingStatusCode
Booking status
Creditrep_User_IDLink to dmUser CustomerCreditRep.PrimaryCreditRep
PreviousCreditRep_User_IDLink to dmUser
Incollections_Date_IDLink to dmDate CustomerCreditInfo.InCollectionsDate
CollectionInfoCustomerCreditInfo.CollectionInfo
OutCollections_Date_IDLink to dmDate CustomerCreditInfo.OutCollectionsDate
Collections_IDLink to dmCollections
Salesteam_ClientCustomer.SalesTeamID 🡒 SalesTeamName.TeamName
Company_IDLink to dmCompany Customer.CompanyID
Creation_Date_IDLink to dmDate Customer.CreationDate
TaxExempt_FlagCustomerBillingInfo.TaxExemptFlag
TRUE or FALSE
WriteOffExempt_FlagCustomerBillingInfo.WriteOffExemptionFlag
TRUE or FALSE
DemandFeeExempt_FlagCustomerBillingInfo.DunningLetterExemptionFlag
TRUE or FALSE
SplitBillingexempt_FlagCustomerBillingInfo.SplitBillingFeeExemptionFlag
TRUE or FALSE
InvoiceFeeExempt_FlagCustomerBillingInfo.InvoiceFeeExemptionFlag
TRUE or FALSE
FeesAdjusted_FlagCustomerBillingInfo.AdjustmentsIncludeInvoiceFee
TRUE or FALSE
CommissionEligible_FlagTRUE or FALSE
FinanceChargeExempt_FlagTRUE or FALSE
DunningLettersExempt_FlagCustomerBillingInfo.DunningLetterExemptionFlag
TRUE or FALSE
PORequired_FlagCustomer.PurchaseOrderRequiredFlag
TRUE or FALSE
PrintInvoice_FlagCustomerBillingInfo.PrintInvoiceFlag
TRUE or FALSE
PrintConsInvoice_FlagCustomerBillingInfo.PrintConsolidatedInvoiceFlag
TRUE or FALSE
PrintCreditBalance_FlagCustomerBillingInfo.PrintCreditBalancesFlag
TRUE or FALSE
SendInvoiceParent_FlagCustomerBillingInfo.InvoiceToParentFlag
TRUE or FALSE
SendInvoiceChild_FlagCustomerBillingInfo.InvoiceToChildFlag
TRUE or FALSE
NoAutoReinstate_FlagCustomerBillingInfo.AutoReinstate
TRUE or FALSE
CollectionsExempt_FlagCustomerBillingInfo.CollectionExemptionFlag
TRUE or FALSE
PayAsOrderer_FlagCustomerBillingInfo.AllowOrdererPayment
TRUE or FALSE
CreditStatusTypeCustomerCreditInfo.CreditStatusType
Credit status type (see CreditStatusEnumType.h)
ICNumberCustomer.ICNumber
Identity Card Number
GroupClientAlias_IDLink to bridgeClientAlias
SecondarySalesrep_User_IDLink to dmUser
Customer.SecondarySalespersonID
AttentionToCustomer.AttentionTo
Creating_User_IDLink to dmUser
Examines Audit Trail to see if an entry can be found that constitutes the user who added the customer. If so, it is put here.
OrganizationIdCustomer.FederalID
TaxIdCustomer.TaxID
PayStatusCodePayment status code

dmRelationshipAgency

The dmRelationshipAgency table contains links Agencies with their clients. Each row in the dmRelationshipAgency table contains a number of links back to dmClient for the various clients that make up the relationship.

In the dmRelationshipAgency table you will have one column agency_client_id that will link to dmClient and describes the parent Agency for the client_client_id which also links back to dmClient and will describe the client that is a child to the agency. See the query below for an example of these joins.

The dmRelationshipAgency table also contains 4 grandparent levels. The first grandparent level would be the client that is the parent of the agency in the given record, the 2nd level grandparent would be the parent of the parent of the agency and so on.

Sample Query:

SELECT Agency.namelast_bsn       AS Agency,
       AgencyClient.namelast_bsn AS Client,
       dmrelationshipagency.*
FROM   dmclient Agency,
       dmrelationshipagency,
       dmclient AgencyClient
WHERE  AgencyClient.id = dmrelationshipagency.client_client_id
       AND dmrelationshipagency.agency_client_id = Agency.id
BI Field NameCORE Field/Logic
RelationshipId_AdBaseLink to CORE 🡒 Relationship.ID
Agency_Client_IDLink to dmClient.ID This is the Agency Link
Client_Client_IDLink to dmClient.ID This is the child to the Agency
RelationshipDescRelationship.RelationshipDesc
CreditRep_User_IDLink to dmUser.ID
PreviousCreditRep_User_IDLink to dmUser.ID
CreditStopped_FlagTRUE or FALSE
BookingStatusBooking status
SalesRep_User_IDLink to dmUser.ID
gp_Client_IDLink to dmClient.ID
g2p_Client_IDLink to dmClient.ID
g3p_Client_IDLink to dmClient.ID
g4p_Client_IDLink to dmClient.ID

dmRelationshipParent

The dmRelationshipParent table links Parents with their Children. Each row in the dmRelationshipParent table contains a number of links back to dmClient for the various clients that make up the relationship.

In the dmRelationshipParent table you will have one column parent_client_id that will link to dmClient and describes the parent for the client_client_id which also links back to dmClient and will describe the client that is a child to the parent. See the query below for an example of these joins.

The dmRelationshipParent table also contains 4 grandparent levels. The first grandparent level would be the client that is the parent of the parent in the given record, the 2nd level grandparent would be the parent of the parent of the parent and so on.

NOTE: These tables define the relationships between clients, but DO NOT define any revenue "share" information. If you are looking for who paid for an Ad, you would look to the Primary Payer field (PRIMARYPAYER_CLIENT_ID) in fctInsertion.

Sample Query:

SELECT Parent.namelast_bsn       AS Parent, 
       ParentClient.namelast_bsn AS Child, 
       dmrelationshipparent.* 
FROM   dmclient Parent, 
       dmrelationshipparent, 
       dmclient ParentClient 
WHERE  ParentClient.id = dmrelationshipparent.child_client_id 
       AND dmrelationshipparent.parent_client_id = Parent.id 

BI Field NameCORE Field/Logic
RelationshipId_AdBaseLink to CORE 🡒 Relationship.ID
Parent_Client_IDLink to dmClient.ID This is the Agency Link
Child_Client_IDLink to dmClient.ID This is the child to the Agency
RelationshipDescRelationship.RelationshipDesc
CreditRep_User_IDLink to dmUser.ID
PreviousCreditRep_User_IDLink to dmUser.ID
CreditStopped_FlagTRUE or FALSE
BookingStatusBooking status
SalesRep_User_IDLink to dmUser.ID
gp_Client_IDLink to dmClient.ID
g2p_Client_IDLink to dmClient.ID
g3p_Client_IDLink to dmClient.ID
g4p_Client_IDLink to dmClient.ID

bridgeMultiClient

Normally, you will link to the dmClient table via the fact table fields such as PrimaryOrderer_Client_ID or PrimaryPayer_Client_ID. However, if you want a list of all clients that were part of the customers for a given ad.

Sample Query:

SELECT fctinsertion.id, 
       fctinsertion.adnumber, 
       dmclient.accountnumber_adbase, 
       bridgemulticlient.* 
FROM   dmclient, 
       bridgemulticlient, 
       fctinsertion 
WHERE  fctinsertion.groupmulticlient_id = bridgemulticlient.groupmulticlient_id 
       AND bridgemulticlient.client_id = dmclient.id 
BI Field NameCORE Field/Logic
groupMultiClient_IDLink to fctInsertion.groupMultiClient_ID OR any other table that has a groupMultiClient_ID link.
Client_IDLink to dmClient.ID
AdvertiserTypeIf aoOrderCustomers.PayedBy = 1 then
‘Payer’
Else
‘Orderer’
IsPayer_FlagIf aoOrderCustomers.PayedBy = 1 then
‘TRUE’
Else
‘FALSE’
IsOrderer_FlagIf aoOrderCustomers.OrderedBy = 1 then
‘TRUE’
Else
‘FALSE’
PercentagePaidaoOrderCustomers.PayPercent
PercentageOrderedaoOrderCustomers.OrderPercent
PercentagePaid_SpaceaoOrderCustomers.PercentOverrideSpaceCharge
PercentagePaid_ColoraoOrderCustomers.PercentOverrideColorCharge
PercentagePaid_OtheraoOrderCustomers.PercentOverrideOtherCharge
AmountPaidaoOrderCustomers.PayAmount

dmDate

Each row in the dmDate table holds a single date and describes the date fully.

BI Field NameCORE Field/Logic
CalendarDateDate Field
Day_OfWeek_TextFull Text - MONDAY, TUESDAY, etc.
Day_OfWeek_Number1-7. In accordance with international standard ISO-8601 1=Monday
Day_OfMonthDay number in month. 1-31
Day_OfYearDay number in year 1-365
Month_NumberOfDaysContains number of days in month. 28-31
Month_OfYear_TextFull Text - January, February, etc.
Month_OfYear_Number1-12
MonthEnd_DateDate that the last day of the month falls on.
Date Field
MonthEnd_FlagIndicates whether this date is the last day of the month.
TRUE or FALSE
Week_OfYearIndicates the week number in the year. 1-52
WeekDay_FlagMonday through Friday = TRUE
Saturday or Sunday = FALSE.
WeekEnd_DateWeek ending date for the week that this date falls into. Date Field
Holiday_FlagCurrently Not Used – Always set to FALSE.
Year_CalendarCalendar year that this date fall into.
Format is YYYY
Year_FiscalIndicates which fiscal year this date fall in.
Format is YYYY
Year_FiscalStartDateThe start date of the fiscal year
Date Field
Year_FiscalEndDateThe end date of the fiscal year
Date Field
Quarter_Calendar_TextText description of the calendar quarter that this date falls in.
FIRST, SECOND, etc
Quarter_Calendar_NumberNumber indicating the calendar quarter that this date falls in.
1-4
Quarter_Fiscal_TextText description of the fiscal quarter that this date falls in.
FIRST, SECOND, etc
Quarter_Fiscal_NumberNumber description of the fiscal quarter that this date falls in.
1-4
Period_StartDateStart date of period in which this date falls.
The BI Populator looks in the fnAccountingPeriod table to see if the CalendarDate falls into a period range in the table. If it does, it will return the Start Date of the period.
Date Field
Period_EndDateEnd date of period in which this date falls.
The BI Populator looks in the fnAccountingPeriod table to see if the CalendarDate falls into a period range in the table. If it does, it will return the End Date of the period.
Date Field
Period_OfYear_TextText description of the period that this date falls in.
fnAccountingPeriod.Name for the period that this Calendar Date falls into.
Period_OfYear_NumberNumeric value of the period that this date falls in.
1-12
PeriodEnd_FlagIndicates if this date is a period end date. TRUE or FALSE.
Based on the EndDate in fnAccoutingPeriod.
Holidays_IDNULL (Not Populated)

dmAdOrderBools

Within BI we chose to store many of the common Flag type fields in separate tables. dmAdOrderBools holds flags that pertain to the Ad Order level.

All flags in the bools table are either TRUE or FALSE.

BI Field NameCORE Field/Logic
DoNotPaginate_FlagaoAdOrder.LayoutRequiredFlag
DoNotBill_FlagaoAdOrder.BillingRequiredFlag
DoNotProduce_FlagaoAdOrder.ProductionRequiredFlag
InvoicedAlready_FlagWill only be set to TRUE if ALL of the insertions for the order have been invoiced. The lowest level of this flag is found in the fctInsertChargeDetail table.
IsConfidential_FlagaoAdOrder.ConfidentialFlag
Rebill_FlagaoAdOrder.RebillSourceFlag
Renewal_FlagaoAdOrder.Renewal
Quote_FlagaoAdOrder.QuoteFlag
QuoteToOrder_FlagaoAdOrder.QuoteToOrderFlag
QuoteExpired_FlagaoAdOrder.QuoteExpiredFlag
CallbackCompleted_FlagaoAdOrder.CallbackCompleted
Incomplete_FlagaoAdOrder.IncompleteFlag
ChecksumBI Populator System Field
Check sum of this record

dmAdOrderStatus

The dmAdOrderStatus table contains Order Status and the Current Queue for a given AdOrder.

BI Field NameCORE Field/Logic
OrderStatusaoAdOrder.OrderStatusID 🡒 aoAdOrderStatus.Name
CurrentQueueaoAdOrder.CurrentQueue

dmAdPromotion

The promotion linked to the Ad Order.

BI Field NameCORE Field/Logic
PromoNameaoPromotions.Name
PromoDescaoPromotions.Description

dmAdOrderDetail

Miscellaneous ad order attributes.

BI Field NameCORE Field/Logic
KillReasonNameaoAdOrder.KillID 🡒 shKillReasons.Name
Kill reason name, if ad order is killed
PaymentMethodaoOrderCustomers.PaymentMethod
DivisionNameaoAdOrder.DivisionID 🡒 cfDivision.Name
CrosssellTypeaoAdOrder.CrossSellType
Decoded into text by BI Populator
CatClusterId_AdBaseaoAdOrder.CatClusterID
CatClusterNameaoAdOrder.CatClusterID 🡒 aoCatCluster.Name
CatClusterDescaoAdOrder.CatClusterID 🡒 aoCatCluster.Description
CatcodeId_AdBaseaoAdOrder.CatCodeID
CatcodeNameaoAdOrder.CatCodeID 🡒 aoCatCode.Name
CatcodeDescaoAdOrder.CatCodeID 🡒 aoCatCode.Description
ChecksumBI Populator System Field
Check sum of this record

dmCompany

BI Field NameCORE Field/Logic
CompanyNameaoAdOrder.CompanyID 🡒 shCompanies.Name
Address1_CompanyshCompanies.AddrLine1
Address2_CompanyshCompanies.AddrLine2
Address3_CompanyshCompanies.AddrLine3
City_CompanyshCompanies.City
State_CompanyshCompanies.State
Zipcode_CompanyshCompanies.ZipCode
CompanyCodeshCompanies.CompanyCode
DescriptionshCompanies.Description
Primary_FlagshCompanies.IsMasterCompany
TRUE or FALSE

bridgeMultiSpecials

Links multiple specials to an Ad Order.

Sample Query:

SELECT fctadorder.adordernumber, 
       bridgemultispecials.*, 
       dmspecials.* 
FROM   fctadorder, 
       bridgemultispecials, 
       dmspecials 
WHERE  fctadorder.groupmultispecials_id = 
       bridgemultispecials.groupmultispecials_id 
       AND bridgemultispecials.specials_id = dmspecials.id 
BI Field NameCORE Field/Logic
GroupMultiSpecials_IDLink to fctAdOrder
See query above
Specials_IDLink to dmSpecials.ID
SpecialsAmountCalculated from the RTCharge records that are marked as
SpecialPriceReasonNameaoSpecialPrice.ReasonID 🡒 cfspPriceReasons.Name

dmSpecials

Sample Query:

SELECT fctadorder.adordernumber, 
       bridgemultispecials.*, 
       dmspecials.* 
FROM   fctadorder, 
       bridgemultispecials, 
       dmspecials 
WHERE  fctadorder.groupmultispecials_id = 
       bridgemultispecials.groupmultispecials_id 
       AND bridgemultispecials.specials_id = dmspecials.id 
BI Field NameCORE Field/Logic
SpecialPremiumNamertPremSpecial.SpecialPremiumNameId 🡒 rtSpecialPremiumType.Name
SpecialDiscountNamertDiscSpecial.SpecialDiscountNameId 🡒 rtSpecialDiscType.Name
SpecialNotesaoSpecialPrice.SpecialNotes

bridgeMultiMaterials

This table will allow us to link a single Ad order to multiple materials that are included in the order.

Sample Query:

SELECT  fctAdOrder.AdOrderNumber,
        bridgeMultiMaterials.*,
        dmMaterialCharge.*
FROM    fctAdOrder,
        bridgeMultiMaterials,
        dmMaterialCharge
WHERE fctAdOrder.groupMultiMaterials_ID =bridgeMultiMaterials.groupMultiMaterials_ID
AND     bridgeMultiMaterials.MaterialCharge_ID = dmMaterialCharge.ID
BI Field NameCORE Field/Logic
groupMultiMaterials_IDLink to fctAdOrder
MaterialCharge_IDLink to dmMaterialCharge
MaterialQuantityTotal units for all materials attached to this order.
aoOrderMaterials.MaterialUnits
MaterialtotalAmountTotal cost for all materials attached to this order.
aoOrderMaterials.MaterialPriceUnit * MaterialQuantity

dmMaterialCharge

The dmMaterialCharge table contains information pertaining to any material charges for a given AdOrder.

Sample Query:

SELECT  fctAdOrder.AdOrderNumber,
        bridgeMultiMaterials.*,
        dmMaterialCharge.*
FROM    fctAdOrder,
        bridgeMultiMaterials,
        dmMaterialCharge
WHERE fctAdOrder.groupMultiMaterials_ID =bridgeMultiMaterials.groupMultiMaterials_ID
AND   bridgeMultiMaterials.MaterialCharge_ID = dmMaterialCharge.ID
BI Field NameCORE Field/Logic
MaterialNameaoAdMaterials.Name
MaterialAmountaoOrderMaterials.MaterialPriceUnit
glAccounts_IdLink to dmglAccounts.ID

dmLocation

BI Field NameCORE Field/Logic
PreDirectionNULL (Not Populated)
HouseNumberNULL (Not Populated)
StreetNameNULL (Not Populated)
StreetSuffixNULL (Not Populated)
PostDirectionNULL (Not Populated)
UnitDesigNULL (Not Populated)
Address1Customer.PrimaryAddress1
Address2Customer.PrimaryAddress2
Address3Customer.PrimaryAddress3
SecondaryNumberNULL (Not Populated)
ZipcodeCustomer.PrimaryZipCode (First 5 digits)
Zip4Customer.PrimaryZipCode (Last 4 digits)
CityCustomer.PrimaryCity
CountyNULL (Not Populated)
StateCustomer.Primary StateID 🡒 StateName.StateName_A
CountryCustomer.PrimaryCountryCode
LatitudeAlways Set to 0.0
LongitudeAlways Set to 0.0
OKToMail_FlagNULL (Not Populated)
LotNULL (Not Populated)
LotOrderNULL (Not Populated)
CheckDigitNULL (Not Populated)
DpbcNULL (Not Populated)
CarrierRouteNULL (Not Populated)
WalkSequenceNULL (Not Populated)
Microvision_IdNULL (Not Populated)
UnitTypeNULL (Not Populated)
InsertZoneNULL (Not Populated)
GeomatchNULL (Not Populated)
LocationTypeNULL (Not Populated)
CheckSumBI Populator System Field Check sum of this record

bridgeOrderRoles

Links multiple order roles to an Ad Order. Used in conjunction with groupOrderRoles.

fctAdOrder 🡒bridgeOrderRoles bridgeOrderRoles 🡒dmClient

BI Field NameCORE Field/Logic
groupOrderRoles_IDLink to fctAdOrder
OrderRole_Client_IDLink to dmClient
OrderRolesLinkId_AdBaseLink to CORE 🡒 aoOrderRolesLink.ID
OrderRolesNameaoOrderRoles.Name
OrderRolesDescriptionaoOrderRoles.Description
OrderRoleaoOrderRoles.OrderRole
Order role as defined in OrderRoleEnumType.
IsInactiveFlagaoOrderRoles.IsInactiveFlag
TRUE = Order Role entry is inactive
OrderRolesId_AdBaseLink to CORE 🡒 aoOrderRoles.ID

dmAdInsertBools

Within BI we chose to store many of the common Flag (True/False) type fields in separate tables. dmAdInsertBools holds flags that pertain to the Ad Insertion level.

All flags in the bools table are either TRUE or FALSE.

BI Field NameCORE Field/Logic
HasBorder_FlagaoAdContent.HasBorder
HasBackground_FlagaoAdContent.HasBackground
IsReversed_FlagaoAdContent.IsReversed
IsCouponAd_FlagaoAdInfo.CouponAd
ProdRelease_FlagaoAdInfo.ProdRelease
RateOverride_FlagaoAdRunSchedule.RateOverride
AdVerified_FlagaoAdRunSchedule.Verified
IsDoubletruck_FlagaoAdInfo.DoubletruckFlag
IsPublished_FlagrtChargeEntryElem.PublishedFlag
Loops through all charges for an insertion. If all have PublishedFlag set to True (1) this field is set to TRUE else it is set to FALSE
IsInvoicedAlready_FlagrtChargeEntryElem.InvoicedAlreadyFlag
Loops through all charges for an insertion. If all have InvoicedAlreadyFlag set to True (1) this field is set to TRUE else it is set to FALSE
IsTillforbid_FlagaoAdRunSchedule.IsTillForbid
IsStandby_FlagaoAdRunSchedule.IsStandBy
SortTextOverride_FlagaoAdRunSchedule.SortOverride
OnlineProduct_FlagaoProductDef.IsOnlineProduct
DoNotPaginate_FlagaoAdInfo.LayoutRequiredFlag
IsPreprint_FlagIf the BI Populator has a pointer to a preprint we know this is a preprint and set the flag to TRUE.
ExcludeContractFulfill_FlagaoAdRUnSchedule. DenyContracFulfillFlag
OddShaped_FlagaoAdInfo.OddShapedFlag
checksumBI Populator System Field
Check sum of this record

dmAdContent

The dmAdContent table contains numerical attributes that describe the insertion in question.

BI Field NameCORE Field/Logic
NumBoldWordsaoAdContent.NumBoldWords
NumItalicWordsaoAdContent.NumItalicWords
NumUnderlinedWordsaoAdContent.NumUnderlinedWords
NumCenteredLinesaoAdContent.NumCenteredLines
TotalGraphicDepthaoAdContent.TotalGraphicDepth
NumEmailAddressaoAdContent.NumEmailAddress
NumURLaoAdContent.NumURL
NumRulesaoAdContent.NumRules
NumGraphicsaoAdContent.NumGraphics
NumBoldLinesaoAdContent.NumBoldLines
NumItalicLinesaoAdContent.NumItalicLines
NumUnderlineLinesaoAdContent.NumUnderlineLines
PointSize0to6aoAdContent.PointSize0to6
PointSize6to7aoAdContent.PointSize6to7
PointSize7to8aoAdContent.PointSize7to8
PointSize8to10aoAdContent.PointSize8to10
PointSize10to12aoAdContent.PointSize10to12
PointSize12to16aoAdContent.PointSize12to16
PointSize16to20aoAdContent.PointSize16to20
PointSize20to24aoAdContent.PointSize20to24
PointSizeGreaterThan24aoAdContent.PointSizeGreaterThan24
Color_PreprintaoPreprintColors.Name
Paper_PreprintaoPreprintPaperTypes.Name
Sides_PreprintaoPreprintInfo.Sides
PageCount_PreprintaoPreprintInfo.PageCount
Weight_PreprintaoPreprintInfo.Weight
Location_PreprintaoPRPRunSchedule.LocationID 🡒 shPreprintLocation.Name
NumPILinesaoAdContent.NumPILines Total number of lines w/ PI font in ad.
TotalPIDepthaoAdContent.TotalPIDepth Total depth of all pi characters specified in twips.
NumColorLinesaoAdContent.NumColorLines Total number of lines w/ Color in ad.
TotalColorDepthaoAdContent.TotalColorDepth Total depth of all color specifiec in twips.
IsPIBorderaoAdContent.IsPIBorder Border is a pi font character
BorderStyleaoAdContent.BorderStyle Style of border.
BorderThicknessaoAdContent.BorderThickness Thickness of border
BorderJoinStyleaoAdContent.BorderJoinStyle Join style of border.
BorderColoraoAdContent.BorderColor Color of border
BorderSettingaoAdContent.BorderSetting Border setting (normal, shadow,etc)
TotalBorderRuleDepthaoAdContent.TotalBorderRuleDepth Total depth of border in twips
TotalBorderMarginDepthaoAdContent.TotalBorderMarginDepth Total depth of margins in twips
ChecksumBI Populator System Field Check sum of this record

dmAdDetail

The dmAdDetail table contains various attributes about the insertion.

BI Field NameCORE Field/Logic
AdCaptionaoAdOrder.InvoiceText
ColorNameaoAdContent.ColorTypeId 🡒 aoColors.Name
ColorcountaoColors.ColorCount
ColortypeaoColors.ColorType
Decoded to a text value.
GroupBuyNameaoAdRunSchedule.GroupBuyID
GroupOfProductsNameBI Populator internal process determines this value.
CustomerType_addetailaoOrderCustomers.CustomerTypeId 🡒 CustomerType.Name
SortTextaoAdRunSchedule.SortText
AdSource_AdDetailaoAdOrder.OrderSource 🡒 aoOrderSource.Name
InvoiceText_AdDetailaoAdRunSchedule.InvoiceText
PackageNameaoAdOrder.cfPackageBuyId àcfPackageBuy.Name
SchedAttributeNameaoAdRunSchedule.SchedAttributeId 🡒 aoSchedAttribute.Name
ProdMethodNameaoAdInfo.ProdMethodId 🡒 aoProdMethod.Name
ProdMethodInternalTypeaoProdMethod.InternalType converted to a text value.
ChecksumBI Populator System Field
Check sum of this record

dmLayoutInfo

The dmLayoutInfo table contains information about where the ad was physically placed in the paper.

BI Field NameCORE Field/Logic
InsertDateanEditorialInsert.InsertDate
Date Field
MastheadNameanEditorialInsert.MastHeadName
xPositionanEditorialInsert.xPosition
yPositionanEditorialInsert.yPosition
AdSourceanEditorialInsert.AdSource
PageNumberanEditorialInsert.PageNumber
EPSPathanEditorialInsert.EPSPath
SectionanEditorialInsert.Section
EditorialinsertId_adbaseCORE AnEditorialInsert.Id
ChecksumBI Populator System Field
Check sum of this record NOTE:Checksum not used in this table for populating.

dmLogos

The dmLogos table contains information for a given graphic ad logo.

BI Field NameCORE Field/Logic
LogoNameGraphicAdLogo.Description
LogoGroupNameGraphicLogoGroup.LogoGroupName
LogoGroupAbrevGraphicLogoGroup.LogoGroupAbbreviation
Placeholder_FlagGraphicAdLogo.PlaceholdFlag
TRUE or FALSE
ExternalNameGraphicAdLogo.ExternalName

bridgeLogos

This table will allow us to link a single Ad order to multiple logos used in the ad.

Sample Query:

SELECT fctInsertion.adnumber,
     bridgeLogos.*,
     dmLogos.*
FROM fctInsertion,
     dmLogos,
     bridgeLogos
WHERE fctInsertion.grouplogos_id = bridgeLogos.grouplogos_id
AND bridgeLogos.logos_id = dmLogos.id
BI Field NameCORE Field/Logic
groupLogos_IDLink to fctInsertion.groupLogos_ID
Logos_IDLink to dmLogos.ID
FirstDayLogo_FlagaoAdContentGraphics.FirstDayLogoId

dmAdLineage

The dmLogos table contains information for a given graphic ad logo.

BI Field NameCORE Field/Logic
AgateLineDefaoColumnDef.AgateLineDef
UserDefinedUnitNameaoAdContent.UserUnitId àAoUserUnitDefs.Name
UserDefinedReportSizeaoAdContent.UserUnitId àAoUserUnitDefs.ReportingPageSize
AdType_UnitMeasureUnit of measure (inches, centimeters, etc.)
PaginationStyleaoAdTypeDefinition
PageTypeNameaoPageType.Name
PageTypeNumColumnsaoPageType.ColumnCount
PageTypeWidthaoPageType.PageWidth
PageTypeDepthaoPageType.PageDepth
PageTypeWidthInchesConvert aoPageType.PageWidth to Inches
PageTypeDepthInchesConvert aoPageType.PageDepth to Inches
PageTypeSAUConversionaoPageType.SAUConversion
ChecksumBI Populator System Field
Check sum of this record

bridgePRPDistribution

Links Preprint distribution values to an Insertion. There is also a groupPrpDistribution table, however it is not needed in queries. It is only used for database referential integrity constraints. The query below is sufficient to get the data you need.

Sample Query:

SELECT fctInsertion.adNumber, 
     bridgePRPDistribution.*,
     dmPRPDistribution.*
FROM fctInsertion,
     bridgePRPDistribution,
     dmPRPDistribution
WHERE fctInsertion.groupPRPDistribution_ID =  
                   bridgePRPDistribution.groupPRPDistribution_ID
AND bridgePRPDistribution.PRPDistribution_ID = dmPRPDistribution.ID
BI Field NameCORE Field/Logic
groupPRPDistribution_IDLink to fctInsertion.groupPrpDistribution_ID
PRPDistribution_IDLink to dmPrpDistribution.ID
SubscriberCountSubscriber Count
NonSubscriberCountNon-subscriber Count
DealerCountDealer Count
DirectMailCountDirect Mail Count

dmPRPDistribution

The dmPrpDistribution table contains information pertaining to pre print zone codes, unit codes, distribution codes, and dealer codes.

BI Field NameCORE Field/Logic
ZoneCodeId_AdBaseLink to CORE 🡒 aoPRPDistCodeLink.ZoneId
ZoneCodeZone Code
UnitCodeId_AdBaseLink to CORE 🡒 aoPRPDistCodeLink.UnitId
UnitCodeUnit Code
DistCodeId_AdBaseLink to CORE 🡒 aoPRPDistCodeLink.DistCodeId
DistributionCodeDistribution Code
DealerCodeId_AdBaseLink to CORE 🡒 aoPRPDealerCodeLink.DealerCodeId
DealerCodeDealer Code

dmGLAccounts

The dmGLAccounts table contains GL Accounts.

BI Field NameCORE Field/Logic
GLNumberfnAccounts.Name
GLNamefnAccounts.Description
GLAccountClassfnAccounts.AccountClass
Decoded to text

dmCauseReason

The dmCauseReason table describes the Cause and/or Reason for a Credit or Debit.

BI Field NameCORE Field/Logic
CauseNameaoAdjusmentCauses.Name
ReasonNameaoAdjusmentReasons.Name
IsCauseCommissionable_FlagaoAdjusmentCauses.AppliesToCommission
IsReasonCommissionable_FlagaoAdjusmentReasons.AppliesToCommission
IsAdjCommissionable_FlagaoCustomerCD.AffectCommission
AdjustmentSubdetailaoCreditDebit.SubDetail Decoded to text
CauseDescriptionaoAdjusmentCauses.Description
ReasonDescriptionaoAdjusmentReasons.Description

dmCollections

This table is currently NOT being populated. It will only have the “null” initialization row populated. This table links to the dmClient table.

BI Field NameCORE Field/Logic
Collections_Flag
Collections_Agency
BadDebt_Flag
WriteOff_Flag

dmBusinessArea

This table links to the dmClient table.

BI Field NameCORE Field/Logic
Advertiser_Client_IDBusinessArea.CustomerAccountId
Payor_Client_IDBusinessArea.PayorId
CustTypeId_AdBaseLink to CORE 🡒 BusinessArea.CustomerTypeId
CustTypeNameBusinessArea.CustomerTypeId 🡒 CustomerType.Name
ProductId_AdBaseLink to CORE 🡒 BusinessArea.ProductId
ProductnameBusinessArea.ProductId 🡒 aoProducts.Name
ProdCategoryId_AdBaseLink to CORE 🡒 BusinessArea.ProductCategoryId
ProdCategoryNameBusinessArea.ProductCategoryId 🡒 ProductCategory.Name
AdTypeId_AdBaseLink to CORE 🡒 BusinessArea.AdTypeId
AdTypeNameBusinessArea.AdTypeId 🡒 aoAdType.Name
PlacementId_AdBaseLink to CORE 🡒 BusinessArea.PlacementId
PlacementNameBusinessArea.PlacementId 🡒 aoPlacements.Name
PositionId_AdBaseLink to CORE 🡒 BusinessArea.PositionId
PositionNameBusinessArea.PositionId 🡒 aoAdPositions.Name
PlacCategoryId_AdBaseLink to CORE 🡒 BusinessArea.PlacCategoryId
PlacCategoryNameBusinessArea.PlacCategoryId 🡒 aoPlacCategory.Name

dmDigitalMediaCampaign

Stores information relating to campaigns related to internet ads. Links to fctInsertion.

BI Field NameCORE Field/Logic
aoINCampaignId_AdBaseLink to CORE 🡒 aoINCampaign.ID
CampaignNumberaoINCampaign.CampaignNumber
CampaignNameaoINCampaign.CampaignName
CampaignTypeId_AdBaseLink to CORE 🡒 aoINCampaign.CampaignTypeId
CampaignTypeaoINCampaign.CampaignTypeId 🡒 CfInCampaignType.Name
CampaignCatId_AdBaseaoINCampaign.CampaignCatId
CampaignCategoryaoINCampaign.CampaignCatId 🡒 CfInCampaignCategory.Name
CampaignStart_Date_IDLink to dmDate aoINCampaign.StartDate
CampaignEnd_Date_IDLink to dmDate aoINCampaign.EndDate
ViewTypeaoINCampaign.ViewType
WeightaoINCampaign.Weight
CompletionaoINCampaign.Completion
PriorityLevelaoINCampaign.Priority
DailyDeliveryRateaoINCampaign.DailyDeliveryRate
ReachaoINCampaign.Reach

dmDigitalMediaFlight

Stores information relating to Flights related to internet ads. Links to fctInsertion.

BI Field NameCORE Field/Logic
aoINFlightGroupId_AdBaseLink to CORE 🡒 aoINFlightGroup.Id
AoINFlightId_AdBaseLink to CORE 🡒 aoINFlight.ID
FlightGroupNameaoINFlightGroup.GroupName
SiteaoINFlight.SiteId 🡒 aoProducts.Name
SectionaoINFlight.SectionId 🡒 cfInSection.Name
PageaoINFlight.PageId 🡒 cfInPage.Name
ManualRateFlagaoINFlight.UseManualRate
UnitOfRateaoINFlight.ManRateUOR
UnitPriceaoINFlight.ManRateCostPer
FlightInvoiceNoteaoINFlightGroup.InvoiceNotes
Flightstart_Date_IDLink to dmDate
aoINFlightGroup.StartDate
Flightend_Date_IDLink to dmDate
aoINFlightGroup.EndDate
QuantityRequestedaoINFlightGroup.QuantityRequested

dmDigitalMediaUnit

Stores information relating to Units related to internet ads. Links to fctInsertion.

BI Field NameCORE Field/Logic
INCampaignUnitId_AdBaseLink to CORE 🡒 alINCampaignUnit.Id
UnitNameaoINCampaignUnit.InternetUnitId 🡒 CfInUnitType.Name
WidthaoINCampaignUnit.InternetUnitId 🡒 CfInUnitType.Width
HeightaoINCampaignUnit.InternetUnitId 🡒 CfInUnitType.Height
MaxFileSizeaoINCampaignUnit.InternetUnitId 🡒 CfInUnitType.MaxFileSize

dmGLInvoiceDetail

One row for each transaction made against a GL Account. These can be Credits, Debits, Invoices or Payments.

BI Field NameCORE Field/Logic
InvoiceTextPayments -- aoPayments.InvoiceText.InvoiceText
Credit/Debit – aoCustomerCD.InvoiceText
InvoiceNotePayments -- aoPayments.Notes
Credit/Debit – aoCustomerCD.Notes

dmGLTransaction

Contains the different transaction types for GL entries (Invoice, Credit, Debit, Payment)

BI Field NameCORE Field/Logic
GLTransTypeCredit, Debit, Payment or Invoice
PaymentMethodaoPayments.PaymentMethod
Method of Payment
CreditCardTypeName of Credit Card (Discover, etc)

dmContractDetails

The dmContractDetails table contains contract details.

BI Field NameCORE Field/Logic
ContractId_AdBaseLink to CORE 🡒 coContractInstance.ID
InstanceNamecoContractInstance.Name
ContractStatuscoContractInstance.Status
FulfillmentStatuscoContractInstance.FulfillmentStatus
LevelSignedUpTocoContractInstance.LevelSignedUpTo
Original level this customer agreed to reach for the terms of this contract.
CurrentLevelcoContractInstance.CurrentLevel
Current level that applies to this contract. This level may be different from LevelSignedUpTo if fulfillment is better or worse than expected.
FulfillmentGoal1coDiscountLevel.Var1LowerLimit OR coRateLevel.Var1LowerLimit depending on type of Contract
Amount of units that must be met to satisfy contract for VAR1
FulfillmentGoal2coDiscountLevel.Var2LowerLimit OR coRateLevel.Var2LowerLimit depending on type of Contract
Amount of units that must be met to satisfy contract for VAR2
ExternalFulfillment1coContractInstance.Var1ExternalFulfillment
ExternalFulfillment2coContractInstance.Var2ExternalFulfillment
AdditionalReq1coContractInstance.Var1AdditionalReq
AdditionalReq2coContractInstance.Var2AdditionalReq
ContractNotescoContractInstance.Note

dmContractTemplate

The dmContractTemplate table contains contract information. Specifically related to the coContractTemplate table in AdBase.

BI Field NameCORE Field/Logic
TemplateNamecoContractTemplate.Name
ContractTypecoContractTemplate.ContractLevelType
ContractDurationcoContractTemplate.DurationLength
FulfillmentUnitsDesc1coContractTemplate.Variable1UnitType
Unit type on which orders for this contract are to be evaluated.
ReviewPeriod1coContractTemplate.Period1UnitType
Period of time for which the contract should be evaluated
LinesPerDollar1coContractTemplate.Var1LinesPerDollar
For inserts the number of lines to be defined per dollar
FulfillmentUnitsDesc2coContractTemplate.Variable2UnitType
Unit type on which orders for this contract are to be evaluated.
ReviewPeriod2coContractTemplate.Period2UnitType
Period of time for which the contract should be evaluated
LinesPerDollar2coContractTemplate.Var2LinesPerDollar
For inserts the number of lines to be defined per dollar

dmContractBools

The dmContractBools table contains boolean values describing a given contract.

BI Field NameCORE Field/Logic
AutoRenew_FlagcoContractInstance.AutoRenewFlag
Indicates if contract will auto renew
ColorOnly_FlagcoContractInstance.
Indicates if contract is for color only
RateHolder_FlagcoContractInstance.
Indicates if contract is a rate holder
IssueShortRate_FlagcoContractInstance.IssueShortRateFlag
Indicates that contract will short rate at end if necessary
IssueRebate_FlagcoContractInstance.IssueRebateFlag
Indicates that contract will rebate at end if necessary
RenewAtEarnedLevel_FlagcoContractInstance.RenewAtEarnedLevelFlag
Indicates that contract will renew at the earned level. Can only be true if RenewAtEarnedLevelFlag is true.
RateGuarantee_FlagcoContractInstance.RateGuaranteeFlag
Indicates that contract s rates are guaranteed based on startup date. If a rate change happens during contract period
AdvanceLevelAsEarned_FlagcoContractInstance.AdvancedLevelAsEarnedFlag
Indicates that contract s level will increase as if it exceeds its signup level
ExcludeFulfill_Internal_FlagExclude fulfillment generated internally by the AdBase system
ExcludeFulfill_Var1ext_FlagExclude fulfillment from ‘VAR1ExternalFulfillment’
ExcludeFulfill_Var2ext_FlagExclude fulfillment from ‘VAR2ExternalFulfillment’
CheckSumBI Populator System Field
Check sum of this record

dmRateHolder

The dmRateHolder table contains information about a contract if it is a rate holder.

BI Field NameCORE Field/Logic
RunSunday_FlagcoContractTemplate.RunSunday
Indicates that Sunday is a required run date for a rate holder
RunMonday_FlagcoContractTemplate.RunMonday
Indicates that Monday is a required run date for a rate holder
RunTuesday_FlagcoContractTemplate.RunTuesday
Indicates that Tuesday is a required run date for a rate holder
RunWednesday_FlagcoContractTemplate.RunWednesday
Indicates that Wednesday is a required run date for a rate holder
RunThursday_FlagcoContractTemplate.RunThursday
Indicates that Thursday is a required run date for a rate holder
RunFriday_FlagcoContractTemplate.RunFriday
Indicates that FrIday is a required run date for a rate holder
RunSaturday_FlagcoContractTemplate.RunSaturday
Indicates that Saturday is a required run date for a rate holder

bridgeContractClient

The bridgeContractClient table allows multiple clients to be associated with a give contract.

BI Field NameCORE Field/Logic
groupContractClient_IDLink to fctContract.groupContractClient_ID
OrdererClient_IDLink to dmClient.ID
PayorClient_IDLink to dmClient.ID

bridgeRepPercentage

Links multiple sales rep percentages to an Ad Order

SELECT fctadorder.adordernumber, 
       dmuser.userloginname, 
       bridgereppercentage.* 
FROM   fctadorder, 
       bridgereppercentage, 
       dmuser 
WHERE  fctadorder.groupreppercentage_id = 
       bridgereppercentage.groupreppercentage_id 
       AND bridgereppercentage.salesrep_id = dmuser.id 
       AND fctadorder.groupreppercentage_id > 1 
BI Field NameCORE Field/Logic
groupRepPercentage_IDLink to fctAdOrder.groupRepPercentage_ID
SalesRep_IDLink to dmUser.ID
PercentagePercentage for this sales rep

bridgeClientAlias

Links client aliases to a Client.

SELECT dmclient.namelast_bsn, 
       dmclientalias.aliasname 
FROM   dmclient, 
       bridgeclientalias, 
       dmclientalias 
WHERE  dmclient.id = bridgeclientalias.groupclientalias_id 
       AND bridgeclientalias.clientalias_id = dmclientalias.id 
BI Field NameCORE Field/Logic
groupClientAlias_IdLink to dmClient.groupClientAlias_ID
ClientAlias_IdLink to dmClientAlias.ID

dmClientAlias

The dmClientAlias table contains information pertaining to customer aliases.

BI Field NameCORE Field/Logic
CustomerAliasId_AdBaseCustomerAlias.AliasId
AliasNameCustomerAlias.Name

dmRateInfo

The dmRateInfo table contains rate information for records in fctInsertChargeDetail.

BI Field NameCORE Field/Logic
RateNamertChargeEntryElem.RateTableId 🡒 rtRate.ID rtRate.RateNameId 🡒rtRateName.Name
RateDescriptionrtRateName.Description
TaxSchedulenamertTaxScheduleName.Name
TaxSchedDescriptionrtTaxScheduleName.Description
Running The BI Auditors →
  • fctAdOrder
  • fctInsertion
  • fctInsertChargeSummary
  • fctInsertChargeDetail
  • fctSalesComm
  • fctARSummary
  • fctGL
    • fctGL.TransAmount Populate Code
  • fctApply **Deprecated - Do not use
  • fctContract
  • fctContractFulfillment
  • dmAdProduct
  • dmUser
  • dmClient
  • dmRelationshipAgency
  • dmRelationshipParent
  • bridgeMultiClient
  • dmDate
  • dmAdOrderBools
  • dmAdOrderStatus
  • dmAdPromotion
  • dmAdOrderDetail
  • dmCompany
  • bridgeMultiSpecials
  • dmSpecials
  • bridgeMultiMaterials
  • dmMaterialCharge
  • dmLocation
  • bridgeOrderRoles
  • dmAdInsertBools
  • dmAdContent
  • dmAdDetail
  • dmLayoutInfo
  • dmLogos
  • bridgeLogos
  • dmAdLineage
  • bridgePRPDistribution
  • dmPRPDistribution
  • dmGLAccounts
  • dmCauseReason
  • dmCollections
  • dmBusinessArea
  • dmDigitalMediaCampaign
  • dmDigitalMediaFlight
  • dmDigitalMediaUnit
  • dmGLInvoiceDetail
  • dmGLTransaction
  • dmContractDetails
  • dmContractTemplate
  • dmContractBools
  • dmRateHolder
  • bridgeContractClient
  • bridgeRepPercentage
  • bridgeClientAlias
  • dmClientAlias
  • dmRateInfo
Naviga Analytics
Docs
Getting Started With AnalytixBI Docs
naviga
Websitenaviga BlogTwitterFacebookLinkedIn
More
Analytix DocsBI Docs
naviga - Venture Forward
Copyright © 2021 naviga