Data issues
Everything the import step (scripts/clean.mjs) found and how it was handled. Re-running the import (npm run seed, or any deploy) refreshes this list; notes, next steps and tasks created in the app are never touched.
| File | Record | Issue | How it was handled |
|---|---|---|---|
| accounts.json | ACC-029 | Duplicate of ACC-017 ("Northwind Logistics Inc." vs "Northwind Logistics"): same ARR ($48,000), seats and contract dates. Previous CSM notes say the account "got set up twice" after a legal-entity change. | Merged into ACC-017; ARR counted once (portfolio ARR $2,399,800 instead of $2,447,800). Confirm with Finance that they are billed once. |
| accounts.json | ACC-008 | Quillfeather Media has no renewal date (contract started 2025-05-01). | Left blank rather than guessed; shown as "Unknown" on the renewals page and a task is created to confirm the date with Finance. |
| accounts.json | ACC-009 | Sable Energy renewal date 2026-09-30 is already in the past (today is 2026-10-12). Last note: order form sent for signature, no signed confirmation logged. | Kept the date; flagged as "Renewal overdue" so someone confirms the contract was actually signed. |
| contacts.json | CON-105 | Email "Liam.nakamura@northwind.eu" has inconsistent casing. | Normalised to "liam.nakamura@northwind.eu". |
| contacts.json | CON-105 | Duplicate of CON-061 (Liam Nakamura), created under the duplicate account ACC-029. | Dropped; references re-pointed to the original contact. |
| contacts.json | CON-106 | Email "Liam.xu@northwind.eu" has inconsistent casing. | Normalised to "liam.xu@northwind.eu". |
| contacts.json | CON-106 | Duplicate of CON-062 (Liam Xu), created under the duplicate account ACC-029. | Dropped; references re-pointed to the original contact. |
| contacts.json | CON-035, CON-036, CON-037, CON-038, CON-039 | Email domain "alderfinchlega.com" for Alder & Finch Legal looks truncated (cut at 14 characters). | Kept as-is: the real domain cannot be safely guessed. Verify before emailing these contacts. |
| contacts.json | CON-048, CON-049, CON-050 | Email domain "driftwoodhotel.com" for Driftwood Hotels looks truncated (cut at 14 characters). | Kept as-is: the real domain cannot be safely guessed. Verify before emailing these contacts. |
| contacts.json | CON-056, CON-057, CON-058, CON-059, CON-060 | Email domain "graniteconstru.com" for Granite Construction Group looks truncated (cut at 14 characters). | Kept as-is: the real domain cannot be safely guessed. Verify before emailing these contacts. |
| contacts.json | CON-073, CON-074, CON-075 | Email domain "kitewaveteleco.com" for Kitewave Telecom looks truncated (cut at 14 characters). | Kept as-is: the real domain cannot be safely guessed. Verify before emailing these contacts. |
| contacts.json | CON-076, CON-077 | Email domain "lumenarchitect.com" for Lumen Architects looks truncated (cut at 14 characters). | Kept as-is: the real domain cannot be safely guessed. Verify before emailing these contacts. |
| contacts.json | CON-078, CON-079, CON-080, CON-081, CON-082 | Email domain "meridianinsura.com" for Meridian Insurance looks truncated (cut at 14 characters). | Kept as-is: the real domain cannot be safely guessed. Verify before emailing these contacts. |
| contacts.json | CON-083, CON-084, CON-085, CON-086 | Email domain "nimbuscloudwor.com" for Nimbus Cloudworks looks truncated (cut at 14 characters). | Kept as-is: the real domain cannot be safely guessed. Verify before emailing these contacts. |
| contacts.json | CON-093, CON-094, CON-095, CON-096 | Email domain "redwoodconsult.com" for Redwood Consulting looks truncated (cut at 14 characters). | Kept as-is: the real domain cannot be safely guessed. Verify before emailing these contacts. |
| contacts.json | CON-101, CON-102, CON-103, CON-104 | Email domain "tidewaterutili.com" for Tidewater Utilities looks truncated (cut at 14 characters). | Kept as-is: the real domain cannot be safely guessed. Verify before emailing these contacts. |
| contacts.json | CON-011 | Dana Whitfield is still tagged as champion of ACC-003 but is inactive (left the company). | Account treated as having no active champion; health score and tasks reflect this. |
| usage_monthly.json | ACC-004 | Tessellate Design has 69 active users on 60 purchased seats (115%). | Kept; flagged as an expansion / seat true-up opportunity. |
| usage_monthly.json | ACC-014 | Ember Studios is missing usage for 2026-07. | Not filled with zeros (that would fake a drop); trends use the months that exist. |
| nps_responses.json | NPS-003 | Score 9 came from Dana Whitfield, who has since left ACC-003. | Kept for history but excluded from the sentiment score. |
| activity_log.json | (all) | 47 of 100 logged activities are one-way template emails (product updates, help-centre links). | Kept on the timeline, but they do not count as two-way engagement in the health score. |