forecast-call-prep — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited forecast-call-prep (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Produces a one-page executive summary for a weekly forecast call. Reconciles three views of the quarter:
Surfaces the deltas that materially move the quarter. Names the deals worth discussing on the call. Recommends a position for the leader to take into the meeting.
This skill is typically invoked by salesforce-revops-audit when the audit's Forecast Hygiene dimension scores below 85. It can also be run directly when the user knows they need a forecast call memo. If you have not run the audit and the user is asking broadly about RevOps health rather than a specific forecast call, recommend running salesforce-revops-audit first.
Invoke when the user says any of:
Do not invoke for:
deal-investigator instead)pipeline-hygiene-audit instead)The skill works against any of these sources. Pick the first one available:
Forecast__c custom object or equivalent.opportunities.csv and forecast_history.csv (matching the schema in examples/data_schema.md), parse those directly.data/ in this repo. Tell the user you are using sample data and what they would need to provide for a real run.Real Salesforce exports rarely match canonical names exactly. Custom suffixes (__c), renamed fields, and different cases are normal. Before parsing any data file, read docs/column_mapping.md and use it to map the export's actual headers to the canonical fields this skill needs.
Procedure (full detail in docs/column_mapping.md):
__c, replace _ and . with space, drop noise tokens).header_tokens, subtracting for exclusion_tokens hits.value_fingerprint).Print a one-line Mapping Report under the memo's "The number" section: Mapped N of M required fields from <source>. Unmapped: <list or none>.
Get three things:
For each rep, calculate:
Rep commit (qtd + open commit)
rep_commit = sum(closed_won_qtd) + sum(open_opps where forecast_category == "Commit").amountPipeline-weighted forecast
weighted = sum(closed_won_qtd) + sum(open_opps where !is_closed)(amount * probability / 100)Historical model forecast Compute each rep's calibration ratio over the last 12 weeks:
calibration_ratio = average(actual_closed_won / commit_amount) for weeks where commit > 0Then:
model_forecast = sum(closed_won_qtd) + (open_commit_amount * calibration_ratio)If a rep has less than 8 weeks of history, flag them as "insufficient data" and use 1.0 as their ratio with a confidence warning.
A rep's forecast has material variance if any of these are true:
For each variance, identify the top 2-3 opportunities driving it.
Output the memo using exactly this structure:
# Forecast Call Memo, Week of [date]
## The number
- Team commit: $X,XXX,XXX ([change] vs last week)
- Pipeline-weighted: $X,XXX,XXX
- Historical model: $X,XXX,XXX
- Confidence: [High | Medium | Low] based on [reason]
## What to discuss on the call
### Risks (forecast is at risk of missing)
1. **[Rep name]**: [one sentence on what's off]. Top deals to pressure-test: [opp name 1, opp name 2].
2. ...
### Upsides (forecast may be conservative)
1. **[Rep name]**: [one sentence]. Top deals worth pulling forward: [opp name 1, opp name 2].
2. ...
### Coverage concerns
1. **[Rep name]** has pipeline-weighted of $X vs commit of $Y. Coverage ratio [N]x.
This is the deal-by-deal review needed.
## Recommended position for the call
[2-3 sentence recommendation for the leader. Should this team be calling commit,
calling best case, or signaling risk to the CRO. Be direct.]
## Appendix: rep calibration over 12 weeks
[Table showing each rep's average commit accuracy, with their profile if known:
"runs hot," "runs cold," "calibrated," "wildcard"]pipeline-hygiene-audit before the next forecast call.See examples/sample_output.md for a worked example using the bundled synthetic data.
pipeline-hygiene-audit if data quality is fine. Only flag this if data quality is genuinely poor.If using the Salesforce MCP, the queries are:
-- Open opportunities in current quarter
SELECT Id, Name, Account.Name, OwnerId, Owner.Name, Amount, StageName,
Probability, ForecastCategoryName, CloseDate, LastActivityDate,
NextStep, CreatedDate, IsClosed, IsWon
FROM Opportunity
WHERE IsClosed = false
AND CloseDate <= LAST_DAY_OF_QUARTER
ORDER BY OwnerId, Amount DESC
-- Closed-won this quarter
SELECT OwnerId, Owner.Name, SUM(Amount) total
FROM Opportunity
WHERE IsWon = true AND CloseDate = THIS_QUARTER
GROUP BY OwnerId, Owner.Name
-- Forecast history (if Forecast__c object exists, or equivalent)
SELECT Rep__c, Week_Of__c, Commit_Amount__c, BestCase_Amount__c, Pipeline_Amount__c
FROM Forecast__c
WHERE Week_Of__c = LAST_N_WEEKS:12
ORDER BY Rep__c, Week_Of__c DESCIf the Forecast__c object does not exist in the user's org, ask the user where forecast history is stored or fall back to using current data only with a confidence warning.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.