Trendsic Platform Service

<back to all web services

ExecutiveDashboardRequest

Requires Authentication
The following routes are available for this service:
GET,OPTIONS/v1/dashboards/executive

export class ExecKpi
{
    public Key: string;
    public Label: string;
    public Value: string;
    public Sub_: string;
    public Delta: string;
    public DeltaUp: boolean;
    public HasDelta: boolean;
    public Good: boolean;

    public constructor(init?: Partial<ExecKpi>) { (Object as any).assign(this, init); }
}

export class ExecCostCategory
{
    public Name: string;
    public CostUSD: number;
    public BilledUSD: number;

    public constructor(init?: Partial<ExecCostCategory>) { (Object as any).assign(this, init); }
}

export class ExecMonthPoint
{
    public Month: string;
    public RevenueUSD: number;
    public CostUSD: number;

    public constructor(init?: Partial<ExecMonthPoint>) { (Object as any).assign(this, init); }
}

export class ExecBacklogYear
{
    public Year: string;
    public ValueUSD: number;

    public constructor(init?: Partial<ExecBacklogYear>) { (Object as any).assign(this, init); }
}

export class ExecBacklog
{
    public TotalUSD: number;
    public MonthsAhead: number;
    public AwardsYtdUSD: number;
    public BurnYtdUSD: number;
    public ByYear: ExecBacklogYear[] = [];

    public constructor(init?: Partial<ExecBacklog>) { (Object as any).assign(this, init); }
}

export class ExecWipRow
{
    public ContractId: number;
    public Name: string;
    public Owner: string;
    public ValueUSD: number;
    public PctComplete: number;
    public BilledUSD: number;
    public OverUnderUSD: number;
    public MarginPct: number;
    public FadePts: number;

    public constructor(init?: Partial<ExecWipRow>) { (Object as any).assign(this, init); }
}

export class ExecPipelineStage
{
    public Stage: string;
    public ValueUSD: number;
    public Count: number;

    public constructor(init?: Partial<ExecPipelineStage>) { (Object as any).assign(this, init); }
}

export class ExecAgingBucket
{
    public Bucket: string;
    public AmountUSD: number;
    public IsRetainage: boolean;

    public constructor(init?: Partial<ExecAgingBucket>) { (Object as any).assign(this, init); }
}

export class ExecSafetyMetric
{
    public Label: string;
    public Value: string;
    public Sub_: string;
    public Good: boolean;

    public constructor(init?: Partial<ExecSafetyMetric>) { (Object as any).assign(this, init); }
}

export class ExecutiveDashboard
{
    public Period: string;
    public FromDate: string;
    public ToDate: string;
    public Fy: number;
    public Kpis: ExecKpi[] = [];
    public CostVsBilling: ExecCostCategory[] = [];
    public Monthly: ExecMonthPoint[] = [];
    public Backlog: ExecBacklog;
    public Wip: ExecWipRow[] = [];
    public Pipeline: ExecPipelineStage[] = [];
    public WinRatePct: number;
    public Receivables: ExecAgingBucket[] = [];
    public RetainageUSD: number;
    public DsoDays: number;
    public Safety: ExecSafetyMetric[] = [];

    public constructor(init?: Partial<ExecutiveDashboard>) { (Object as any).assign(this, init); }
}

export class ExecutiveDashboardResponse
{
    public ResponseStatus: ResponseStatus;
    public Dashboard: ExecutiveDashboard;

    public constructor(init?: Partial<ExecutiveDashboardResponse>) { (Object as any).assign(this, init); }
}

export class ExecutiveDashboardRequest
{
    public Period: string;
    public Region: string;
    public Fy?: number;

    public constructor(init?: Partial<ExecutiveDashboardRequest>) { (Object as any).assign(this, init); }
}

TypeScript ExecutiveDashboardRequest DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + JSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

GET /v1/dashboards/executive HTTP/1.1 
Host: api.dev.dynamics.trendsic.com 
Accept: text/jsv
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	ResponseStatus: 
	{
		ErrorCode: String,
		Message: String,
		StackTrace: String,
		Errors: 
		[
			{
				ErrorCode: String,
				FieldName: String,
				Message: String,
				Meta: 
				{
					String: String
				}
			}
		],
		Meta: 
		{
			String: String
		}
	},
	Dashboard: 
	{
		Period: String,
		FromDate: 0001-01-01,
		ToDate: 0001-01-01,
		Fy: 0,
		Kpis: 
		[
			{
				Key: String,
				Label: String,
				Value: String,
				Sub_: String,
				Delta: String,
				DeltaUp: False,
				HasDelta: False,
				Good: False
			}
		],
		CostVsBilling: 
		[
			{
				Name: String,
				CostUSD: 0,
				BilledUSD: 0
			}
		],
		Monthly: 
		[
			{
				Month: String,
				RevenueUSD: 0,
				CostUSD: 0
			}
		],
		Backlog: 
		{
			TotalUSD: 0,
			MonthsAhead: 0,
			AwardsYtdUSD: 0,
			BurnYtdUSD: 0,
			ByYear: 
			[
				{
					Year: String,
					ValueUSD: 0
				}
			]
		},
		Wip: 
		[
			{
				ContractId: 0,
				Name: String,
				Owner: String,
				ValueUSD: 0,
				PctComplete: 0,
				BilledUSD: 0,
				OverUnderUSD: 0,
				MarginPct: 0,
				FadePts: 0
			}
		],
		Pipeline: 
		[
			{
				Stage: String,
				ValueUSD: 0,
				Count: 0
			}
		],
		WinRatePct: 0,
		Receivables: 
		[
			{
				Bucket: String,
				AmountUSD: 0,
				IsRetainage: False
			}
		],
		RetainageUSD: 0,
		DsoDays: 0,
		Safety: 
		[
			{
				Label: String,
				Value: String,
				Sub_: String,
				Good: False
			}
		]
	}
}