Repository navigation
Expand file tree
/
Copy pathtolerances.json
More file actions
106 lines (106 loc) · 4.91 KB
/
Copy pathtolerances.json
File metadata and controls
106 lines (106 loc) · 4.91 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
{
"$comment": "How close generated data must be to the resolved profile. Paths are dot paths into the profile. The most specific rule wins. 'points' is an absolute difference for percentages; 'relative' is a share of the target (0.2 = within 20%).",
"checked": [
"people.pctAdults",
"people.ageMix",
"people.pctFemaleByAge",
"people.familySizeMix",
"people.adultMaritalMix",
"giving",
"attendance",
"engagement.pctAdultRecordsWithAnyActivity",
"engagement.amongActiveAdults.pctGive",
"engagement.amongActiveAdults.pctAttend",
"engagement.amongActiveAdults.pctInGroup",
"engagement.amongActiveAdults.pctServe",
"groups.smallGroups",
"groups.servingTeams",
"connections",
"prayer",
"personNotes.weekdayMix",
"personNotes.hourBandMix",
"personNotes.detail.textLengthP50",
"personNotes.detail.textLengthP90",
"communicationDetail.outcomes.Email.pctOpenedOfDelivered",
"communicationDetail.engagement.Email",
"communicationDetail.responseDelay.Email.Opened",
"communicationDetail.links.pctClicksOnTopLinkAvg",
"communicationDetail.people.pctEmailsInactive",
"communicationDetail.people.pctNoMassEmails",
"communicationDetail.people.pctDoNotEmail",
"communicationDetail.saturation.byMedium.Email.mass.00",
"communicationDetail.saturation.byMedium.SMS.mass.00",
"communicationDetail.sms.threads",
"communicationDetail.sms.inbound.pctStopWords",
"communicationDetail.sms.inbound.pctFromKnownPerson"
],
"skipped": [
"giving.refundsPerThousandGifts",
"attendance.holidayMultipliers.*.samples",
"attendance.checkInDayMix",
"attendance.disruptedWeeksPerYear",
"attendance.sundayHourMix",
"groups.smallGroups.groupTypes",
"groups.servingTeams.groupTypes",
"attendance.adultCheckInsPerChildCheckIn",
"attendance.adultFrequencyMixOf26Weeks",
"groups.servingTeams.weightedMedianSize",
"prayer.avgTextLength",
"prayer.categories.categoriesUsed",
"prayer.categories.pctOfUsedCategoriesWithAParent",
"prayer.requesters.pctOfActiveAdultsWhoAskedIn24Months"
],
"$skipReasons": {
"attendance.sundayHourMix": "Service times come from configuration/schedules.json, not the profile.",
"attendance.adultCheckInsPerChildCheckIn": "Adults in the sample church check in only to serve. It has no midweek programs, adult classes, or events where adults check in (see the midweek item in the roadmap).",
"attendance.adultFrequencyMixOf26Weeks": "Measured from adult check-ins; see attendance.adultCheckInsPerChildCheckIn. Volunteers check in on their rotation, and there are no one-time adult check-ins.",
"giving.refundsPerThousandGifts": "Refunds are a Phase 1 feature.",
"attendance.checkInDayMix": "Midweek check-in is a Phase 1 feature.",
"groups.smallGroups.groupTypes": "The sample church has one small group type by design; the source church has several.",
"prayer.avgTextLength": "The measured mean is pulled up by a few very long requests. Generated requests stop near 500 characters (decision 67), so the length percentiles are graded instead.",
"prayer.categories.categoriesUsed": "The sample church uses every prayer category Rock ships, so demos show each one (decision 67).",
"prayer.categories.pctOfUsedCategoriesWithAParent": "Rock ships every prayer category under All Church, so all of them have a parent.",
"prayer.requesters.pctOfActiveAdultsWhoAskedIn24Months": "Follows from volume and the requests per requester mix, so it is not a target of its own.",
"groups.servingTeams.groupTypes": "The sample church has one Serving Team type by design, with a parent group per campus.",
"groups.servingTeams.weightedMedianSize": "Each campus has eight serving teams by design (decision 70), so a large campus has large teams."
},
"missingPassesBelow": 1,
"rules": {
"default": {
"points": 3,
"relative": 0.2
},
"people.ageMix": {
"points": 2
},
"people.pctFemaleByAge": {
"points": 5
},
"giving.unitAnnualTotalPercentiles": {
"relative": 0.25
},
"giving.giftAmounts": {
"relative": 0.3
},
"giving.cadenceMix": {
"points": 4,
"relative": 0.3
},
"attendance.holidayMultipliers": {
"relative": 0.15
},
"attendance.kidsMonthIndex": {
"relative": 0.1
},
"giving.unitAnnualTotalPercentiles.p99": {
"relative": 0.4
},
"communicationDetail.sms.threads": {
"points": 6
}
},
"$ruleReasons": {
"giving.unitAnnualTotalPercentiles.p99": "The sample church is in a building campaign, and its lead pledgers are its largest givers, so the top 1% of giving units give more in a year than at the measured churches. The target stays the measured one, because the generator reads it (decision 113).",
"communicationDetail.sms.threads": "Part 7 reads thread shapes from a sample of texters, so they move by a few points from one load to the next."
}
}