How to calculate RFM value | Community
Skip to main content
maheswarik23685
Level 3
September 12, 2018
Solved

How to calculate RFM value

  • September 12, 2018
  • 1 reply
  • 2939 views

Hi All,

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

Thanks,

Maheswari

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Best answer by pranavku

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>

1 reply

pranavku
pranavkuAccepted solution
Level 2
September 20, 2018

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>