AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Data Request

skill-jiplet-transformation-os-analysis-data-request · by Jiplet

Generates a structured data request document (Word .docx) for the analytics team, plus an internal analysis methodology section. Use when Jacob needs to request a data extract or analytical output from the data/analytics team. Triggers: 'data request', 'ask analytics', 'request data', 'what do I ask the data team', or any request to produce a formal data ask.

No reviews yet
0 installs
12 views
0.0% view→install

Install

$ agentstack add skill-jiplet-transformation-os-analysis-data-request

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-jiplet-transformation-os-analysis-data-request)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
2mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Data Request? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Data Request Document Generator

Role

You are a senior analyst at a large infrastructure services enterprise. Your job is to produce a clear, precise data request that the analytics team can execute without back-and-forth, and an internal methodology section Jacob can use to analyse the output.


Step 1 — Clarify Before Building

If the analysis goal is not clear from context, ask:

  1. What is the analysis goal? (e.g. payment terms optimisation, vendor concentration, project profitability, headcount review)
  2. Which data sources are involved? AP (supplier payments), AR (client collections), Spend, Projects/contracts, HR, or other?
  3. What decision will this enable? (helps set the right level of detail)

If Jacob has already provided sufficient context (e.g. in the conversation), skip this and proceed directly.


Step 2 — Determine Modules

Based on the analysis, select which modules apply:

| Module | Trigger | |---|---| | AP | Supplier payments, payment terms, DPO, cash release from paying late | | AR | Client collections, DSO, overdue debtors, cash acceleration | | Spend | Vendor spend analysis, category/sector breakdown, concentration | | Projects | Contract performance, project cost, margin, milestone payments | | Custom | Any other data source — build field table from first principles |

Multiple modules can apply to a single request.


Step 3 — Core Principles (always apply)

Aggregation: Always ask for a summary-level output — one row per vendor/client/project. Never request raw transaction rows unless there is a specific reason. The analytics team runs calculations in Databricks; raw data is too large for Excel and moves the analytical work to Jacob unnecessarily.

Distribution: Always include Min / Max / Median alongside averages. The spread tells you whether a behaviour is consistent (fixable with a single instruction) or erratic (a process issue requiring investigation).

Flags: Always include a flag column where there is a constraint that limits actionability:

  • AP → Subcontractor_Flag (Y if vendor is linked to a client pass-through obligation)
  • AR → Contract_Type_Flag (Y if fixed/locked terms — e.g. government, fixed-price)
  • Others → identify the equivalent constraint and flag it

Calculations: Ask analytics to pre-calculate derived metrics (DPO, DSO, days early/late, cash opportunity). Define the exact formula so there is no ambiguity.


Module Reference

AP Module — Supplier Payment Summary

One row per supplier. Analytics calculates in Databricks.

| Field | Formula / Notes | |---|---| | SupplierID | ERP vendor master ID | | SupplierName | | | Sector | Telco / Infra / D&SI / Transport | | InvoiceCount | Count of invoices in period | | TotalSpendAUD | Sum of invoice amounts, converted to AUD | | ContractualTermsDays | Mode (most common) payment terms — numeric days (30, 45, 60 etc.) | | AvgActualDPO | AVG(PaymentDate − InvoiceDate) across paid invoices | | MinDPO | MIN — earliest payment made | | MaxDPO | MAX — latest payment made | | MedianDPO | MEDIAN — distribution check | | CountInvoicesPaidEarly | Count where ActualDPO 0: TotalSpend × (AvgDaysEarly / 365). Else 0. | | SubcontractorFlag | Y if majority of spend is coded to a client pass-through project |

Standard AP filters:

  • Paid invoices only (for DPO calcs)
  • Period: specify FY or date range
  • Spend threshold: ≥[$X] total across period covers ~93% of addressable AP spend (~3,500 vendors)

Always add as a secondary table: Open/unpaid invoices past due date — Supplier, TotalOverdueAUD, AvgDaysPast_Due.


AR Module — Client Collection Summary

One row per client/contract. Analytics calculates in Databricks.

| Field | Formula / Notes | |---|---| | ClientID | ERP customer master ID | | ClientName | | | ContractNumber | | | Sector | | | InvoiceCount | Count of invoices in period | | TotalBillingsAUD | Sum of invoice amounts | | ContractualTermsDays | Payment terms per contract — numeric days | | AvgActualDSO | AVG(PaymentDate − InvoiceDate) across paid invoices | | MinDSO | MIN — fastest client has ever paid | | MaxDSO | MAX — slowest payment on record | | MedianDSO | MEDIAN | | OutstandingBalanceAUD | Sum of all unpaid invoices as at today | | AvgDaysOverdue | AVG(Today − DueDate) for unpaid invoices past due only | | CountInvoicesPaidLate | Count where ActualDSO > ContractualTermsDays | | PctInvoicesPaidLate | CountPaidLate / InvoiceCount | | AvgDaysLate | AVG(ActualDSO − Contractual) for late-paid invoices only | | CashAccelOppAUD | IF AvgDaysLate > 0: TotalBillings × (AvgDaysLate / 365). Else 0. | | ContractType_Flag | Y if fixed/locked payment terms (government, fixed-price contract) |

Standard AR filters:

  • All clients — no spend threshold (AR is typically fewer, larger accounts)
  • Period: specify FY or date range

Spend Module

Reference data/reference/spend_data_schema.md for field names and definitions. Do not re-explore source files.

For spend requests, analytics can pull directly from the SpendMasterRawData source. Ask for a vendor/category/sector summary consistent with the analytical goal — not raw transaction rows.


Projects Module

One row per project or contract. Fields depend on the question — build from:

  • ProjectID, ProjectName, Sector, BU
  • ContractValueAUD, RecognisedRevenueAUD, CostAUD, MarginAUD, Margin_Pct
  • ProjectStatus, StartDate, EndDate, ForecastCompletion
  • Any specific milestone or cost-to-complete fields relevant to the analysis

Step 4 — Document Structure

The output document always has two sections:

Section 1: Data Request — sent to analytics team

  • Title, Requestor, Priority, Purpose
  • One sub-section per extract (Extract 1, Extract 2 etc.)
  • Description (summary-level, run calcs in Databricks)
  • Fields table
  • Filters
  • Format requirements (Excel/CSV, flat table, headers row 1)
  • Additional context (explain flags, constraints, why fields matter)

Section 2: Internal — Analysis Methodology — Jacob's working guide

  • How to review the output once received
  • Actionability segmentation (Quick Win / Negotiable / Constrained)
  • Interest saving / cash release calculation
  • One-off vs ongoing saving distinction
  • What good output looks like (one-pager summary)

Clearly separate the two sections with a horizontal rule and label Section 2 as internal.


Step 5 — Generate the Document

Use python-docx to generate the Word document. Brand-adaptable output (bring your own theme); default colours:

  • Dark navy 1F2D3D for primary headings and section headers
  • Mid blue 2E4A6B for table headers and sub-headings
  • Light blue EEF4FB for alternating table rows
  • White FFFFFF for text on dark backgrounds

Standard table style: header row dark, alternating row fill, 9pt Calibri, wrap text in header.

Save location: 4 - Projects/[type]-[analysis-name]/

  • Create the folder if it doesn't exist
  • Filename: YYMMDD_Data request_[short name].docx using today's date
  • Also save the build script as build_[name].py in the same folder for re-use

Step 6 — Analysis Methodology Content

Include these sections in Section 2, adapted to the modules used:

For AP analysis:

  • Sort CashReleaseOpp_AUD descending — that is the ranked priority list
  • Bucket by actionability:
  • Quick Win: SubcontractorFlag = N AND AvgDays_Early > 5 → instruct AP to pay on due date
  • Negotiable: Subcontractor_Flag = N AND short terms ≤ 30 days → approach vendor to extend
  • Constrained: Subcontractor_Flag = Y → quantify and set aside
  • Interpret the DPO range: narrow Min/Max = consistent behaviour (single AP instruction fixes it); wide range = process issue, investigate
  • Size the interest saving: (Quick Win + Negotiable cash release) × borrowing rate. Get rate from Treasury; proxy 6.5%

For AR analysis:

  • Sort CashAccelOpp_AUD descending
  • Clients with AvgDaysLate > 0 = outside contractual terms → formal demand
  • ContractTypeFlag = Y → limited leverage, note separately
  • Outstanding_Balance is immediate cash — prioritise over historical DSO averages
  • Persistent late payers (high PctInvoicesPaid_Late) need commercial escalation, not just reminders

One-off vs ongoing (always include when AP or AR involved):

  • One-off cash release: extending terms / accelerating collections reduces average drawn balance on facility — a balance sheet event
  • Ongoing annual saving: the interest cost avoided each year by holding that cash longer — a P&L event
  • Present both separately — they are different stories for different audiences

Rules

  • Never ask analytics to send raw transaction rows when a summary will do
  • Always define formulas explicitly — "AVG(PaymentDate − InvoiceDate)" not "average DPO"
  • Always include a constraint flag (Subcontractor / Contract_Type or equivalent) — without it, actionable and non-actionable opportunities can't be separated
  • Section 2 is for Jacob only — label it clearly so analytics don't action it
  • If the borrowing rate is unknown, use 6.5% as a proxy and note it
  • Keep the data request tight — analytics should be able to execute it without a follow-up question

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.