Expand my Community achievements bar.

We are excited to introduce our latest innovation to enhance the Adobe Campaign user experience — the Adobe Campaign v8 Web User Interface!
SOLVED

How to calculate RFM value

Avatar

Level 4

Hi All,

Anyone aware of calculating RFM value in Adobe campaign for loyalty customers.

Thanks,

Maheswari

1 Accepted Solution

Avatar

Correct answer by
Level 2

This is fairly straightforward to setup adding data (computed aggregates) to the temp table in the query, followed by a Fork and then multiple Cell activities (one for each of r, f and m), then appending the segment codes together to get the RFM group. They can then report out on it, target specific RFM groups, or have dynamic content based on the RFM group.

The best practice is to pre-aggregate the scores on a daily basis or whatever frequency new transactions are available (in the DB or through FDA). Then a “simple” data management workflow is used to compile the 3 scores for each recipient.

PS: Schema and form XML below

  <!-- RFM Data Schema Fields -->

      <attribute enum="rfmSegments" label="RFM Segment" name="rfmSegment" type="string"/>

      <attribute enum="rfmValueSegments" label="RFM Value Segment" name="rfmValueSegment"

                 type="string"/>

      <attribute label="RFM Recency" name="rfmRecency" type="long"/>

      <attribute label="RFM Frequency" name="rfmFrequency" type="long"/>

      <attribute label="RFM Monetary" name="rfmMonetary" type="long"/>

      <attribute label="RFM Date" name="rfmDate" type="date"/>

      <!-- RFM Input Form Fields -->

    <container colcount="2" colspan="2" label="Recency Frequency Monetary" type="frame">

      <input colspan="1" xpath="scores/@rfmRecency"/>

      <input colspan="1" xpath="scores/@rfmFrequency"/>

      <input colspan="1" xpath="scores/@rfmMonetary"/>

      <input colspan="1" xpath="scores/@rfmDate"/>

      <static/>

      <static/>

      <container colcount="2" colspan="1" label="RFM Segment" type="frame">

        <input colspan="1" xpath="scores/@rfmSegment"/>

        <input colspan="1" xpath="scores/@rfmValueSegment"/>

      </container>

    </container>

View solution in original post

1 Reply

Avatar

Correct answer by
Level 2

This is fairly straightforward to setup adding data (computed aggregates) to the temp table in the query, followed by a Fork and then multiple Cell activities (one for each of r, f and m), then appending the segment codes together to get the RFM group. They can then report out on it, target specific RFM groups, or have dynamic content based on the RFM group.

The best practice is to pre-aggregate the scores on a daily basis or whatever frequency new transactions are available (in the DB or through FDA). Then a “simple” data management workflow is used to compile the 3 scores for each recipient.

PS: Schema and form XML below

  <!-- RFM Data Schema Fields -->

      <attribute enum="rfmSegments" label="RFM Segment" name="rfmSegment" type="string"/>

      <attribute enum="rfmValueSegments" label="RFM Value Segment" name="rfmValueSegment"

                 type="string"/>

      <attribute label="RFM Recency" name="rfmRecency" type="long"/>

      <attribute label="RFM Frequency" name="rfmFrequency" type="long"/>

      <attribute label="RFM Monetary" name="rfmMonetary" type="long"/>

      <attribute label="RFM Date" name="rfmDate" type="date"/>

      <!-- RFM Input Form Fields -->

    <container colcount="2" colspan="2" label="Recency Frequency Monetary" type="frame">

      <input colspan="1" xpath="scores/@rfmRecency"/>

      <input colspan="1" xpath="scores/@rfmFrequency"/>

      <input colspan="1" xpath="scores/@rfmMonetary"/>

      <input colspan="1" xpath="scores/@rfmDate"/>

      <static/>

      <static/>

      <container colcount="2" colspan="1" label="RFM Segment" type="frame">

        <input colspan="1" xpath="scores/@rfmSegment"/>

        <input colspan="1" xpath="scores/@rfmValueSegment"/>

      </container>

    </container>