If your organization is associating sales orders to member's constituent records, you can easily pull this information using a sales order query. 

Start your query: 
  1. Go to Analysis > Information Library 
  2. Click Add to add an ad-hoc query
  3. Select the source view of Sales order and click OK
Add fields to Include records where: 
  1. To narrow your results by Transaction Date, drag Transaction Date from the middle column to Include Records where. Set this to be equal to the date range you are looking for. 
  2. If you'd like to see anyone who attended a particular program, in the left column expand Sales Order Item, expand Sales Order Item Ticket, then highlight Sales Order Item Program. Drag Program record to Include Records Where. Set this to be equal to the program you'd like to consider. For example: Sales Order Item\Sales Order Item Ticket\Program\Program record is equal to General Admission. 
  3. If you'd like to eliminate refunded tickets, in the left hand column highlight Tickets beneath Sales Order Item Ticket. From the middle column, drag Is refunded? into Include Records Where. This will exclude any ticket that has been either fully or partially refunded. For example: Sales Order Item\Sales Order Item Ticket\Tickets\Is refunded is equal to No. 
  4. As an alternative to Step 3, if you'd like to eliminate any cancelled tickets (for example: tickets that were refunded and added back to inventory), you can drag Active to Include Records where. Set this to be equal to Yes. This will only count active tickets. For example: Sales Order Item\Sales Order Item Ticket\Tickets\Active is equal to Yes
Add fields to Results fields to display: 
  1. To count the number of tickets sold by price type, with Tickets beneath Sales Order Item Ticket still highlighted, drag Price Type from the middle column to Results Fields to display. In Results fields to display, highlight that field and click the sigma button and check the option to Count the price type field. This will give you a total number of how many tickets were sold. 
  2. If you'd also like to display what price type was sold, drag the Price Type field again to Results Fields to Display. 
  3. To display the membership information for the constituent associated with the Sales Order, in the left hand column, scroll up and expand Constituent. Next, expand Member and highlight Membership. From the middle column, drag out the fields you need. For example, you may want to see Membership Level or Status. 
Note: If your constituents have multiple memberships, this will duplicate your sales data. Query will provide a new row for each unique value, therefore if someone has two membership statuses, this will show twice in your output. You may wish to remove duplicate rows before synthesizing the data. If you're looking for data from only one membership program, instead of expanding Member beneath Constituent, you can expand the Membership Programs folder, and highlight the program you are looking for. In the middle column, drag the Status and Level fields into Results Fields to display. You will still have a duplication issue however if the constituent has two memberships in the same program. 

Here is an example of what the final product might look like: 
Example of final query for member visits
You can then use this raw data in a program such as Excel or Tableau to synthesize the data and find the percentage of members who have visited. You can also use our OData feature to link this query with Excel or Tableau. See our related solution here: How to generate the OData link