placementt-core 1.400.1094 → 1.400.1095

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,6 @@
1
1
  import { InstituteData } from "./typeDefinitions";
2
2
  import { ResolvedProducts } from "./productResolver";
3
+ import { SurveyGroupScope } from "./surveys/types";
3
4
  /**
4
5
  * Feature marketing: the things a customer already pays for but has never set
5
6
  * up, and whether now is the time to tell them about one.
@@ -16,6 +17,12 @@ import { ResolvedProducts } from "./productResolver";
16
17
  * is onboarding's to chase (onboardingPathways.ts, state `yearMissing`).
17
18
  * Marketing pitches `unconfigured` and nothing else.
18
19
  *
20
+ * The exception is a yearly deliverable with no setup behind it, like the
21
+ * impact report: there "adopted" is this year's, because last year's is not
22
+ * the thing being offered, and a campaign per academic year is exactly the
23
+ * cadence wanted. Campaign ids carry the academic year, so it comes round
24
+ * again on its own.
25
+ *
19
26
  * It is deliberately pure. Adoption is judged from the institute document plus
20
27
  * a handful of counts the caller fetches, and each entry says which counts it
21
28
  * needs (`needs`) so the backend cron fetches nothing a feature does not ask
@@ -24,7 +31,7 @@ import { ResolvedProducts } from "./productResolver";
24
31
  * for itself.
25
32
  */
26
33
  /** Every feature the engine can market. Stable keys: they name campaign documents. */
27
- export type FeatureMarketingKey = "wexCohort" | "alumni" | "leavers" | "aspirations" | "parents" | "skills" | "activities" | "careersLibrary" | "guidance" | "events" | "employerPortal";
34
+ export type FeatureMarketingKey = "wexCohort" | "alumni" | "leavers" | "aspirations" | "parents" | "skills" | "activities" | "careersLibrary" | "guidance" | "events" | "employerPortal" | "impactReport";
28
35
  export declare const FEATURE_MARKETING_KEYS: FeatureMarketingKey[];
29
36
  /**
30
37
  * Counts a detector may need that are not on the institute document. The
@@ -47,6 +54,14 @@ export type FeatureMarketingCounts = {
47
54
  /** `users` where oId and lmiViews != null: students who have opened a job
48
55
  * profile in the careers library. */
49
56
  careersLibraryViewers?: number;
57
+ /** `placements` where oId. */
58
+ placements?: number;
59
+ /** `institutes` where trustLinks.{oId}.status or careersHubLinks.{oId}.status
60
+ * is approved: the schools under a trust or hub. */
61
+ schools?: number;
62
+ /** The scopes with at least one `surveyCycles` doc for the current academic
63
+ * year (see scopesWithCycles in the web app). */
64
+ surveyScopesThisYear?: SurveyGroupScope[];
50
65
  };
51
66
  export type FeatureMarketingCountKey = keyof FeatureMarketingCounts;
52
67
  export type FeatureMarketingContext = {
@@ -71,8 +86,13 @@ export type FeatureMarketingEntry = {
71
86
  /** The counts `adopted` reads. Anything not listed is not fetched. */
72
87
  needs: FeatureMarketingCountKey[];
73
88
  /** Whether this account has the feature at all. A feature nobody pays for
74
- * is not marketed, and neither is one an account type cannot run. */
89
+ * is not marketed, and neither is one an account type cannot run. Reads
90
+ * products only, never counts: it decides which counts get fetched. */
75
91
  offered: (ctx: FeatureMarketingContext) => boolean;
92
+ /** Whether there is anything behind the pitch yet, for a feature that
93
+ * shows the school its own data. Consulted once offered; absent means
94
+ * always ready. */
95
+ ready?: (ctx: FeatureMarketingContext) => boolean;
76
96
  /** Whether it has been set up, from the database and nothing else. */
77
97
  adopted: (ctx: FeatureMarketingContext) => boolean;
78
98
  /** When it is worth pitching. Empty means any time. */
@@ -86,12 +106,22 @@ export type FeatureMarketingEntry = {
86
106
  * adopted. `BREVO_TEMPLATE_UNSET` means the template has not been made
87
107
  * yet and that touch is skipped, not sent blank. */
88
108
  templateIds: number[];
109
+ /** Days after the campaign starts that each touch goes out, when the
110
+ * default cadence does not fit. Index-matched to `templateIds`. */
111
+ touchDelaysDays?: number[];
89
112
  };
90
113
  /** Placeholder for a Brevo template that has not been created yet. */
91
114
  export declare const BREVO_TEMPLATE_UNSET = 0;
92
115
  /** Days after the campaign starts that each touch goes out. Index-matched to
93
116
  * `templateIds`; a feature with fewer templates just stops sooner. */
94
117
  export declare const FEATURE_MARKETING_TOUCH_DELAYS_DAYS: number[];
118
+ /**
119
+ * The touch schedule for a feature: its own, or the default.
120
+ *
121
+ * @param {FeatureMarketingEntry} entry the feature.
122
+ * @return {number[]} days after the campaign start for each touch.
123
+ */
124
+ export declare const featureTouchDelays: (entry: FeatureMarketingEntry) => number[];
95
125
  /**
96
126
  * Whether a date falls inside any of a feature's seasons.
97
127
  *
@@ -125,7 +155,9 @@ export type FeatureAdoption = {
125
155
  offered: boolean;
126
156
  adopted: boolean;
127
157
  inSeason: boolean;
128
- /** Offered, not adopted and in season: a campaign could start today. */
158
+ /** Offered and, where the feature asks, with data behind it. */
159
+ ready: boolean;
160
+ /** Offered, ready, not adopted and in season: a campaign could start today. */
129
161
  candidate: boolean;
130
162
  };
131
163
  /**
@@ -1,16 +1,25 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.featureMarketingCandidates = exports.evaluateFeatureAdoption = exports.featureMarketingCountsNeeded = exports.FEATURE_MARKETING_BY_KEY = exports.FEATURE_MARKETING = exports.inFeatureMarketingSeason = exports.FEATURE_MARKETING_TOUCH_DELAYS_DAYS = exports.BREVO_TEMPLATE_UNSET = exports.FEATURE_MARKETING_KEYS = void 0;
3
+ exports.featureMarketingCandidates = exports.evaluateFeatureAdoption = exports.featureMarketingCountsNeeded = exports.FEATURE_MARKETING_BY_KEY = exports.FEATURE_MARKETING = exports.inFeatureMarketingSeason = exports.featureTouchDelays = exports.FEATURE_MARKETING_TOUCH_DELAYS_DAYS = exports.BREVO_TEMPLATE_UNSET = exports.FEATURE_MARKETING_KEYS = void 0;
4
4
  const activityLogging_1 = require("./activityLogging");
5
+ const schedule_1 = require("./surveys/schedule");
5
6
  exports.FEATURE_MARKETING_KEYS = [
6
7
  "wexCohort", "alumni", "leavers", "aspirations", "parents", "skills",
7
- "activities", "careersLibrary", "guidance", "events", "employerPortal",
8
+ "activities", "careersLibrary", "guidance", "events", "employerPortal", "impactReport",
8
9
  ];
9
10
  /** Placeholder for a Brevo template that has not been created yet. */
10
11
  exports.BREVO_TEMPLATE_UNSET = 0;
11
12
  /** Days after the campaign starts that each touch goes out. Index-matched to
12
13
  * `templateIds`; a feature with fewer templates just stops sooner. */
13
14
  exports.FEATURE_MARKETING_TOUCH_DELAYS_DAYS = [0, 7, 21];
15
+ /**
16
+ * The touch schedule for a feature: its own, or the default.
17
+ *
18
+ * @param {FeatureMarketingEntry} entry the feature.
19
+ * @return {number[]} days after the campaign start for each touch.
20
+ */
21
+ const featureTouchDelays = (entry) => entry.touchDelaysDays || exports.FEATURE_MARKETING_TOUCH_DELAYS_DAYS;
22
+ exports.featureTouchDelays = featureTouchDelays;
14
23
  const mmdd = (date) => `${String(date.getMonth() + 1).padStart(2, "0")}-${String(date.getDate()).padStart(2, "0")}`;
15
24
  /**
16
25
  * Whether a date falls inside any of a feature's seasons.
@@ -182,7 +191,42 @@ exports.FEATURE_MARKETING = [
182
191
  path: "/network/overview#employerSettings",
183
192
  templateIds: [exports.BREVO_TEMPLATE_UNSET, exports.BREVO_TEMPLATE_UNSET, exports.BREVO_TEMPLATE_UNSET],
184
193
  },
194
+ {
195
+ key: "impactReport",
196
+ label: "Impact Report",
197
+ description: "Everything this year's careers programme did, in one document, for governors, Ofsted and the hub.",
198
+ needs: ["placements", "events", "surveyScopesThisYear", "schools"],
199
+ // Schools, trusts and hubs all have a report; a hub school does not.
200
+ offered: ({ products }) => !products.isHubSchool,
201
+ // And only when there is something to put in it: a placement, an
202
+ // event or a survey for a school, a linked school for a trust or hub
203
+ // (whose report is made of its schools' data).
204
+ ready: ({ products, counts }) => {
205
+ if (products.isTrust || products.isHub)
206
+ return (counts.schools || 0) > 0;
207
+ return (counts.placements || 0) > 0 || (counts.events || 0) > 0 ||
208
+ (counts.surveyScopesThisYear || []).length > 0;
209
+ },
210
+ // This year's report, not any report: see the module comment.
211
+ adopted: ({ institute, now }) => {
212
+ const generated = impactReportOf(institute)?.generated;
213
+ return Boolean(generated) && (0, schedule_1.academicYearOf)(new Date(generated)) === (0, schedule_1.academicYearOf)(now);
214
+ },
215
+ // Start of July: the year's numbers are in and the summer is when it
216
+ // gets written up. Reminders weekly rather than the default cadence,
217
+ // so the last lands before the summer holidays start on the 18th.
218
+ seasons: [{ start: "07-01", end: "07-31" }],
219
+ // Ahead of everything else in July: it is the one thing every account
220
+ // wants that month.
221
+ priority: 1,
222
+ path: "/organisation/overview",
223
+ templateIds: [exports.BREVO_TEMPLATE_UNSET, exports.BREVO_TEMPLATE_UNSET, exports.BREVO_TEMPLATE_UNSET],
224
+ touchDelaysDays: [0, 7, 14],
225
+ },
185
226
  ];
227
+ /** The record is typed in the web app (ImpactReportCard.tsx), which stores it
228
+ * on the institute without waiting on a core rebuild. */
229
+ const impactReportOf = (institute) => institute.impactReport;
186
230
  exports.FEATURE_MARKETING_BY_KEY = Object.fromEntries(exports.FEATURE_MARKETING.map((f) => [f.key, f]));
187
231
  /**
188
232
  * Which counts to fetch before judging an institute, given only what is on its
@@ -214,15 +258,17 @@ const evaluateFeatureAdoption = (ctx) => {
214
258
  const now = ctx.now || new Date();
215
259
  return exports.FEATURE_MARKETING.map((f) => {
216
260
  const offered = f.offered(ctx);
261
+ const ready = offered && (!f.ready || f.ready(ctx));
217
262
  const adopted = offered && f.adopted(ctx);
218
263
  const inSeason = (0, exports.inFeatureMarketingSeason)(f.seasons, now);
219
264
  return {
220
265
  key: f.key,
221
266
  label: f.label,
222
267
  offered,
268
+ ready,
223
269
  adopted,
224
270
  inSeason,
225
- candidate: offered && !adopted && inSeason,
271
+ candidate: ready && !adopted && inSeason,
226
272
  };
227
273
  });
228
274
  };
@@ -1 +1 @@
1
- {"version":3,"file":"featureMarketing.js","sourceRoot":"","sources":["../src/featureMarketing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"featureMarketing.js","sourceRoot":"","sources":["../src/featureMarketing.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,7 @@ const featureMarketing_1 = require("./featureMarketing");
14
14
  const OCTOBER = new Date("2026-10-06T09:00:00Z");
15
15
  const JANUARY = new Date("2027-01-20T09:00:00Z");
16
16
  const MARCH = new Date("2027-03-10T09:00:00Z");
17
+ const JULY = new Date("2027-07-03T09:00:00Z");
17
18
  const JUNE = new Date("2027-06-10T09:00:00Z");
18
19
  /** A school that has bought everything and set up nothing. */
19
20
  const school = (overrides = {}) => ({
@@ -45,11 +46,14 @@ describe("registry", () => {
45
46
  it("gives every feature a template per touch, no more touches than there are delays", () => {
46
47
  featureMarketing_1.FEATURE_MARKETING.forEach((f) => {
47
48
  expect(f.templateIds.length).toBeGreaterThan(0);
48
- expect(f.templateIds.length).toBeLessThanOrEqual(featureMarketing_1.FEATURE_MARKETING_TOUCH_DELAYS_DAYS.length);
49
+ expect(f.templateIds.length).toBeLessThanOrEqual((0, featureMarketing_1.featureTouchDelays)(f).length);
49
50
  });
51
+ expect((0, featureMarketing_1.featureTouchDelays)(featureMarketing_1.FEATURE_MARKETING_BY_KEY.events)).toBe(featureMarketing_1.FEATURE_MARKETING_TOUCH_DELAYS_DAYS);
52
+ expect((0, featureMarketing_1.featureTouchDelays)(featureMarketing_1.FEATURE_MARKETING_BY_KEY.impactReport)).toEqual([0, 7, 14]);
50
53
  });
51
54
  it("only lists counts a detector can actually read", () => {
52
- const known = ["cohorts", "parents", "alumni", "events", "linkedProviders", "careersLibraryViewers"];
55
+ const known = ["cohorts", "parents", "alumni", "events", "linkedProviders", "careersLibraryViewers",
56
+ "placements", "schools", "surveyScopesThisYear"];
53
57
  featureMarketing_1.FEATURE_MARKETING.forEach((f) => f.needs.forEach((n) => expect(known).toContain(n)));
54
58
  });
55
59
  });
@@ -90,14 +94,22 @@ describe("offered", () => {
90
94
  // Still hanging off employerEvents.
91
95
  expect(offered).toEqual(expect.arrayContaining(["skills", "activities", "guidance", "parents", "events", "employerPortal"]));
92
96
  });
93
- it("offers a hub only the employer side", () => {
97
+ it("offers a hub the employer side and the report; the report is ready once it has schools", () => {
94
98
  const hub = school({ package: "careersHub" });
95
99
  const offered = (0, featureMarketing_1.evaluateFeatureAdoption)(ctx(hub)).filter((a) => a.offered).map((a) => a.key);
96
- expect(offered.sort()).toEqual(["employerPortal", "events"]);
100
+ expect(offered.sort()).toEqual(["employerPortal", "events", "impactReport"]);
101
+ expect(adoption(ctx(hub, {}), "impactReport").ready).toBe(false);
102
+ expect(adoption(ctx(hub, { schools: 4 }), "impactReport").ready).toBe(true);
97
103
  });
98
- it("offers a trust nothing: its schools run the programmes", () => {
104
+ it("offers a trust only the report: its schools run the programmes", () => {
99
105
  const trust = school({ package: "institutes-two" });
100
- expect((0, featureMarketing_1.evaluateFeatureAdoption)(ctx(trust)).some((a) => a.offered)).toBe(false);
106
+ expect((0, featureMarketing_1.evaluateFeatureAdoption)(ctx(trust)).filter((a) => a.offered).map((a) => a.key)).toEqual(["impactReport"]);
107
+ expect(adoption(ctx(trust, {}), "impactReport").ready).toBe(false);
108
+ expect(adoption(ctx(trust, { schools: 2 }), "impactReport").ready).toBe(true);
109
+ });
110
+ it("does not offer a hub school the report", () => {
111
+ const hubSchool = school({ package: "careersSchool" });
112
+ expect(adoption(ctx(hubSchool), "impactReport").offered).toBe(false);
101
113
  });
102
114
  it("never marks something adopted that is not offered", () => {
103
115
  const hub = school({ package: "careersHub", skillsAssessments: true, cohortConfig: { g: { name: "Y10" } } });
@@ -157,16 +169,38 @@ describe("featureMarketingCountsNeeded", () => {
157
169
  it("asks for every count a full school's detectors read", () => {
158
170
  const s = school();
159
171
  expect((0, featureMarketing_1.featureMarketingCountsNeeded)(s, (0, productResolver_1.resolveProducts)(s)).sort())
160
- .toEqual(["alumni", "careersLibraryViewers", "cohorts", "events", "linkedProviders", "parents"]);
172
+ .toEqual(["alumni", "careersLibraryViewers", "cohorts", "events", "linkedProviders", "parents", "placements", "schools", "surveyScopesThisYear"]);
161
173
  });
162
174
  it("asks a hub for nothing about students", () => {
163
175
  const hub = school({ package: "careersHub" });
164
176
  expect((0, featureMarketing_1.featureMarketingCountsNeeded)(hub, (0, productResolver_1.resolveProducts)(hub)).sort())
165
- .toEqual(["events", "linkedProviders"]);
177
+ .toEqual(["events", "linkedProviders", "placements", "schools", "surveyScopesThisYear"]);
166
178
  });
167
- it("asks a trust for nothing", () => {
179
+ it("asks a trust only what the report needs", () => {
168
180
  const trust = school({ package: "institutes-two" });
169
- expect((0, featureMarketing_1.featureMarketingCountsNeeded)(trust, (0, productResolver_1.resolveProducts)(trust))).toEqual([]);
181
+ expect((0, featureMarketing_1.featureMarketingCountsNeeded)(trust, (0, productResolver_1.resolveProducts)(trust)).sort())
182
+ .toEqual(["events", "placements", "schools", "surveyScopesThisYear"]);
183
+ });
184
+ });
185
+ describe("impact report", () => {
186
+ const withReport = (generated) => ({ ...school(), impactReport: { generated } });
187
+ const data = { placements: 12 };
188
+ it("is this year's report, so last year's does not count", () => {
189
+ expect(adoption(ctx(school(), data, JULY), "impactReport").adopted).toBe(false);
190
+ expect(adoption(ctx(withReport("2026-07-10T10:00:00Z"), data, JULY), "impactReport").adopted).toBe(false);
191
+ expect(adoption(ctx(withReport("2027-06-30T10:00:00Z"), data, JULY), "impactReport").adopted).toBe(true);
192
+ });
193
+ it("is only a candidate when there is something to report", () => {
194
+ expect(adoption(ctx(school(), {}, JULY), "impactReport").candidate).toBe(false);
195
+ expect(adoption(ctx(school(), { placements: 1 }, JULY), "impactReport").candidate).toBe(true);
196
+ expect(adoption(ctx(school(), { events: 1 }, JULY), "impactReport").candidate).toBe(true);
197
+ expect(adoption(ctx(school(), { surveyScopesThisYear: ["aspirations"] }, JULY), "impactReport").candidate).toBe(true);
198
+ // Employers alone are not a year's programme.
199
+ expect(adoption(ctx(school(), { linkedProviders: 5 }, JULY), "impactReport").candidate).toBe(false);
200
+ });
201
+ it("is pitched in July and first", () => {
202
+ expect((0, featureMarketing_1.featureMarketingCandidates)(ctx(school(), data, JULY))[0].key).toBe("impactReport");
203
+ expect((0, featureMarketing_1.featureMarketingCandidates)(ctx(school(), data, OCTOBER)).map((f) => f.key)).not.toContain("impactReport");
170
204
  });
171
205
  });
172
206
  describe("candidates", () => {
@@ -1 +1 @@
1
- {"version":3,"file":"featureMarketing.test.js","sourceRoot":"","sources":["../src/featureMarketing.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"featureMarketing.test.js","sourceRoot":"","sources":["../src/featureMarketing.test.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  import { InstituteData } from "./typeDefinitions";
2
2
  import { ResolvedProducts } from "./productResolver";
3
- import { SurveyGroupScope } from "./surveys/types";
4
3
  import { FeatureMarketingCounts } from "./featureMarketing";
5
4
  /**
6
5
  * Onboarding pathways: for each product a customer has, the steps that take it
@@ -36,16 +35,11 @@ export type OnboardingCounts = FeatureMarketingCounts & {
36
35
  students?: number;
37
36
  activatedStudents?: number;
38
37
  staff?: number;
39
- schools?: number;
40
38
  employers?: number;
41
- placements?: number;
42
39
  eventAttendees?: number;
43
40
  emailCampaigns?: number;
44
41
  /** `cohorts` where oId for the current academic year. */
45
42
  cohortsThisYear?: number;
46
- /** The scopes with at least one `surveyCycles` doc for the current academic
47
- * year (see scopesWithCycles in the web app). */
48
- surveyScopesThisYear?: SurveyGroupScope[];
49
43
  };
50
44
  export type OnboardingCountKey = keyof OnboardingCounts;
51
45
  export type OnboardingContext = {
@@ -1 +1 @@
1
- {"version":3,"file":"onboardingPathways.js","sourceRoot":"","sources":["../src/onboardingPathways.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"onboardingPathways.js","sourceRoot":"","sources":["../src/onboardingPathways.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "private": false,
3
3
  "name": "placementt-core",
4
4
  "author": "Placementt",
5
- "version": "1.400.1094",
5
+ "version": "1.400.1095",
6
6
  "main": "lib/index.js",
7
7
  "types": "lib/index.d.ts",
8
8
  "scripts": {
@@ -14,6 +14,7 @@ import {
14
14
  evaluateFeatureAdoption,
15
15
  featureMarketingCandidates,
16
16
  featureMarketingCountsNeeded,
17
+ featureTouchDelays,
17
18
  inFeatureMarketingSeason,
18
19
  } from "./featureMarketing";
19
20
 
@@ -27,6 +28,7 @@ import {
27
28
  const OCTOBER = new Date("2026-10-06T09:00:00Z");
28
29
  const JANUARY = new Date("2027-01-20T09:00:00Z");
29
30
  const MARCH = new Date("2027-03-10T09:00:00Z");
31
+ const JULY = new Date("2027-07-03T09:00:00Z");
30
32
  const JUNE = new Date("2027-06-10T09:00:00Z");
31
33
 
32
34
  /** A school that has bought everything and set up nothing. */
@@ -70,13 +72,16 @@ describe("registry", () => {
70
72
  it("gives every feature a template per touch, no more touches than there are delays", () => {
71
73
  FEATURE_MARKETING.forEach((f) => {
72
74
  expect(f.templateIds.length).toBeGreaterThan(0);
73
- expect(f.templateIds.length).toBeLessThanOrEqual(FEATURE_MARKETING_TOUCH_DELAYS_DAYS.length);
75
+ expect(f.templateIds.length).toBeLessThanOrEqual(featureTouchDelays(f).length);
74
76
  });
77
+ expect(featureTouchDelays(FEATURE_MARKETING_BY_KEY.events)).toBe(FEATURE_MARKETING_TOUCH_DELAYS_DAYS);
78
+ expect(featureTouchDelays(FEATURE_MARKETING_BY_KEY.impactReport)).toEqual([0, 7, 14]);
75
79
  });
76
80
 
77
81
  it("only lists counts a detector can actually read", () => {
78
82
  const known: (keyof FeatureMarketingCounts)[] =
79
- ["cohorts", "parents", "alumni", "events", "linkedProviders", "careersLibraryViewers"];
83
+ ["cohorts", "parents", "alumni", "events", "linkedProviders", "careersLibraryViewers",
84
+ "placements", "schools", "surveyScopesThisYear"];
80
85
  FEATURE_MARKETING.forEach((f) => f.needs.forEach((n) => expect(known).toContain(n)));
81
86
  });
82
87
  });
@@ -123,15 +128,24 @@ describe("offered", () => {
123
128
  expect(offered).toEqual(expect.arrayContaining(["skills", "activities", "guidance", "parents", "events", "employerPortal"]));
124
129
  });
125
130
 
126
- it("offers a hub only the employer side", () => {
131
+ it("offers a hub the employer side and the report; the report is ready once it has schools", () => {
127
132
  const hub = school({package: "careersHub"});
128
133
  const offered = evaluateFeatureAdoption(ctx(hub)).filter((a) => a.offered).map((a) => a.key);
129
- expect(offered.sort()).toEqual(["employerPortal", "events"]);
134
+ expect(offered.sort()).toEqual(["employerPortal", "events", "impactReport"]);
135
+ expect(adoption(ctx(hub, {}), "impactReport").ready).toBe(false);
136
+ expect(adoption(ctx(hub, {schools: 4}), "impactReport").ready).toBe(true);
130
137
  });
131
138
 
132
- it("offers a trust nothing: its schools run the programmes", () => {
139
+ it("offers a trust only the report: its schools run the programmes", () => {
133
140
  const trust = school({package: "institutes-two"});
134
- expect(evaluateFeatureAdoption(ctx(trust)).some((a) => a.offered)).toBe(false);
141
+ expect(evaluateFeatureAdoption(ctx(trust)).filter((a) => a.offered).map((a) => a.key)).toEqual(["impactReport"]);
142
+ expect(adoption(ctx(trust, {}), "impactReport").ready).toBe(false);
143
+ expect(adoption(ctx(trust, {schools: 2}), "impactReport").ready).toBe(true);
144
+ });
145
+
146
+ it("does not offer a hub school the report", () => {
147
+ const hubSchool = school({package: "careersSchool"});
148
+ expect(adoption(ctx(hubSchool), "impactReport").offered).toBe(false);
135
149
  });
136
150
 
137
151
  it("never marks something adopted that is not offered", () => {
@@ -202,18 +216,44 @@ describe("featureMarketingCountsNeeded", () => {
202
216
  it("asks for every count a full school's detectors read", () => {
203
217
  const s = school();
204
218
  expect(featureMarketingCountsNeeded(s, resolveProducts(s)).sort())
205
- .toEqual(["alumni", "careersLibraryViewers", "cohorts", "events", "linkedProviders", "parents"]);
219
+ .toEqual(["alumni", "careersLibraryViewers", "cohorts", "events", "linkedProviders", "parents", "placements", "schools", "surveyScopesThisYear"]);
206
220
  });
207
221
 
208
222
  it("asks a hub for nothing about students", () => {
209
223
  const hub = school({package: "careersHub"});
210
224
  expect(featureMarketingCountsNeeded(hub, resolveProducts(hub)).sort())
211
- .toEqual(["events", "linkedProviders"]);
225
+ .toEqual(["events", "linkedProviders", "placements", "schools", "surveyScopesThisYear"]);
212
226
  });
213
227
 
214
- it("asks a trust for nothing", () => {
228
+ it("asks a trust only what the report needs", () => {
215
229
  const trust = school({package: "institutes-two"});
216
- expect(featureMarketingCountsNeeded(trust, resolveProducts(trust))).toEqual([]);
230
+ expect(featureMarketingCountsNeeded(trust, resolveProducts(trust)).sort())
231
+ .toEqual(["events", "placements", "schools", "surveyScopesThisYear"]);
232
+ });
233
+ });
234
+
235
+ describe("impact report", () => {
236
+ const withReport = (generated: string) => ({...school(), impactReport: {generated}} as InstituteData);
237
+ const data = {placements: 12};
238
+
239
+ it("is this year's report, so last year's does not count", () => {
240
+ expect(adoption(ctx(school(), data, JULY), "impactReport").adopted).toBe(false);
241
+ expect(adoption(ctx(withReport("2026-07-10T10:00:00Z"), data, JULY), "impactReport").adopted).toBe(false);
242
+ expect(adoption(ctx(withReport("2027-06-30T10:00:00Z"), data, JULY), "impactReport").adopted).toBe(true);
243
+ });
244
+
245
+ it("is only a candidate when there is something to report", () => {
246
+ expect(adoption(ctx(school(), {}, JULY), "impactReport").candidate).toBe(false);
247
+ expect(adoption(ctx(school(), {placements: 1}, JULY), "impactReport").candidate).toBe(true);
248
+ expect(adoption(ctx(school(), {events: 1}, JULY), "impactReport").candidate).toBe(true);
249
+ expect(adoption(ctx(school(), {surveyScopesThisYear: ["aspirations"]}, JULY), "impactReport").candidate).toBe(true);
250
+ // Employers alone are not a year's programme.
251
+ expect(adoption(ctx(school(), {linkedProviders: 5}, JULY), "impactReport").candidate).toBe(false);
252
+ });
253
+
254
+ it("is pitched in July and first", () => {
255
+ expect(featureMarketingCandidates(ctx(school(), data, JULY))[0].key).toBe("impactReport");
256
+ expect(featureMarketingCandidates(ctx(school(), data, OCTOBER)).map((f) => f.key)).not.toContain("impactReport");
217
257
  });
218
258
  });
219
259
 
@@ -1,6 +1,8 @@
1
1
  import {InstituteData} from "./typeDefinitions";
2
2
  import {ResolvedProducts} from "./productResolver";
3
3
  import {activityLoggingState} from "./activityLogging";
4
+ import {academicYearOf} from "./surveys/schedule";
5
+ import {SurveyGroupScope} from "./surveys/types";
4
6
 
5
7
  /**
6
8
  * Feature marketing: the things a customer already pays for but has never set
@@ -18,6 +20,12 @@ import {activityLoggingState} from "./activityLogging";
18
20
  * is onboarding's to chase (onboardingPathways.ts, state `yearMissing`).
19
21
  * Marketing pitches `unconfigured` and nothing else.
20
22
  *
23
+ * The exception is a yearly deliverable with no setup behind it, like the
24
+ * impact report: there "adopted" is this year's, because last year's is not
25
+ * the thing being offered, and a campaign per academic year is exactly the
26
+ * cadence wanted. Campaign ids carry the academic year, so it comes round
27
+ * again on its own.
28
+ *
21
29
  * It is deliberately pure. Adoption is judged from the institute document plus
22
30
  * a handful of counts the caller fetches, and each entry says which counts it
23
31
  * needs (`needs`) so the backend cron fetches nothing a feature does not ask
@@ -29,11 +37,11 @@ import {activityLoggingState} from "./activityLogging";
29
37
  /** Every feature the engine can market. Stable keys: they name campaign documents. */
30
38
  export type FeatureMarketingKey =
31
39
  "wexCohort"|"alumni"|"leavers"|"aspirations"|"parents"|"skills"|
32
- "activities"|"careersLibrary"|"guidance"|"events"|"employerPortal";
40
+ "activities"|"careersLibrary"|"guidance"|"events"|"employerPortal"|"impactReport";
33
41
 
34
42
  export const FEATURE_MARKETING_KEYS: FeatureMarketingKey[] = [
35
43
  "wexCohort", "alumni", "leavers", "aspirations", "parents", "skills",
36
- "activities", "careersLibrary", "guidance", "events", "employerPortal",
44
+ "activities", "careersLibrary", "guidance", "events", "employerPortal", "impactReport",
37
45
  ];
38
46
 
39
47
  /**
@@ -57,6 +65,14 @@ export type FeatureMarketingCounts = {
57
65
  /** `users` where oId and lmiViews != null: students who have opened a job
58
66
  * profile in the careers library. */
59
67
  careersLibraryViewers?: number,
68
+ /** `placements` where oId. */
69
+ placements?: number,
70
+ /** `institutes` where trustLinks.{oId}.status or careersHubLinks.{oId}.status
71
+ * is approved: the schools under a trust or hub. */
72
+ schools?: number,
73
+ /** The scopes with at least one `surveyCycles` doc for the current academic
74
+ * year (see scopesWithCycles in the web app). */
75
+ surveyScopesThisYear?: SurveyGroupScope[],
60
76
  };
61
77
 
62
78
  export type FeatureMarketingCountKey = keyof FeatureMarketingCounts;
@@ -82,8 +98,13 @@ export type FeatureMarketingEntry = {
82
98
  /** The counts `adopted` reads. Anything not listed is not fetched. */
83
99
  needs: FeatureMarketingCountKey[],
84
100
  /** Whether this account has the feature at all. A feature nobody pays for
85
- * is not marketed, and neither is one an account type cannot run. */
101
+ * is not marketed, and neither is one an account type cannot run. Reads
102
+ * products only, never counts: it decides which counts get fetched. */
86
103
  offered: (ctx: FeatureMarketingContext) => boolean,
104
+ /** Whether there is anything behind the pitch yet, for a feature that
105
+ * shows the school its own data. Consulted once offered; absent means
106
+ * always ready. */
107
+ ready?: (ctx: FeatureMarketingContext) => boolean,
87
108
  /** Whether it has been set up, from the database and nothing else. */
88
109
  adopted: (ctx: FeatureMarketingContext) => boolean,
89
110
  /** When it is worth pitching. Empty means any time. */
@@ -97,6 +118,9 @@ export type FeatureMarketingEntry = {
97
118
  * adopted. `BREVO_TEMPLATE_UNSET` means the template has not been made
98
119
  * yet and that touch is skipped, not sent blank. */
99
120
  templateIds: number[],
121
+ /** Days after the campaign starts that each touch goes out, when the
122
+ * default cadence does not fit. Index-matched to `templateIds`. */
123
+ touchDelaysDays?: number[],
100
124
  };
101
125
 
102
126
  /** Placeholder for a Brevo template that has not been created yet. */
@@ -106,6 +130,15 @@ export const BREVO_TEMPLATE_UNSET = 0;
106
130
  * `templateIds`; a feature with fewer templates just stops sooner. */
107
131
  export const FEATURE_MARKETING_TOUCH_DELAYS_DAYS = [0, 7, 21];
108
132
 
133
+ /**
134
+ * The touch schedule for a feature: its own, or the default.
135
+ *
136
+ * @param {FeatureMarketingEntry} entry the feature.
137
+ * @return {number[]} days after the campaign start for each touch.
138
+ */
139
+ export const featureTouchDelays = (entry: FeatureMarketingEntry): number[] =>
140
+ entry.touchDelaysDays || FEATURE_MARKETING_TOUCH_DELAYS_DAYS;
141
+
109
142
  const mmdd = (date: Date): string =>
110
143
  `${String(date.getMonth() + 1).padStart(2, "0")}-${String(date.getDate()).padStart(2, "0")}`;
111
144
 
@@ -287,8 +320,44 @@ export const FEATURE_MARKETING: FeatureMarketingEntry[] = [
287
320
  path: "/network/overview#employerSettings",
288
321
  templateIds: [BREVO_TEMPLATE_UNSET, BREVO_TEMPLATE_UNSET, BREVO_TEMPLATE_UNSET],
289
322
  },
323
+ {
324
+ key: "impactReport",
325
+ label: "Impact Report",
326
+ description: "Everything this year's careers programme did, in one document, for governors, Ofsted and the hub.",
327
+ needs: ["placements", "events", "surveyScopesThisYear", "schools"],
328
+ // Schools, trusts and hubs all have a report; a hub school does not.
329
+ offered: ({products}) => !products.isHubSchool,
330
+ // And only when there is something to put in it: a placement, an
331
+ // event or a survey for a school, a linked school for a trust or hub
332
+ // (whose report is made of its schools' data).
333
+ ready: ({products, counts}) => {
334
+ if (products.isTrust || products.isHub) return (counts.schools || 0) > 0;
335
+ return (counts.placements || 0) > 0 || (counts.events || 0) > 0 ||
336
+ (counts.surveyScopesThisYear || []).length > 0;
337
+ },
338
+ // This year's report, not any report: see the module comment.
339
+ adopted: ({institute, now}) => {
340
+ const generated = impactReportOf(institute)?.generated;
341
+ return Boolean(generated) && academicYearOf(new Date(generated as string)) === academicYearOf(now);
342
+ },
343
+ // Start of July: the year's numbers are in and the summer is when it
344
+ // gets written up. Reminders weekly rather than the default cadence,
345
+ // so the last lands before the summer holidays start on the 18th.
346
+ seasons: [{start: "07-01", end: "07-31"}],
347
+ // Ahead of everything else in July: it is the one thing every account
348
+ // wants that month.
349
+ priority: 1,
350
+ path: "/organisation/overview",
351
+ templateIds: [BREVO_TEMPLATE_UNSET, BREVO_TEMPLATE_UNSET, BREVO_TEMPLATE_UNSET],
352
+ touchDelaysDays: [0, 7, 14],
353
+ },
290
354
  ];
291
355
 
356
+ /** The record is typed in the web app (ImpactReportCard.tsx), which stores it
357
+ * on the institute without waiting on a core rebuild. */
358
+ const impactReportOf = (institute: InstituteData): {generated?: string}|undefined =>
359
+ (institute as InstituteData & {impactReport?: {generated?: string}}).impactReport;
360
+
292
361
  export const FEATURE_MARKETING_BY_KEY: Record<FeatureMarketingKey, FeatureMarketingEntry> =
293
362
  Object.fromEntries(FEATURE_MARKETING.map((f) => [f.key, f])) as Record<FeatureMarketingKey, FeatureMarketingEntry>;
294
363
 
@@ -317,7 +386,9 @@ export type FeatureAdoption = {
317
386
  offered: boolean,
318
387
  adopted: boolean,
319
388
  inSeason: boolean,
320
- /** Offered, not adopted and in season: a campaign could start today. */
389
+ /** Offered and, where the feature asks, with data behind it. */
390
+ ready: boolean,
391
+ /** Offered, ready, not adopted and in season: a campaign could start today. */
321
392
  candidate: boolean,
322
393
  };
323
394
 
@@ -335,15 +406,17 @@ export const evaluateFeatureAdoption = (ctx: FeatureMarketingContext): FeatureAd
335
406
  const now = ctx.now || new Date();
336
407
  return FEATURE_MARKETING.map((f) => {
337
408
  const offered = f.offered(ctx);
409
+ const ready = offered && (!f.ready || f.ready(ctx));
338
410
  const adopted = offered && f.adopted(ctx);
339
411
  const inSeason = inFeatureMarketingSeason(f.seasons, now);
340
412
  return {
341
413
  key: f.key,
342
414
  label: f.label,
343
415
  offered,
416
+ ready,
344
417
  adopted,
345
418
  inSeason,
346
- candidate: offered && !adopted && inSeason,
419
+ candidate: ready && !adopted && inSeason,
347
420
  };
348
421
  });
349
422
  };
@@ -46,16 +46,11 @@ export type OnboardingCounts = FeatureMarketingCounts & {
46
46
  students?: number,
47
47
  activatedStudents?: number,
48
48
  staff?: number,
49
- schools?: number,
50
49
  employers?: number,
51
- placements?: number,
52
50
  eventAttendees?: number,
53
51
  emailCampaigns?: number,
54
52
  /** `cohorts` where oId for the current academic year. */
55
53
  cohortsThisYear?: number,
56
- /** The scopes with at least one `surveyCycles` doc for the current academic
57
- * year (see scopesWithCycles in the web app). */
58
- surveyScopesThisYear?: SurveyGroupScope[],
59
54
  };
60
55
 
61
56
  export type OnboardingCountKey = keyof OnboardingCounts;