I. Survox - Phone&Project Ops Anything and everything a phoneroom/project team member needs to know about using Survox. Articles in this book cover managing sample, super/boss commands, dialer settings, quota switches to control survey features, and more. These are NOT just for PDs/Supervisors though, as everyone that works with Survox regularly should know and understand these features. Sample Management - Sample Weighting (Markets & Timezones) Understanding Market & Timezone Weights in Survox Market weights control how Survox distributes dialing across the markets built for a project. Timezone weights follow the same logic and are covered briefly at the end of this article. Markets themselves are "groupings" of similar sample records, for example gender combined with age ranges, or counties crossed by political party. They are used as a means to target specific sample types for dialing, or focusing on, by adjusting their weighted value. The Basics Each market in a project can be assigned a weight from 0 to 9. A weight of 0 means the market will not be dialed at all. Survox will skip it entirely until the weight is changed. Weights 1 through 9 are not true ratios. Think of them more as multipliers that influence what percentage of numbers Survox pulls from each market every time the dialer requests numbers, or when an agent requests a number in 1:1 mode. How Weights Work When Sample Sizes Are Equal When all markets have roughly the same number of records, the math is straightforward. Five markets all set to weight 1 with similar record counts will each receive about 20% of every pull. Over 100 calls, you can expect roughly 20 numbers drawn from each market. If you raise one of those markets to weight 2, Survox treats that market as if it has twice as many records in the pool. The result is that market receives approximately 40% of every pull, while the remaining four markets each drop to roughly 15%. The table below shows a two-market equal-sample scenario where Market A stays at weight 1 and Market B is increased step by step: Market A Weight Market B Weight Market A calls per 100 Market B calls per 100 1 1 50 50 1 2 33 67 1 3 25 75 1 4 20 80 1 5 17 83 1 6 14 86 1 7 13 87 1 8 11 89 1 9 10 90 How Weights Work When Sample Sizes Are Not Equal This is where it gets more nuanced. When markets have significantly different record counts, the starting percentages are already unequal before weights even come into play. For example, three markets with no special weighting and record counts of 1,000 / 500 / 100 will naturally pull at roughly 63 / 31 / 6 out of every 100 calls respectively. That is simply because the larger markets represent a larger share of the total pool. When you apply a weight to one of those markets, you are multiplying its effective record count in the calculation. Increasing the smallest market from weight 1 to weight 2 doubles its effective count from 100 to 200, which shifts the percentages across all three markets. The larger markets do not stay fixed -- they all recalculate together. This means that in unequal-sample projects, predicting exact pull percentages requires knowing both the record counts and the weights across all markets simultaneously. The table below shows this same three-market scenario with A and B staying at weight 1 while Market C is increased: Market A Weight Market B Weight Market C Weight Market A calls per 100 Market B calls per 100 Market C calls per 100 1 1 1 63 31 6 1 1 2 59 29 12 1 1 3 56 28 17 1 1 4 53 26 21 1 1 5 50 25 25 1 1 6 48 24 29 1 1 7 45 23 32 1 1 8 44 22 35 1 1 9 42 21 38 Notice that even at weight 9, Market C is still trailing both other markets because the 10:1 record count gap is too large for any weight to fully overcome. Weights adjust the ratio, but they cannot manufacture sample that does not exist. Practical Ceiling: Weights Above 4 Because of the percentage-based math, raising a weight above 4 rarely produces a meaningful change in how aggressively that market is dialed relative to the others. The gains compress as the multiplier grows. In most real-world projects, weights between 1 and 4 are where the useful adjustments happen. Timezone Weights Timezone weights follow the exact same logic described above. The weight value acts as a multiplier on the effective record count for each timezone segment, and all the same rules around proportionality and diminishing returns above 4 apply. There is one important distinction with timezone weights -- they are evaluated first, before market weights. When the dialer requests numbers, Survox checks timezone eligibility and weighting before it ever looks at market weighting. This creates a scenario worth being aware of: if you weight the East Coast timezone heavier than Central, but then also weight a market that is primarily Central numbers higher, those two settings can partially cancel each other out. The timezone weight pulls the system toward East Coast numbers, while the market weight is trying to push it toward Central -- and the result may not be what was intended. In practice this does not come up often, because geographic regions that are separated by timezone are usually not also separated into different markets on the same project. But it is always worth a quick check. If you are unsure how your timezone and market weights may be interacting, review the CfMC Info Sheet for the project or speak with the Project Director or Programmer before making changes. Real World Example The following example uses an actual project sample load to illustrate how weights behave in practice. The numbers shown represent expected calls out of every 10,000 dialed, which roughly mirrors what you might see over a single busy shift hour. With all markets at their default weight of 1, Survox distributes calls purely based on the proportion of available records in each market. Females Over 65 dominates simply because it has the most records loaded, while Males Under 30 receives the fewest calls for the same reason. Scenario 1 -- All weights at 1 (189,711 total records) Code Market Weight Records Calls per 10,000 11 Males - Under 30 1 10,603 559 12 Males - Under 50 1 19,279 1,016 13 Males - Over 50 1 17,261 910 14 Males - Over 65 1 27,470 1,448 21 Females - Under 30 1 16,994 896 22 Females - Under 50 1 29,043 1,531 23 Females - Over 50 1 26,389 1,391 24 Females - Over 65 1 42,672 2,249 Scenario 2 -- Adjusted weights (295,512 effective records) Now suppose the project needs to push harder on overall younger and more specifically male respondents. Males Under 30 and Males Under 50 are raised to weight 3, and Females Under 30 and Females Under 50 are raised to weight 2. Everything else stays at 1. Survox now multiplies those markets' record counts by their respective weights to calculate a new effective pool of 295,512 records. This is NOT the number of records you have, just the "effective" values after applying the weights, to calculate the calls per market... The call distribution shifts significantly, but notice that the markets left at weight 1 all drop -- even though nothing was done to them. That is the nature of percentage-based weighting. Boosting some markets always comes at the cost of the others. Code Market Records Weight Effective Records Calls per 10,000 11 Males - Under 30 10,603 3 31,809 1,076 12 Males - Under 50 19,279 3 57,837 1,957 13 Males - Over 50 17,261 1 17,261 584 14 Males - Over 65 27,470 1 27,470 930 21 Females - Under 30 16,994 2 33,988 1,150 22 Females - Under 50 29,043 2 58,086 1,966 23 Females - Over 50 26,389 1 26,389 893 24 Females - Over 65 42,672 1 42,672 1,444 Males Under 30 nearly doubled from 559 to 1,076 calls per 10,000, and Males Under 50 went from 1,016 to 1,957. The tradeoff is visible across every market left at weight 1 -- Males Over 50 dropped from 910 to 584, and Females Over 65 dropped from 2,249 to 1,444. No records were added or removed. The weights simply changed how the existing pool was divided. A Note on Sample Availability All of the calculations above are based solely on numbers that are available at the exact moment the dialer requests them. The following are excluded from the math entirely: hidden sample, scheduled callbacks, numbers that have not yet aged to the minimum required call interval, and any numbers flagged as a special type. If a number cannot be dialed right now, it does not count toward the pool, and therefore does not influence the weighting ratios. RUNDATA - General Overview of What it Does, Where it Lives, How it is Run and Who Sets it Up Rundata Rundata (English; from  Run + Data ) is the general term for MAXimum Research's nightly automated delivery system. It runs on a set schedule each night, and allows PDs and DP staff to attach specific projects to specific time slots for automatic processing and distribution. What Is Rundata? Rundata is not a single script -- it is a system . At its core, it is a scheduled automation framework that executes Survox-based tasks (reports, data conversions, data dumps, coding updates, data corrections, and more) at defined times each night. If Survox can run it, Rundata can run it. When rundata executes for a project, it produces two output zip files : jobname_internal.zip -- Contains all reports the PD needs for project updates. This is the internal working package. jobname_data.zip -- Contains the datafile and any related client-facing items such as open ends, a topline marginal, or other deliverables. Both files are emailed to the data@maxresinc.com group by default. If the client is receiving data, they receive only the _data.zip . Schedule Time Slots The following time slots are available. PDs and DP staff assign projects to the appropriate slot(s) based on project requirements. Time Slot Mon Tue Wed Thu Fri Sat Sun 5:45 PM [Y] [Y] [Y] [Y] [Y] -- -- 6:45 PM -- -- -- -- -- [Y] -- 7:45 PM -- -- -- -- -- [Y] -- 8:45 PM -- -- -- -- -- [Y] -- 9:45 PM [Y] [Y] [Y] [Y] [Y] [Y] [Y] 10:45 PM [Y] [Y] [Y] [Y] [Y] [Y] [Y] 11:45 PM [Y] [Y] [Y] [Y] [Y] -- [Y] 12:00 AM [Y] [Y] [Y] [Y] [Y] [Y] [Y] 1:00 AM [Y] [Y] [Y] [Y] [Y] [Y] [Y] 1:15 AM [Y] [Y] [Y] [Y] [Y] -- -- 2:15 AM [Y] [Y] [Y] [Y] [Y] -- -- Manual Ad-hoc -- no set schedule, run by PD as needed Who Sets It Up? Rundata is configured by programmers prior to project launch . Once in place, it can be adjusted, added to, removed, or paused at any time with minimal effort. It runs either via automatic scheduled script or manually by a PD or DP staff member. Always confirm with the PD exactly what they need -- each project is different and every PD has specific reporting preferences. The Scripts -- Where They Come From A master rundata template script is maintained in the /specs folder. When a new study is created, this template is copied into the project's /DP folder twice -- once as rundata and once as runclientdata . At that point, they are identical. The individual Survox scripts referenced inside rundata are also placed in the /DP folder. Each one requires adjustment for the specific study -- replacing placeholder values with the correct job name and enabling or disabling the appropriate options for the project. Note: Script configuration details (define statements, job name substitution, etc.) are covered in the Setting Up a Project article. rundata vs. runclientdata Since both scripts start as identical copies, the difference comes down to what gets added to runclientdata after the initial setup : rundata -- Handles all internal processing and delivers both zip files to data@maxresinc.com . Used as an on-demand alternative when output is needed immediately, without waiting for the next scheduled run. runclientdata -- Everything rundata does, plus extra lines at the bottom that handle client file delivery. Because it covers both internal and client output, this is the version that gets added to the schedule -- not rundata. It is advised to setup rundata first, then copy it over to runclientdata, saving time from redoing all the settings within the file. simply type cp rundata runclientdata or open in an editor and "save as" runclientdata. This is best done AFTER confirming rundata executes without any errors or missing files.  After runclientdata has been copied/updated, add client specific needs to the file. Quick Rule: In the schedule, always use runclientdata . Use rundata only when a PD or DP needs to run output manually, right now. Adding a Project to the Schedule When DP sets a job live for dialing using the jobstart jobname command, that process opens the master schedule file as its final step. The master schedule file is located at: /cfmc/systools/crons/clientdata.csh The programmer scrolls to the time slot specified by the PD and adds a single line to execute runclientdata for that project. For example, to add a job to the 12:00 AM daily block: cd jobname/dp ; runclientdata That's the entire entry. One line per project, in the appropriate time slot block. If a job finishes early, and a PD wants it removed from automatic delivery, simply open the clientdata.csh file and remove the line(s) for the project*. *Note: Some projects may appear in the file multiple times, if the PD wants files at a different time on the weekends than on weekdays. Always search for any/all references to the project name to confirm none exist when removing it. If Something Goes Wrong Rundata itself does not produce a log. However, each individual Survox script that executes during a run generates its own pass/fail output file , often referenced as "error_scriptname.spx". If a delivered zip file is missing content, partially populated, or empty, DP can trace the issue back to the specific script that failed using those output files. Sample Management - Hiding/Revealing Sample (incl. Named) Hiding and Revealing Sample What Is It? Hiding sample is a way to temporarily remove records from the dialing pool without deleting them. The server simply ignores hidden records when pulling numbers to dial. When you are ready, you can reveal them and they return to normal dialing rotation. This is useful when you need to pause certain records — for example closed quotas, low-performing segments, or to save sample for a later phase of a study. It is also the common practice when doing multimode projects, allowing a PD to hide records dedicated for SMS/Web, while the phone room dials the remaining sample. The Two Types of Hidden Sample Hidden (Standard) Records are set aside in a general "do not dial" state. Any normal hidden record can be revealed without needing to know anything specific — just the job name and the select statement of the hidden records. Named Hidden Records are hidden under a specific label (a name you assign). To retrieve them later, you must know that name. Think of it as a locked folder — the name is the key. This is useful when you want to isolate a specific group of records and bring them back independently of other hidden sample. Projects can have multiple named hidden "names".  Important: A record that is already standard hidden cannot be moved to named hidden. It must be revealed first, then re-hidden with a name. Why Would You Hide Sample? A quota has closed and those records should stop dialing You want to focus dialing on a specific group (e.g., a particular state or age range) Certain record types are not performing (e.g., landlines for younger respondents, or cell phones for older age brackets) You want to hold sample in reserve for a later shift or phase How to Hide or Reveal Sample There are three ways to hide or reveal records. Each method requires a project name & select statement -- a select statement is code that tells the system which records to target. For example: [51#1] targets landline records [5121.2$]="NY" targets all records coded as New York You can also reveal hidden records without a select statement when you want to bring back all of them at once, using the "all" tag. When doing NAMED HIDES/REVEALS, it is strongly recommended to use Method 3 -- Through the Console, as it is laid out in such a way as to not be as confusing for users, with clear input boxes to enter the various information needed. You can use the other 2 methods if you are comfortable enough with the syntax difference though. Method 1 -- Via Foneutil (Job Not Active) Used when the study is not loaded or actively dialing . This is the safest method when a project is still being configured, as it avoids accidentally affecting a job that DP may still be setting up. The below example code is executed via puTTY: CfMC-phone10 /cfmc/phone10/active/fone>fone CfMC-phone10 /cfmc/phone10/active/fone>foneutil FONEUTIL ( 9May24) 10.4.2.1 Linux.x64 1004020001 20240509 (con,) - (C) Enghouse Interactive 2024 02 Mar 2026 10:53 List file--> ##if you put a name here, like hide.log it will save all the screen outputs to that file for later reference Type study code, '$' or 'quit'-->jobname1 ##EXAMPLE HIDE '*' for HELP or 'Q' to quit (jobname1(rw)) -->hide [51#1] (ascii) Enter SELECT statement or 'help' control - y for status Reading (1 dot per 100 records) .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. #READ(194466) #SELECTED(67669) #USED/CHANGED(581) '*' for HELP or 'Q' to quit (jobname1(rw)) --> ##EXAMPLE NAMED HIDE '*' for HELP or 'Q' to quit (jobname1(rw)) -->named_hide old [53#4] (ascii) Enter SELECT statement or 'help' control - y for status Reading (1 dot per 100 records) .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. #READ(194466) #SELECTED(48453) #USED/CHANGED(48453) '*' for HELP or 'Q' to quit (jobname1(rw)) --> ##EXAMPLE REVEAL '*' for HELP or 'Q' to quit (jobname1(rw)) -->reveal all (ascii) Enter SELECT statement or 'help' or 'ALL' (136487) Record(s) in HIDDEN stack Reading (1 dot per 100 records) .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. #READ(136487) #SELECTED(136487) #USED/CHANGED(136487) '*' for HELP or 'Q' to quit (jobname1(rw)) --> ##EXAMPLE NAMED REVEAL '*' for HELP or 'Q' to quit (jobname1(rw)) -->named_reveal females all (ascii) Enter SELECT statement or 'help' or 'ALL' (136487) Record(s) in HIDDEN stack Reading (1 dot per 100 records) ..................................................................................................................................................................................................................................................................................#READ(45570) #SELECTED(19253) #USED/CHANGED(19253) (19253) Record(s) returned from NAMED_HIDE stack replicates not being used; no repsorting done '*' for HELP or 'Q' to quit (jobname1(rw)) --> ##TO EXIT '*' for HELP or 'Q' to quit (jobname1(rw)) -->Q Type study code, '$' or 'quit'-->Q In the above code, you can see that someone loaded the project jobname1 and it shows the (rw) prompt, meaning foneutil has the file open in Read/Write mode. If it shows (ro), then the file was loaded in Read Only mode, which means the hide/reveal will not work, as the study is actively open on the server. After entering the study name, the user entered the hide command along with the select statement "[51#1]". Progress is shown as "..." followed by the end result, reported as #READ() #SELECTED() #USED/CHANGED() #READ() will be the total number of records in the file in most cases, though when revealing, it only reads "hidden" records #SELECTED() is a count of how many numbers MATCHED the supplied select statement #USED/CHANGED() is how many records it ACTUALLY hid/revealed. NOTE: IF SELECTED <> USED/CHANGED then either some of the records that match that select are either already hidden, resolved, or currently "at the dialer" or "on the floor" meaning they are actively being called or are connected with interviewers, and thus cannot be hidden. IN the above example, when hiding [51#1] there were 67.669 records that matched, but it only hid 581. The other ~62,000 were already hidden/resolved/named_hidden, so they couldn't be rehidden. Method 2 -- Via Super/Boss (Interactive, Any Job State) Commands are entered directly on the server. The job does not need to be inactive. You will enter the command, the job name, optionally a hidden name, and the select statement. using hide/reveal via a super/boss will load inactive jobs, so ensure that DP is not in the process of working on the sample behind the scenes, or you risk undoing their work, or possibly corrupting the files/locking the project. Similar to Methode 1, this method is also completed via puTTY: ##STARTING A super/boss session CfMC-phone10 /cfmc/>super ************************************************************************* ************************************************************************** ***** MAXIMUM RESEARCH SURVSUPR CONFIRMATION SYSTEM V1.0 ***** ***** -------------------------------------------------- ***** ***** ***** ***** YOU ARE ABOUT TO RUN A SURVSUPR SESSION WHICH DOES INTERACTIVE ***** ***** THINGS WITH FILES & MAY LOCK THE JOB OUT AND PREVENT OTHERS ***** ***** FROM ACCESSING IT, OR INTERVIEWERS FROM STARTING UP. ***** ***** ***** ***** YOU SHOULD BE USING THE SURVOX CONSOLE INSTEAD, SINCE IT WAS ***** ***** MEANT FOR THIS VERSION OF CFMC SOFTWARE AND DOESN'T LOCKOUT! ***** ***** ***** ***** ARE YOU SURE YOU WANT TO DO THAT AND RISK LOCKING OUT THE ***** ***** PROJECT AND POTENTIALLY CAUSING DOWNTIME? ***** ************************************************************************** ************************************************************************** IF YOU ARE SURE YOU WANT TO RUN A SURVSUPR SESSION, TYPE SUPER AGAIN: super SURVSUPR ( 9May24) 10.4.2.1 Linux.x64 1004020001 20240509 (&?-/cfmc/phone10/support/suprinit,con) - (C) Enghouse Interactive 2024 02 Mar 2026 11:55 Log file /cfmc/phone10/logs/su260302115512.6976 opened as 6. Logging has begun Test access to stations/studies files (in CfMCCFG on DOS/unix)... (done) SUPERVISOR device #6976 connected to serverldev at 9901 SUPRINIT: (/cfmc/phone10/control/suprinit) pause timeout/refresh set from 120 seconds to 300 seconds Interviewer login timeout set to 0 minutes (was 30 minutes) force_into_interview timeout/refresh set from 0 seconds to 60 seconds ##EXAMPLE HIDE Enter a SUPERVISOR command-->hide jobname1 [53#2] Starting 'hide/reveal/etc' of phone records or copy .tr ... Enter a SUPERVISOR command--> (HIDE-jobname1) 194376 cases read out of 194466. #SELECTED(100461) #USED(100461) server done with Hide/Reveal/Change_owner/copy/phone_operation Enter a SUPERVISOR command--> ##EXAMPLE REVEAL Enter a SUPERVISOR command-->reveal jobname1 [54#3] Starting 'hide/reveal/etc' of phone records or copy .tr ... Enter a SUPERVISOR command--> (REVEAL-jobname1) 100461 cases read out of 100461. #SELECTED(20003) #USED(20003) server done with Hide/Reveal/Change_owner/copy/phone_operation ##Quitting out of Super/Boss Enter a SUPERVISOR command--> qui Close the log file /cfmc/phone10/logs/su260302115512.6976 *** That is All *** SURVSUPR ( 9May24) running &?-/cfmc/phone10/support/suprinit to con at 02 MAR 2026 12:01. total time: 360 seconds elapsed, 0.30 seconds CPU time *Note: when in a super/boss, if you hit one too many times, it will go into "sleep mode" where it just "dots" on the screen. To get back to the supervisor command prompt, press control+c to bring it back up. Just like with the foneutil method, you can see the progress, showing #READ, #SELECTED, & #USED. The only real difference is that the commands require the jobname as well as the select, since a super/boss has access to all projects, whereas foneutil only loads the project you specify at the prompt.  Named Hide/Reveal via Super/Boss The steps to do a named hide/reveal are almost the same, you just need to add the name to use in the statement, at just the right place. For example: Normal Hide/Reveal: hide/reveal jobname select Named Hide:  named_hide jobname name_to_use select Names must be <30 characters, cannot contain spaces, and must start with a letter. They can include uppercase, lowercase, numbers and underscores "_" only. Named Reveal:  named_reveal jobname name_to_use select (or all) using "all" will reveal ALL records within that name hidden "bucket" using a "select statement" will reveal just a subset of the name hidden sample. For example, if ALL Females are name hidden as "females", and you want to reveal just the ones over 50, you would put in the select for over 50 in, with the name "females":  named_reveal jobname females [54#3] Method 3 -- Via Survox Console (Interactive, Any Job State) * PREFERRED METHOD Located under Manage > Manage Sample > Hide/Reveal in the Survox Console web interface. Like Method 2, this works whether the job is loaded or not. The console gives a nice visual set of boxes to fill in, which clearly explains what belongs in them. After navigating to the Hide or Reveal option, you must first select the project from the dropdown. After selecting the project, you will be presented with option to select Live or Test... Always pick "Live" and then click " Select Records " ... After that, one of two screens will appear depending on if you selected HIDE or REVEAL: Hide Sample - Console Mode In the above image, you can see all the possible fields needed to fill out to execute the hide via the console: Selection Criteria: This is the "select statement/base" you want to use, i,e, [51#1] or [53#4] or [5121.2$]="NJ" Select All: Optionally, checking this INSTEAD of providing a select statement will do as it says, and hide ALL non-hidden sample Hide Name: If you want the hidden records to be "named_hidden" this is where you add the name you want. Names must be <30 characters, cannot contain spaces, and must start with a letter. They can include uppercase, lowercase, numbers and underscores "_" only. Include Already Hidden: This optional checkbox will MOVE other named_hidden records INTO the new name... see note below for more details Once you have everything filled out, simply click " Execute Hide " to send the command to the server. Reveal Sample - Console Mode In the above image, you can see all the possible fields needed to fill out to execute the reveal via the console: Selection Criteria: This is the "select statement/base" you want to use, i,e, [51#1] or [53#4] or [5121.2$]="NJ" Select All: Optionally, checking this INSTEAD of providing a select statement will do as it says, and reveal ALL hidden sample Hide Name (Optiona): If you want name hidden records to be revealed, you can use this dropdown to select the specific name. There is a bug though, where a single name may appear hundreds of times. You can just select any one of them, and it encompasses all records that match that name. If you know the name you want, i.e. "Females", you can quickly jump to it by hitting "F" on your keyboard while the dropdown is open, and it will jump to the first one... When revealing named hidden records, typically the "Select All" box is checked too, but you can reveal just a subset of the hidden records... i.e. just reveal over50 from the "Females" name, and not all records in the "Females" bucket. Once you have everything filled out, simply click " Execute Reveal " to send the command to the server. Confirming Hide/Reveal -- Vial Console Unlike foneutil and via a super/boss, the console will not immediately let you know how many records were affected. Instead, you need to navigate to the Sample Task Queue to view the status/result. Just like with the hide/reveal, first select the project and Live and then it will appear. It should look similar to the below image: It will show you the command (Hide/Reveal), if it was named or normal, the #Read(), #Selected(), #Used() as well as WHO executed it (right hand side) and when. commands done via super/boss will just show a 4-digit number, while commands done in the console will show the username.  Note: Because foneutil is not part of the console, it will not show any hides/reveals in the sample task queue done via foneutil. Note: Using the "Include Already Hidden" option in the console will  move named hidden records out of their current name and into a new one. This should be used with extreme caution, as it can make sample you don't want to come out, come out when revealed. Example: Females quota closed, so you name_hid them as "Females". later, you name_hide "Democrats" to help with other quotas. If you checked the "Include Already Hidden" box, all FEMALES that are also DEMOCRAT will move into the "Democrats" name now, so when you later reveal the "Democrat" name, all the females that were Democrat will also come back out. Coordinate with DP Before Hiding on New Projects Always confirm with DP when hiding sample before a project is launching, as they may not have set the job "fully live" and could undo your hides in the process. Once jobs are live, there is no risk in a programmer undoing them, unless they are rebuilding the files due to errors, or because more sample was being added. When in doubt, reach out. Things to Know Before You Hide or Reveal Records currently at the dialer or with an agent will not be hidden. If a number is actively in use on the floor, it will be skipped during the hide operation. Error records can interrupt the process. Records flagged as errors get skipped, and in some cases they will cause hiding or revealing to stop entirely once the system reaches one. If a hide/reveal seems incomplete, error records may be the cause. Sometimes it is easier to hide everything and reveal just what you want. If you are trying to isolate a small group of records to dial, it may be simpler to hide all sample first and then reveal only the specific subset -- rather than writing multiple select statements to exclude everything you do not want. Replicates require special handling. If your project uses replicates (numbered groups of sample), revealing records can put the replicates out of sequence. Records that are out of order may not actually dial. To correct this, IT or DP must either bring the job down to fix the order, or hide all sample and reveal it back one replicate at a time. If you are working on a replicated study, coordinate with DP or IT before revealing sample. Showing/Listing Names Used There may be times where someone has to reveal a named hide, but doesn't know the name used, or they have the name, but it isn't revealing the sample. For this reason, IT has created a simple little command that can be run via puTTY that will show you all the names used, and how many records there are within it, for any job specified. To run the command, simply open puTTY and from any folder type the command  list_hidden jobname and the system will run a little report for you, showing all names used, with a count by total and land and cell CfMC-phone10 /cfmc/phone10/active/fone>list_hidden jobname1 MENTOR ( 9May24) 10.4.2.1 Linux.x64 1004020001 20240509 (get_nhd.spx,-error) - (C) Enghouse Interactive 2024 03 Mar 2026 17:37 System versions: lib=20240509,comp=1004020001,msg=10421,progver=2003,odbc=yes File versions: qff=2023062101,var=32,quota=9508,db=12,fone=91,stations=1042 DB file /cfmc/phone10/support/phrpt.db opened in READ_ONLY mode (WARN #9803) Running in >-allowindent mode is not recommended.............................................................................................................. (WARN #9802) Indented Meta/System command? Allowindent is not on, treated as text. Note: one DOT per 100 cases read ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ Input data file /cfmc/phone10/active/fone/jobname1.fon closed with 194466 cases read *** That is All *** total time: 8 seconds elapsed, 8.37 seconds CPU time Your name hidden report for jobname1 is ready. Here is what I found. To open the file, view/edit /cfmc/phone10/fone/name_hid.scn SCAN of jobname1.fon - Page 1 TABLE 001 ROW: [5270.30$] TOTAL LANDLINE CELLPHONE --------- --------- --------- Total 26317 4114 22203 blast1_f50p 10610 - 10610 loop2 24 7 17 loop3 32 9 23 postgrad 15651 4098 11553 As you can see in the above code, for the project jobname1 there are 26317 total Name Hidden records, spread across 4 different names, "blast1_f50p", "loop2", "loop3", and "postgrad" These are then the names you would use to reveal them, along with either "all" or a specific select statement. If you wanted to open the file in textpad after running, you can navigate to the cfmc\phone10\fone folder and look for a file called "name_hid.scn". Just note, if someone else runs the command after you, it will replace that file with their study's information. Common Sample Select Statements Reference These select statements will work in any utility that can access the sample. These are not specific to just hiding/revealing numbers. So you could in essence use the same selects below when zapping, exporting, or moving sample around. *While   every project is unique, there are quite a few common selects that work for most, if not all projects. Project specific selects can typically be found on the CfMC Info Sheet, or by asking DP if unsure.  Common Name Select Statement Description Phone Number [1.10#xxxyyyzzzz] Used to hide a specific phone number. You can technically type in about 5 or so numbers at once, separating each with a comma. Area Code [1.3#xxx] Used to target specific area code(s). you can enter up to 10 per select, separating each with commas, i.e. [1.3#856,609,267,215]   Useful if severe storms are hitting specific areas, and you want to limit calling into them. Land/Cell Records [51#1/2] /OR/ [75$]="L/C" ALL jobs will use the L/C markers in 75. Most  jobs should also have the 51#1/2 flag as well, but always confirm via the info sheet Specific State [5121.2$]="XX" This is NOT the state listed in any address fields, but rather the state associated with the area code of the number.  FRESH Numbers [6003.3^^b] All numbers that have not yet been dialed Live Numbers [5111.3#0] /OR/ all ALL numbers that could be dialed, including Fresh. You could also just hide/reveal "all" since you cannot hide/reveal dead/resolved numbers. Live Dialed Numbers [6000.3#1-999] Live numbers that have been called 1+ times (so all live - fresh) Number of Attempts [6000.3#xx-yy] Live numbers that have between xx & yy attempts made. You can use a range, i.e. 3-9 to hide all numbers with between 3 and 9 calls, or just a single number i.e. 6 to hide numbers with 6 calls. Date Last Called [6012.6#yymmdd] Used to select numbers that were last dialed on a specific/range date, using yymmdd format. For a single date, just use 260101 for January 1st, 2026. For a range, use 260201-260205 for February 1st through 5th, 2026 Suspends [5047#1] Will hide all live suspends. Useful if programming changes "broke" them, so they do not come back up until the issue is fixed or they have been reentered. This is the general "all suspends" option. Phone Suspends [5047#1] and [6006#0-9] Will hide all live suspends that were dialed by interviewers. Useful if programming changes "broke" them, so they do not come back up until the issue is fixed or they have been reentered. Web Suspends [5047#1] and [6006.4$]="webs" Will hide all live suspends that were from Web/SMS respondents only. Useful if programming changes "broke" them, so they do not come back up until the issue is fixed or they have been reentered. Specific Call Results [6003.3#xxx] If needed to hide a specific call result, for example Callbacks. * refer to Standard Disposition Codes article for specific codes Specific Interviewer Calls [6006.4#intv] if it is needed to hide calls made by a specific interviewer (QC Reasons), you can supply their 4-digit ID to apply the hide for all numbers LAST dialed by them. Super/Boss Specific Selects The following selects ONLY work within a super/boss session, and are not often used, but worth documenting none the less. These all use @Text instead of [code]. All Records @all Used to select any/all live numbers Fresh Numbers @fresh Fresh, undialed numbers Land/Cell Records @land /OR/ @cell Records that are either flagged as Landline or Cellphone Soft Refusals @srf Records where the either the last or a previous call was a Soft Refusal. These are both "Hold Area" numbers on the SPI screen Respondent Hung up @ Intro @rhu Records where the last call was a Respondent Hung Up in the Intro. These are "Hold Area" numbers on the SPI screen, just like Soft Refusals System Numbers @sysnums System numbers are live numbers where the last call was a no answer or answering machine. These are like a subset of all live numbers, and exclude things like busy numbers, callbacks, etc. Special Type Numbers @sp# (#=1-9) Specifically used to target each special type number used in various projects. For example, to hide Spanish Language Speakers, you can use @sp1, since special type 1 is our default flag for those Spanish Speaking respondents Phone-Based Suspends @suspends Targets those records that are a suspend, and that was started via phone. Web-Based Suspends @webspns Targets those records that are a suspend, and that was started via Web/SMS. Census Regions (Northeast, Midwest, South, West) @c4ne, @c4mw, @c4so, @c4wc Uses the standard 4 Census Regions, to select all records in states within the provided region. Helpful for weather events, and other similar issues that affect large areas of the country all at once. Map:  Census Regions/Divisions Census Divisions (9 total) @c9ne1, @c9ne2, @c9so1, @c9so2, @c9so3, @c9mw1, @c9mw2, @c9wc1, @c9wc2 Smaller, more localized versions of the 4 main Census Regions. These divisions cover the continental 48 states. Map: Census Regions/Divisions Quota Management - .T "Switches" Quota-Controlled Switches Most projects are programmed with special quota entries in the QSS that act as on/off controls -- or value-based triggers -- for specific behaviors within the survey program. These are commonly referred to as "switches." Unlike standard quotas that track completes toward a target, or act as counters for various call results, switches are quota cells whose sole purpose is to signal the program to behave differently based on the value currently set. The program checks the switch value and responds accordingly -- enabling or disabling features, changing what interviewers see, or altering how the dialer and sample interact with the job. All switches are controlled via their .T (target) value. Who Changes Them Anyone with QSS access can modify a switch value, but changes should only be made at the direction of the PhoneOps Manager or the Project Director. Making an unauthorized or incorrect change can immediately affect interviewer behavior, dialer operation, or quota logic across the entire project. How They Work A switch is a named quota cell whose target value (.T) the program actively monitors at runtime. When the value is changed, the program responds by altering its behavior accordingly. Some switches use a simple two-state value where each number triggers a distinct behavior. Others accept a numeric value that sets a specific threshold or count. Each switch's behavior is defined by the programmer -- the value itself has no universal meaning across all switches. Important: Not Every Quota Is a Switch Because of how Survox handles quota tracking, every quota entry in the QSS -- regardless of its purpose -- automatically gets three columns: a running total counter on the left, a resettable daily counter (.R) in the middle, and a target value (.T) on the right. This means every quota has a .T field, whether or not that field actually does anything meaningful. For standard tracking quotas -- such as complete counts by demographic group -- changing the .T value simply adjusts the target threshold. It does not trigger any special program behavior. Switches are a specific subset of quotas that have been programmed to watch their own .T value and act on it. If a quota is not programmed to respond to its .T value, changing it will have no effect on program behavior beyond the quota counter itself. When in doubt about whether a quota entry is a switch or a standard tracking quota, consult the programmer or the PhoneOps Manager before making any changes. Changing a Switch Value Switch values can be changed through any of the following methods: QuotaMod (via PuTTY) -- Available when the job is not actively running. Connect to the server via PuTTY and run the QuotaMod utility to directly edit quota values for the job. Super/Boss Command Line -- While connected to the server via a super/boss session, the command  qss jobname mod can be used to open and modify the QSS for the specified job directly from the super or boss environment. Survox Console -- From the Console, navigate to Manage, then Quotas, then Named, and select the project from the list. This method is available whether or not the job is active and is the most accessible option for supervisors who do not work directly in the server environment. Switch changes take effect immediately, though interviewers in the process of conducting an interview may not see them until their next call is attempted, as most quotas are only read at the start of the call. Some quotas, like TQ logic and the ASK_UP questions are real-time however. Standard Switches The following switches are present in all standard jobs and appear in the QSS in the order listed below. JOBLIVE.T Controls whether the job is open for interviewing. 1 = Job is active; interviewers can log in 0 = Job is offline; no interviewer logins are permitted Use this to prevent early logins before a shift begins, or to close the job at the end of the night. QVERSION.T Tracks the current version of the survey program. 1 = Initial study version Any value greater than 1 = A subsequent updated version When the programmer makes a live change to the survey (via the .qff file), incrementing this value signals interviewers that a new version is available. Interviewers will be prompted to log out and back in to load the updated survey. This switch should only be changed after the .qff file has already been updated on the server. FORCE_LOGOFF.T Forces interviewers out of the survey after their current call completes. 0 = Interviewers may remain logged in between calls 1 = Interviewers are logged off automatically after their next call finishes This switch works in tandem with JOBLIVE.T. Setting JOBLIVE.T to 0 closes the job, and setting FORCE_LOGOFF.T to 1 ensures interviewers who are still active are properly logged out after completing their current call -- including those who may not be monitoring Slack for end-of-shift notices. TESTING.T Controls whether the survey is running in live or testing mode. 0 = Survey is in live mode; normal interviewing rules apply 1 = Survey is in testing mode; Ops staff and clients can back up through the survey in places a live interviewer could not Testing mode makes it easier to verify skip logic, terminate conditions, and quota routing without interfering with production interviewing. DAILYQUOTA.T Sets a daily complete goal for the project. 999 = No daily limit is in effect Any other value = Interviewers are notified that the daily quota has been met when DAILYQUOTA.R reaches this number Leave at 999 when no daily cap is needed. NO_SUCH_PERS.T Controls visibility of the "No Such Person" disposition code on the intro and disposition screen. 0 = The "No Such Person" code is visible and available to interviewers Any non-zero value = The code is hidden from the screen entirely Use this when the "No Such Person" option is not applicable for a particular study or sample type. TQ_NAMEFILE.T Controls whether the survey will allow someone other than the listed contact name to complete the interview. 0 = Only the person whose name is on the record may complete the survey; anyone else receives a message that we can only speak with the listed individual Any non-zero value = Other household members or respondents are permitted to continue past the name check TQ_*.T A family of switches used to disable specific terminate questions on a per-question basis. The asterisk represents the label of the question being controlled -- for example, TQ_Q5.T or TQ_INCOME.T. 0 = The question follows its normal programmed terminate logic 1 = The terminate condition at that question is bypassed; the interview continues past what would otherwise be a disqualifying answer These switches are used when a client requests that one or more terminating questions be disabled -- typically to improve incidence rates or to allow a broader range of respondents to complete the survey. Each TQ_*.T switch controls only the specific question referenced in its name. DLR_GETSPEC.T Controls whether interviewers on the predictive dialer can search for a specific phone number before it is dialed -- referred to internally as "putting the box up." 0 = Interviewers in predictive dialer mode receive calls as normal; no number search option is available 1 = Interviewers can search for and request a specific phone number prior to dialing This switch acts as a bridge for dialer-based interviewers who would not otherwise have access to the number search function. ALLOW_RSLV.T / ALLOW_SPCL.T / ALLOW_HDDN.T Three separate switches that control whether interviewers can pull up Resolved, Special Type, or Hidden sample records during a number search. 0 = That record type is not accessible during a search 1 = Interviewers may retrieve that record type during a search All three of these switches require DLR_GETSPEC.T to also be set to 1. The number search option must be active before these controls have any effect. WEB_LASTQ.T Used in SMS and web-based jobs only. Controls whether the final survey question -- asking respondents if they are willing to provide their name -- is displayed. 0 = The question is skipped; the survey ends without it 1 = The final name-request question is shown to the respondent WEB_ALLOWBKUP.T Used in SMS and web-based jobs only. Controls whether respondents can back up to a previous question. 0 = No backup option is available; respondents move forward only 1 = Respondents may back up between questions Demographic Move-Up Switches (ASKXYZUP.T) Some jobs include additional switches named in the format ASKXYZUP.T, where XYZ represents a specific demographic question -- for example, ASKRACEUP.T or ASKAGEUP.T. 0 = The question appears in its normal position in the demographic section 1 = The question is moved forward into the screener section Moving a demographic question into the screener allows the system to apply quota controls on that characteristic earlier in the interview, before a full complete is recorded. This is used when tighter demographic quota management is needed on a particular study. Conclusion Switches are powerful tools when used correctly. A single value change can alter the experience for every interviewer on a live job, so always confirm with the PhoneOps Manager or Project Director before making any modifications. As projects grow in complexity, the number of switches present in the QSS may expand beyond those listed here. When encountering an unfamiliar switch, always consult the programmer or project documentation before changing its value. Understanding what each switch does -- and equally important, what it does not do -- is key to managing a job effectively without introducing unintended behavior mid-shift. Survox Dialer - Configuration Options All projects running in Survox, on the dialer, have 3 main areas of control, that can be modified to meet the study's needs. Each one works in slightly different ways, so understanding each gives users full insight into how the dialer works in terms of the project requirements. The 3 areas are  Dialer Configuration, Dialer Parameters & Dialer Control.  All 3 are located within the Manage > Study Control menu in the Survox Console. This is the ONLY place these settings can be adjusted. Dialer Configuration The Dialer Configuration section of Survox allows you to control how the dialer behaves when a study is started. These settings determine everything from how aggressively the dialer places calls, to what phone number respondents see when they receive a call. Dialer Configuration is found at:  Manage > Study Control > Dialer Configuration > Study Selection & Go Understanding Shopwide vs. Project Settings The Dialer Configuration screen displays two columns of settings:  Shopwide  and  Project . Shopwide  represents the default dialer settings for the entire call center. If no project-specific value is entered, Survox will use the Shopwide setting automatically. Project  allows you to override any Shopwide default for a specific study. When a value is set in the Project column, it takes priority over the Shopwide setting for that study only. If a Project field is left blank or set to "---", the Shopwide default remains in effect. Think of Shopwide as the standard operating baseline, and Project as a study-specific exception to that baseline. Basic Dialing Options Abandonment Rate This setting controls the maximum number of calls the dialer is allowed to drop per 10,000 connects. A setting of 350 equals a 3.5% drop rate. A  dropped call  occurs when the dialer detects that all agents have become occupied mid-dial, and hangs up the outbound call after 1-3 rings -- before the respondent ever answers. This prevents a respondent from picking up with no agent available to speak with them. The dialer continuously monitors its own drop rate and attempts to stay just below this threshold. If drops are occurring, the dialer will use this setting to regulate how aggressively it dials. If the dialer is not currently dropping any calls, raising this number will not speed up dialing -- the setting only comes into play when drops are actually happening. Drop rate is one of several factors that influence overall dialer speed and performance. Number of Rings to Set "No Answer" The maximum number of rings the dialer will wait before classifying an unanswered call as a No Answer and moving on. One important distinction: a "ring" in this context is not tied to the actual ring sound a respondent hears. Instead, the dialer counts each 6.25-second interval after the call connects between the dialer and the telephone carrier as one ring. The audible ringing a respondent hears may not align exactly with what the dialer is counting. At MAXimum Research, this is typically set to 4 rings (25 seconds). This keeps the dialer from waiting long enough to trigger voicemail and answering machine pickups, which commonly activate around the 30-second mark. Answering Machine Detection (AM Detection) This setting tells the dialer how to handle a call when it determines an answering machine or voicemail system has picked up. The available options are: Detect and Hangup  (default) -- The dialer identifies the call as an answering machine or voicemail, codes it accordingly, and ends the call automatically without involving an agent. Do Not Detect  -- AM Detection is disabled. All answered calls are passed directly to an agent, who handles the answering machine or voicemail manually. Detect and Play Recording  -- The dialer identifies the call as an answering machine or voicemail and plays a pre-recorded message before ending the call. Detect and Pass to IVR  -- Routes detected answering machines to an IVR system. This option is not supported at MAXimum Research. One important limitation to understand: AM Detection is not 100% accurate. It works by listening to the sounds and pauses that occur after a call is answered and uses those timing patterns to determine whether it is most likely speaking with a real person or an automated system. It can and does occasionally misclassify calls. Additionally, AM Detection is ignored entirely when the dialer is operating in Power or Preview mode. It only functions in Predictive mode. Predictive Dialing A Yes/No setting that controls whether the dialer operates in predictive mode. When set to  Yes  (default), the dialer uses its built-in algorithm to manage outbound calling automatically -- analyzing agent availability, call patterns, and other factors to dial ahead of demand and keep agents as productive as possible. When set to  No , predictive dialing is disabled. The dialer operates as a basic auto-dialer, placing one call at a time per agent only when that agent is ready and requests the next call. Targeted Mode This setting only applies when Predictive Dialing is set to  No . It determines how the dialer behaves in non-predictive operation. The two options are: Power -- The dialer still handles call progress automatically in the background. Non-productive outcomes such as no answers, busy signals, and disconnects are coded by the dialer without agent involvement. Agents only receive calls that have connected, including answering machine/voicemails/auto-attendants. Preview  -- The agent hears the full call progress in real time, including ringing. The agent remains in control throughout, manually coding the call as a no answer, disconnect, answering machine, or other outcome as appropriate. This is true auto-dialer mode, with the agent making the judgement calls at every step. Record Whole / Separate Audio / Billing Code / Phone Number Prefix / Phone Number Suffix These settings are intended for organizations that use Survox strictly as a dialer without conducting interviews through the Survox platform. They are not applicable to MAXimum Research's setup and should not be modified. Caller ID Type This setting determines what type of caller ID the dialer will present to respondents when placing outbound calls. The available options are: File : Uses a pre-defined file containing a list of phone numbers. The dialer cycles through the numbers in the file in round robin order, rotating through each number evenly. Round Robin / Random : Allows users to enter phone numbers directly into individual fields within the console. The dialer then uses those numbers in either round robin or random order depending on the selection. "--" : Allows a single static phone number to be entered manually in the Caller ID field below, which will be used for every outbound call on the project. Caller ID The behavior of this field changes based on the Caller ID Type selected above. When  File  is selected, this field displays a dropdown list of all pre-defined caller ID files available on the system. Simply select the appropriate file for the project. When  Round Robin, Random, or --  is selected, this field becomes an entry area where phone numbers are entered manually. Call Path Not used at MAXimum Research. Leave blank. Dialer Parameters Located at  Manage > Study Control > Dialer Parameters > Study Selection & Go , this screen allows limited dialer adjustments while a study is actively running on the dialer. The settings available here are Abandonment Rate, Number of Rings, and Answering Machine Detection. These changes take effect immediately for the current dialing session only. They are temporary -- the next time the study is loaded onto the dialer, all values will revert back to whatever is saved in Dialer Configuration. If a change needs to be permanent, it must also be updated in Dialer Configuration. Dialer Control Located at  Manage > Study Control > Dialer Control > Study Selection & Go , this screen allows supervisors to control the dialing state of a running study. There are three commands available: Pause  -- Stops the dialer from placing any new outbound calls. Agents who are already at the waiting screen will not receive any notification that the dialer has been paused -- they will simply continue waiting as if between calls. This is useful when a project is nearing its close, or when a large sample hide or reveal needs to be performed without disrupting agents currently on the waiting screen. Resume  -- Restores normal dialing after a pause. The dialer picks back up where it left off. Stop -- Ends the study's session on the dialer entirely. Unlike a pause, a stopped study cannot be resumed. The only way to get the study back on the dialer after a Stop is to clear it completely and reload it from scratch. Saving Changes Once all settings have been reviewed and adjusted, click  Save Changes  to store the configuration. Important: changes made to Dialer Configuration do not take effect immediately. If the study is currently running, the new settings will not apply until the study is fully shut down, cleared from the dialer, and reloaded. Any changes made mid-shift will not be reflected until the next time the study is brought up on the dialer. Changes made to Dialer Parameters/Control ARE instant. Sample Management - Understanding the MPF Screen The Modify Parameters screen (MPF) is where you control the availability and scheduling of a project's sample -- things like whether fresh or live records are being dialed, callback windows, office hours, timezone restrictions, daypart settings, and more. There are three ways to reach it, and all three display the same settings in the same order. ACCESSING THE MODIFY PARAMETERS SCREEN Via Foneutil Open Foneutil, load the project, then press M to open the Modify screen. The project must not be actively running on the server -- it needs to be in a read/write state before you can make changes. Use the arrow keys to move between settings, and press Escape when finished. Changes take effect immediately upon exit. Via Super/Boss Command From a super or boss session, type: mpf jobname If the project is not currently loaded on the server, this command will load it automatically. Use the arrow keys to navigate between settings and press Escape when finished. Unlike the other methods, this one will prompt you to confirm before saving your changes. Via Survox Console In the Survox Console, go to: Manage > Manage Sample > Modify Parameters, then select your project. Click on any setting to change it, then click the blue Modify Parameters button at the bottom to save. Changes take effect immediately. The Console version has one advantage over the other methods: each setting label is clickable and opens a small pop-up with a plain-language description of what that setting does. This makes the Console a good starting point if you are unfamiliar with a particular option. WHAT CAN BE CHANGED The MPF screen displays a lot of information, but not everything shown can be edited -- and some items that technically can be changed should not be, as doing so would conflict with MAXimum Research standard procedures. Settings such as Ownership Mode, Zero Weight Status, and Out of Number Delay fall into this category and should be left alone. If you are unsure whether a particular setting is safe to change, contact PhoneOps or IT before making any adjustments. The following are the settings that are regularly used and safe to modify: Replicates: If the project uses replicates, this is where you increase or decrease how many are available for dialing. Maximum Attempts: The absolute ceiling on how many times any single phone number can be called. Note that scheduled callbacks will continue to be dialed past this limit, as long as they keep getting coded as a callback. This setting can also be overridden if the Timed Use MaxATT option is set to Yes. Time Zone Weight: Adjusts the calling weight assigned to each timezone. Timezones are listed as numeric codes: 05 = Eastern, 06 = Central, 07 = Mountain, 08 = Pacific, 09 = Alaska, 10 = Hawaii. For a full explanation of how weights work, refer to the Understanding Market/Timezone Weights article. Dayparts (DP1-DP4): Dayparts define time windows that control when numbers are available for dialing. MAXimum Research typically only uses DP1 and DP2, which keeps all numbers available throughout the day. Projects that benefit from time-targeted calling -- such as daytime-only jobs -- can use additional daypart windows to shift call attempts across different parts of the day. Four weekday times create three calling windows: Window 1 runs between DP1 and DP2, Window 2 runs between DP2 and DP3, and Window 3 runs between DP3 and DP4. Separate Saturday and Sunday times also exist, though MAX does not use weekend-specific dialing in most cases. All daypart times are in respondent local time, not MAXimum Research time. DP Attempts: The number of calls to make per daypart window. Once a number has used up its allotted attempts across all windows, it moves into the "All Targeted" bucket and will not receive additional calls unless released. Time Period Option (DP Opt): Controls how daypart windows are applied. The default is Option 2.   0 or 1 -- Follow all windows including weekend-specific times   2 (default) -- Treat weekends the same as weekdays; ignore Saturday/Sunday daypart settings   3 -- Use only Windows 1 and 2 on weekdays, and force a call attempt during weekend times (either day)   4 -- Weekday dialing only; no calls made on weekends   5 -- Weekend dialing only; no calls made on weekdays New Numbers First: Yes/No setting that controls whether fresh numbers are dialed before making a second pass on previously attempted numbers. If set to Yes, the system dials all fresh numbers once before revisiting others -- though scheduled callbacks will still come up during their scheduled window regardless. If set to No, the system works through numbers that already have at least one attempt before dipping into the fresh pool. New Numbers Release/Available: Controls the availability of new (never called) numbers. The allowable range is -1 to 1,000,000. The default is -1, which means this setting is ignored and an unlimited number of fresh numbers are made available to the system. If set to a value greater than 0, each time a new number is delivered for dialing it decrements that count by 1 -- when the count reaches 0, no additional fresh numbers will be called. This allows you to release a controlled batch of new numbers, let the system work through them, then release another batch by setting the value again. If set to 0, no fresh numbers will be used at all, forcing the system to work only with previously attempted numbers and scheduled callbacks. Minimum System Callback Time: How long the system waits before retrying a number that received no answer, hit an answering machine, or received another system result. The value is in minutes -- so a setting of 300 means the number will not be retried for 5 hours. If that retry window would fall outside the daypart schedule, the call is pushed to the next available calling window. Busies Before No Answer: A busy signal is not counted as a full call attempt until this number of consecutive busies is reached. For example, a setting of 2 means the first busy triggers a retry after the busy retry delay. If the second attempt also returns busy, the number is marked as BZ2NA and treated as a regular system result from that point forward. Release System: Only relevant when multiple daypart windows are in use. When enabled, this tells the system not to wait for the current daypart window -- if numbers in other windows have aged long enough to be retried, make them available now. Release All Targeted: Numbers that have been dialed through all their daypart attempts but have not yet reached Maximum Attempts are placed in the "All Targeted" bucket. Setting this to Yes allows those numbers to continue receiving calls until they hit the Maximum Attempts limit. Release Hold Area: The hold area contains numbers coded as Soft Refusals or Respondent Hung Up during an intro. Setting this to Yes releases those numbers back into the dialing pool. Hold Area Options: Defaults to 0. Other options exist but are not used by MAXimum Research. Open/Shut Times: The hours that the office (or the project) is considered open. This controls when callbacks can be scheduled by interviewers -- it does not affect regular outbound dialing, which is governed by the daypart settings. Release Timed: When enabled, this dumps all scheduled callbacks into the immediate dialing queue, regardless of when they were originally scheduled -- even if the callback was set weeks into the future. Max Timed Age: When a scheduled callback's time is missed -- for example, because no agents were available -- the system will continue attempting to deliver that call for this amount of time before giving up. If the window expires without a successful delivery, the callback is automatically rescheduled for the same time the following day during the overnight process. Retry Busy In: How long the system waits before retrying a number that returned a busy signal. Last Scheduled / Last Delivered: A date and time can be entered here to set a hard cutoff. No callbacks will be scheduled after the Last Scheduled date, and no numbers will be delivered for dialing after the Last Delivered date. Both fields use the format: DD MMM YYYY HH:MM -- for example, 31 Dec 2026 11:59pm. In Conclusion The MPF screen is a powerful tool for controlling how and when a project's sample is used, but it is important to approach it carefully. Not every setting is meant to be changed, and some can have significant impact on call flow, number availability, and project outcomes if adjusted incorrectly. When in doubt about what a setting does or whether it is safe to change, always reach out to PhoneOps, Data Processing, or IT before making any adjustments. A quick question before a change is far easier to deal with than unintended results after one. Suspends - How to View/Export Them - 5 Methods Overview Suspend data is a snapshot of a respondent's progress through a survey at the point they were interrupted -- either by a system event, an interviewer action, or a scheduled break. When a call is suspended, Survox preserves the respondent's answers and current position in the questionnaire so the interview can be resumed later without starting over. Being able to view suspend data is an important diagnostic and operational skill. There are several reasons you may need to access it: Troubleshooting -- verifying that a suspend saved correctly, or diagnosing a problem respondent record Suspend Hitting -- isolating respondents who are near the end of the survey so trained interviewers can prioritize completing those calls Programming Recovery -- if a programming change breaks existing suspends, viewing and listing them provides a path to data-entering them back in so they resume correctly when called Script Analysis -- identifying trends in where suspends are clustering in the survey, which can be brought back to the client for possible script adjustments Raw Data Pulls -- extracting suspend data for analysis or reporting purposes There are five methods available for viewing suspend data, each suited to different access levels and use cases. Method 1: Via FoneUtil FoneUtil is a built-in Survox utility accessed through a PuTTY terminal session. It provides a quick way to list all live suspends for a study directly from the Survox environment. Why Use This Method? While the output is limited compared to other methods, FoneUtil gives you an immediate count of live suspends and lets you spot trends at a glance -- such as which question numbers are clustering or which interviewers have a high volume of suspends. It requires no additional tools and works from any PuTTY prompt. Steps Navigate to the fone folder by typing the following at the PuTTY prompt: fone Launch the FoneUtil utility: foneutil When prompted for a filename, enter something descriptive so you can locate it later. For example: jobname_suspends.txt When prompted for a study name, enter the study name for the project you are working with. Once the study is loaded, type the following to list suspends: @ When prompted for a base, type a specific base to filter by sample markers, or type the following to return all suspends: all Refer to the Sample Selects article for available bases you can use here. After pressing Enter, FoneUtil will process the file and return you to the prompt with a summary line showing record counts. For example: #READ(194466) #SELECTED(194466) #USED/CHANGED(179) The third value -- 179 in this example -- is the number of live suspends currently on the project. To exit FoneUtil, press Q twice to return to the normal PuTTY prompt. To view your output file, browse to the following folder from Windows and open the file in TextPad or Notepad : \cfmc\phone10\active\fone What the Output Shows The FoneUtil output is a plain text table. Below is an example with two phone suspends and two web suspends: Suspend Suspend Call-Back Phone Number Filename <- Date/time -> INTID Question Label Password/2nd Index <- Date/time -> Recnum Qstnum 609-864-3164 x5iaabxx 24FEB26 07:54 pm 1165 REFAVAC 293686 12 am 158254 QQ40.83 his phone died call back in 5 minutes............................ 609-351-5040 auv6abxx 28FEB26 10:10 am webs CFM02101 166968 26FEB26 06:00 pm 161049 QQ18.18 ......... 609-475-2194 hducabxx 25FEB26 02:21 pm 1004 TRAITAC25 272377 12 am 161931 QQ40.14 was at work asked to be called back after 5 2-25...................................... 732-832-5208 cts3abxx 26FEB26 05:30 pm webs FAV_INTRO 105710 12 am 165793 QQ39.64 .. 848-459-9299 vy7fafxx 26FEB26 08:19 pm 1242 FAV9 189410 27FEB26 08:19 pm 165982 QQ39.70 resp had to go bc the cat got out... The key columns to focus on are: Phone Number -- the respondent's number, or "webs" for online respondents Suspend Date/Time -- when the suspend occurred INTID -- the interviewer ID, or "webs" for web respondents Question Label -- the last question answered before the suspend Password/2nd Index -- the respondent's web password Call-Back Date/Time -- scheduled callback if one was set Interviewer Comment -- notes entered by the interviewer at the time of the suspend Note: This method does not display quota information. It is Survox's native output only. Method 2: Via the Survox Console The Survox Console provides a GUI-based version of the same suspend report generated by FoneUtil. It requires no terminal access and is the most straightforward method for viewing suspends. Why Use This Method? Fewer steps than FoneUtil, and the output is displayed as a sortable HTML table -- making it easy to sort by question label, interviewer, date, or any other column without needing to scan through a flat text file. A download option is also available for sharing with the team. Steps Log into the Survox Console. Navigate to: Manage > Manage Sample > List Suspends Select your project from the dropdown if it is not already selected, then click Go . The suspend list will display as a sortable HTML table. Click any column header to sort by that field. Note: This method does not support base filtering -- it always returns all suspends for the selected project. To save and share the output, click the Download Output File button at the bottom of the page. The file will be saved as: list_suspends_jobname.prt This file can be opened with TextPad or Notepad . Method 3: Via Custom Command (run_suspends) run_suspends is a custom-built script that produces the most comprehensive suspend report available. Unlike the previous methods, it outputs a fully formatted Excel file with quota and hide status data included. By default, this mode only provides suspends that were called, and will exclude any web/sms suspends. This can be adjusted though, in the steps listed below. Why Use This Method? This is the most informative method available. The Excel output includes quota assignments per suspend, allowing you to target records where specific quotas are still open while ignoring closed ones. It also flags whether a record is named/hidden -- meaning the phone room cannot retrieve it without a supervisor revealing it first. The Excel format allows full sorting and filtering for targeted suspend hitting or script analysis. Steps Navigate to the fone folder at the PuTTY prompt: fone Launch the script: run_suspends This will open a configuration file. Locate the jobname line and replace the placeholder with your project name: >define @jobname jobname1 On the next line, you will see the base definition. Survox uses '' at the start of a line as a comment (similar to # in Linux), so the base line is "ticked out" by default. To filter by a specific base, remove the '' from the front of the line: >Define @base your_base_here To return all suspends, leave the line ticked out as-is. Refer to the Select Statements article for available bases. Below the base line is a switch called ''>define @INCLWEB . This is OFF by default. If you remove the '' at the front though, the suspend list WILL include web suspends, as well as phone suspends. Save the file when done: Control+X, then Y to confirm, then to keep the same filename The script will run and process the project. Processing time will vary based on project size -- roughly 2-3 seconds per 100,000 records . When complete, an Excel file will be available in the fone folder: jobname_suspends.xls Browse to \cfmc\phone10\active\fone in Windows and open the file in Excel. What the Output Shows The Excel file contains one row per suspend, with the following columns: Phone Number Suspend File Name Market Named Hide -- if applicable; indicates the record is hidden and must be revealed by a supervisor before the phone room can retrieve it Suspended @ Question -- the last question answered before the suspend Call Notes -- interviewer comments entered at time of suspend Date Last Called Number of Attempts IntvID -- the interviewer who last dialed or suspended the record All Assigned Quotas -- shows quota status per record, allowing you to filter for open quotas and ignore closed ones Method 4: Via Rundata The Rundata method delivers suspend data automatically as part of the project's nightly data output. Unlike the other methods, this is not something you run on demand -- it is a one-time setup completed by the Programmer at the request of the Project Director. Why Use This Method? This is the only method that includes the full data record for each suspend -- every sample variable and every answer the respondent provided up to the point of suspension. This makes it particularly valuable when suspends need to be data entered, as you have the complete picture of the path the respondent took through the survey. Setup This method requires a one-time programming change. The PD should request this from the Programmer assigned to the project. There are two options: Combined -- suspend records are included alongside the other data files (completes, terminates, over-quotas, etc.) in the nightly output Separate File -- suspend records are delivered as their own dedicated file In either case, the suspend data will be included in the nightly jobname_internal.zip file delivered as part of the rundata system. Important Note: Suspend data is not removed from the datafile once a respondent completes the survey. This means the file may contain duplicate records -- one for the suspend and one for the eventual complete. Use Excel sorting, filtering, or formulas to identify and remove those duplicate cases before analysis. Method 5: Full Data Via Console This method is the console-based equivalent of the Rundata method, but can be run on demand without involving a Programmer. It is a two-part process -- the data must be assembled first, then output. Both parts must always be run together , or the output will not reflect current suspend status. Why Use This Method? Unlike Method 4, this method automatically excludes records where a suspend was later resolved by the respondent completing, terminating, or going over quota. It will not, however, exclude suspends that were resolved via sample dispositions such as Refusals, DNC, Disconnected, or Max Attempts -- only records where the respondent actually resumed the survey will be excluded, as this method reads the resume file during the Assembly phase. Part 1 -- Assemble Suspends Log into the Survox Console and navigate to: Data Analysis > Data Utilities > Assemble Suspends Select your project name from the dropdown. A filename field will appear below. Enter a descriptive name for the output: jobname_suspends Click Go . The process may take a few seconds. Once you see the "SELECT FILES TO DOWNLOAD" notice, Part 1 is complete. You do not need to download anything at this stage. Part 2 -- Delimited Conversion Without leaving the console, navigate to: Data Analysis > Data Utilities > Delimited Conversion Select the same project you just assembled if it is not already selected. Leave the Live/Test setting as Live . For the Data Source selector, locate the following file in the list: jobname_suspends.tr It will appear twice -- once under tables\ and once under reports\ . Either entry is the same file. For the Variable Source selector, choose the option listed under reports or tables -- typically: reports\jobname.db or tables\jobname.db Leave the output name as-is. For Output Data Type , select Delimited . Under Additional Output Options , check the box labeled "Output response text instead of response code" -- this displays answers as readable text (e.g. Yes/No) rather than numeric codes (e.g. 1/2). Click Convert Data . Three files will be presented. Click jobname.csv to download and open it. Optional: Save Settings To save time on future runs, check the Save Settings box and provide a short name such as: spns On future runs, select this saved spec from the selector at the top of the page and steps 4 through 7 above can be skipped. In Conclusion Each of the five methods serves a different purpose, and knowing which one to reach for will save you time and get you better information. As a general rule of thumb: If you just need a  quick count  of live suspends, use  Method 1 or 2 If you need  quota and hide status  for targeted suspend hitting, use  Method 3 If you need the  full data picture  for data entry or deep analysis, use  Method 4 or 5 If you need something  on demand without programmer involvement , Methods 1, 2, 3, and 5 all fit that bill When in doubt, Method 3 is the go-to for day-to-day suspend management, and Method 5 is the go-to when you need the full record without waiting for the nightly data run.