Skip to Content
🚀 Design Partner Program — Limited spots available →
Mcp and IntegrationsExcel and CSV Import

Excel and CSV Import

Bulk import lets you record actuals (and update plans) for an engagement using Excel or CSV instead of typing values into the check-in screen one cell at a time. It is the right tool when you have a month or a quarter of data sitting in a spreadsheet already.

The workflow is a round-trip: export a CSV with the engagement’s existing plans, fill in actual values, then upload it back. DigitalCore matches rows by a stable plan_id, not by names, so renaming a metric or restructuring a template never breaks the import.

When to use it

  • You are catching up on several months of actuals after onboarding.
  • Your finance team already keeps the numbers in Excel and you want to land them in DigitalCore.
  • You are loading capacity hours from a timesheet export.
  • You are recording performance metrics (SLA results, throughput, quality) from a separate system.

For a single month with a handful of values, the in-app check-in is faster.

The five-step wizard

Open Configure → Bulk Upload.

StepWhat you do
1. SelectPick the engagement, the domain (Finance / Performance / Capacity), and the date range.
2. ExportDownload a CSV pre-filled with the engagement’s plans for that range.
3. EditOpen the CSV in Excel or Google Sheets and fill actual_value (and planned_value if you want to update plans).
4. UploadDrop the file back into the wizard.
5. ReviewSee how many rows were created, updated, or skipped, plus any validation errors.

CSV format

Every export contains two context columns so you always know which engagement and timeline a row belongs to, plus a stable plan_id and the editable value columns.

Finance

customer,engagement_timeline,plan_id,period_month,pnl_category,line_item_name,planned_value,actual_value Acme Ltd,Ongoing Service,9010,2026-01-01,Revenue,Product Sales,45000,45000 Acme Ltd,Ongoing Service,9011,2026-01-01,COGS,Direct Labor,12000,

Performance

customer,engagement_timeline,plan_id,period_month,metric_name,unit,target_value,actual_value Acme Ltd,Migration Project,16286,2025-01-01,Migration Velocity,count,8,8 Acme Ltd,Migration Project,16287,2025-01-01,System Uptime,percentage,99.9,95

Capacity

customer,engagement_timeline,plan_id,period_month,role_name,planned_hours,actual_hours Acme Ltd,Ongoing Service,58342,2025-12-01,Cloud Operations Manager,150,120 Acme Ltd,Ongoing Service,58354,2025-12-01,Service Desk Supervisor,8,8

Column rules

ColumnEditableRequiredNotes
customerNoReferenceFilled from the engagement’s customer party.
engagement_timelineNoReferenceMatched to the timeline whose date range covers period_month.
plan_idNoYesStable foreign key. Do not change.
period_monthNoReferenceFormat depends on granularity (month / week / day).
*_name columnsNoReferenceRead-only labels (e.g. pnl_category, metric_name, role_name).
planned_valueYesOptionalUpdates the plan if you change it.
actual_valueYesOptionalCreates or updates the measure for that period.

Date formats accepted

You do not need to reformat your data. The importer accepts and normalises:

You give usStored as
2025-012025-01-01
2025-01-152025-01-15
01/15/2025 (US)2025-01-15
15/01/2025 (EU)2025-01-15
Native Excel date cellsYYYY-MM-DD

Validation

Every row is validated by Pandera schemas in the import service before anything is written. Common rejections:

ErrorCauseFix
Invalid plan_idPlan does not exist on this engagementRe-export a fresh CSV.
Invalid actual_valueA non-numeric value in a numeric columnClean the cell in Excel.
not_nullableplan_id is emptyEnsure no blank rows.

If a row fails, the whole row is skipped and reported back to you. Valid rows in the same file are still imported. After upload you can download an error log of the skipped rows and fix them.

What happens after upload

When measures land, DigitalCore’s automatic engines pick them up immediately. You do not need to refresh anything.

  • Capacity hours land as labour cost. A trigger calculates hours × rate and posts the cost to your Finance grid for the same month.
  • Performance misses land as penalty cost. If an actual misses a contract SLA term, a penalty event is recorded and (if the contract calls for it) a penalty line is added to Finance.
  • Health scores update. Per-item, domain, and engagement health colours recompute.
  • Autonomous agents scan the new data. Cross-domain signals fire, governance cases open for critical issues, and notifications route to the channels you have configured.

See Concepts: Automation for the full picture.

Tips

  • Always work from a fresh export. Re-exporting picks up new plans and prevents stale plan_ids.
  • Edit in place. Do not insert or delete columns, and do not sort the file in a way that loses the header.
  • Leave cells blank, not zero. Blank means “not recorded yet”; 0 means “we recorded zero”.
  • One engagement per file. The wizard runs the import scoped to a single engagement and domain.

Other ways to load data

PathBest for
In-app check-inA single month, small number of values.
Excel / CSV import (this page)Backfilling, finance-team workflows, bulk catch-up.
QuickBooks syncContinuous Finance actuals from your accounting system.
ServiceNow syncContinuous Performance actuals (incidents, SLA results).
DigitalCore MCPRecording from an AI assistant (Claude, Cursor, ChatGPT).