Transparent calculations

The methodology behind the project audit.

Rule-based, reproducible and without AI judgement of your client data.

True, false and unknown

Billable and Billed/Invoiced use three states. Only explicitly interpretable values are treated as true or false. Missing columns, empty cells and unrecognised values remain unknown. Unknown is never silently interpreted as false and does not increase either billable or non-billable hours.

Mathematical definitions

MetricCalculationBoundary / missing data
Total hoursSum of all valid imported project hoursInvalid time rows are discarded and reported separately.
Billable hoursSum of hours explicitly recognised as Billable = trueIf billable status is completely missing, the metric remains unavailable. Unknown time is not included.
Non-billable hoursSum of hours explicitly recognised as Billable = falseIf billable status is completely missing, the metric remains unavailable. Unknown time is not included.
Explicitly uninvoiced hoursSum of hours with Billable = true and Billed/Invoiced = falseWithout a known invoicing status for explicitly billable time, the metric remains unavailable.
Billable coverageHours with known billable status ÷ total hours0% = unavailable, between 0% and 100% = partial, 100% = complete.
Invoicing coverageExplicitly billable hours with known Billed/Invoiced status ÷ explicitly billable hoursThe invoice status of non-billable or unknown time is excluded from this denominator.
Revenue coverageWith a project fee: 100%; without a fee it matches billable coverage.It describes the data basis of the model, not the completeness of an accounting system.
Budget utilisationRecorded hours ÷ hours budgetAvailable only when the hours budget is greater than 0. Above 100% is treated as a budget overrun.
Modelled revenueProject fee when available; otherwise the sum of explicitly billable hours × the applied billing rateUnknown billable time generates no modelled revenue. With partial coverage only the known portion is modelled.
Delivery costSum of valid hours × the applied cost rateRate priority: time row → project rate → visible default cost rate.
Modelled contributionModelled revenue − delivery costWithout a reliable revenue basis the contribution remains unavailable.
Modelled marginContribution ÷ modelled revenueAvailable as a percentage only when modelled revenue is greater than 0.
Non-billable shareExplicitly non-billable hours ÷ hours with known billable statusUnknown time belongs to neither the billable nor non-billable share. The current default threshold is 20%.
Potential open billing valueSum of hours × billing rate only where Billable = true and Billed/Invoiced = falseNo amount is shown without known invoicing status. With partial coverage the amount applies only to the known portion.
Total modelled revenueSum of all available modelled project revenueProjects without a reliable revenue basis are not invented as zero. Revenue coverage shows how complete the revenue basis is.
Total delivery costSum of delivery costs across all analysed projectsIncludes explicitly identified fallback costs when actual rates are missing.
Total contributionTotal modelled revenue − total delivery costRead this together with revenue coverage when a complete revenue basis is not available for all project hours.
Analysed rowsImported time rows − discarded invalid time rowsInvalid rows are reported separately with row number and reason.
Critical projectsNumber of projects with at least one finding of severity “critical”Informational and warning findings alone do not increase this number.

Model assumptions and fallbacks

For cost and billing rates, each time row follows this order: the actually imported rate, then an available project rate, and only then the visibly configured default rate. Default values are modelling assumptions, not industry benchmarks. ScopeLedger reports when they were used.

For a fixed project fee, the fee is used as the revenue basis. Without a fee, revenue is modelled only from explicitly billable time. Delivery costs, by contrast, include all valid time rows. With incomplete revenue coverage, the resulting margin can therefore be deliberately conservative.

Budget overrun

A budget overrun exists only when budget utilisation is greater than 100%. Exactly 100% is not treated as an overrun. Without a positive hours budget the metric remains unavailable.

Potentially unbilled work

Only the combination Billable = true and Billed/Invoiced = false counts as potentially open. Billable alone is not evidence of an unpaid invoice. If invoice status is completely missing, ScopeLedger shows “unavailable” instead of €0. With partial coverage only the known portion is calculated and explicitly marked as partial.

Data quality

The data-quality level follows the calculation basis actually used. Limited takes precedence when billable status is completely missing or when no hourly revenue can be modelled without a fixed fee. Otherwise the level is at least medium whenever a default cost or billing rate is used, billable coverage is only partial, invoicing coverage is incomplete or no hours budget is available. High is shown only when none of these reductions applies. The specific reasons are displayed separately in the result.

Result, coverage and review guidance

ScopeLedger deliberately separates five layers so a calculated value never appears more precise than its data basis:

With partial revenue coverage, the interface labels the margin as a partial basis. With only partial invoicing coverage, the calculated amount is labelled known open value; it is not presented as a claimed total. If a metric cannot be calculated reliably, ScopeLedger shows “Unavailable” instead of zero or a falsely precise substitute estimate.

Project-list prioritisation

ScopeLedger sorts projects reproducibly by economic risk signals. The order is lexicographic: an earlier criterion takes precedence over every later criterion.

  1. Negative modelled contribution first.
  2. Then the stronger budget overrun, measured as budget utilisation minus 100%.
  3. Then projects below the currently configured target margin.
  4. Then the higher potential open billing value.
  5. Then the higher explicit non-billable share.
  6. If every criterion is equal, the project name decides alphabetically.

The visual indication of a low project margin uses the same currently configured target as the low_marginfinding and risk prioritisation. There is no separate hard-coded 30% threshold in the result display.

Findings and severity

RuleTriggerClassification
Budget exceededBudget utilisation above 100%Critical
Negative contributionModelled contribution below 0Critical
Low marginBelow the currently configured target marginWarning unless contribution is already negative
Open timeBillable = true and Invoiced/Billed = falseWarning; never inferred from unknown
High non-billable shareAbove 20% of time with known billable statusWarning
Data gaps and fallbacksBudget, status or actual rate is missingInformation, not a claimed economic loss

These metrics are designed to work together in an ongoing economic project review.